LinuxCommandLibrary

systemd-dissect

Analyze systemd state without running systemd

TLDR

Show general image information about the OS image

$ systemd-dissect [path/to/image.raw]
copy

Mount an OS image
$ systemd-dissect [[-m|--mount]] [path/to/image.raw] [/mnt/image]
copy

Unmount an OS image
$ systemd-dissect [[-u|--umount]] [/mnt/image]
copy

List files in an image
$ systemd-dissect [[-l|--list]] [path/to/image.raw]
copy

Attach an OS image to an automatically allocated loopback block device and print its path
$ systemd-dissect --attach [path/to/image.raw]
copy

Detach an OS image from a loopback block device
$ systemd-dissect --detach [path/to/device]
copy

SYNOPSIS

systemd-dissect [OPTIONS...] [PATH]

PARAMETERS

-h, --help
    Display a help message and exit.

--version
    Show package version information.

--json=MODE
    Format output as JSON. Modes include full, pretty, short, off (default).

--suffix=SUFFIX
    Specify a suffix for temporary files created during analysis.

--no-pager
    Do not pipe output into a pager.

--no-legend
    Suppress the legend (header) from the output.

--timestamp=MODE
    Control how timestamps are formatted in the output (pretty, raw, off).

--unit=UNIT
    Analyze a specific system unit.

--user-unit=UNIT
    Analyze a specific user unit.

--service-type=TYPE
    Filter analysis by service type (e.g., simple, forking).

--wait=BOOL
    Wait for the specified unit to finish before analyzing (default yes).

--no-block
    Do not wait for the unit to finish.

--list-paths=BOOL
    List paths for systemd-homed or systemd-machined instances.

--root=PATH
    Operate on a different root directory (like a chroot environment).

--machine=NAME
    Operate on a specific machine or container by name.

--user
    Analyze the user systemd instance.

--system
    Analyze the system systemd instance (default).

--boot-id=ID
    Analyze a specific boot by its ID.

--this-boot
    Analyze the currently running boot.

--on-this-machine
    Analyze the currently running machine or container.

--full
    Dissect full, verbose information.

--no-full
    Do not dissect full information (less verbose).

--log-level=LEVEL
    Set the logging verbosity level.

DESCRIPTION

systemd-dissect is a powerful diagnostic tool for inspecting the internal state and configuration of various systemd instances. It can analyze the boot sequence of a running system, or delve into the specifics of an inactive system, a disk image, or even specific systemd components like systemd-homed encrypted homes, systemd-machined virtual machines, or systemd-nspawn containers. Its primary purpose is to aid in debugging and understanding the intricate workings of systemd, providing detailed insights into unit states, dependencies, and overall system behavior. It's an essential utility for system administrators and developers troubleshooting systemd-related issues.

CAVEATS

The command might require elevated privileges (root) to access certain system states or disk images. Analyzing large images or complex states can consume significant system resources and time. Its output can be very detailed, requiring careful interpretation.

HISTORY

systemd-dissect was introduced as part of the systemd project, designed to provide deeper introspection capabilities beyond what systemd-analyze offers. It allows for offline analysis of various systemd contexts, which is crucial for forensic analysis, debugging boot failures in unbootable systems, or examining the state of virtualized environments and containers managed by systemd. Its development reflects the increasing complexity of systemd-managed systems and the need for robust debugging tools.

SEE ALSO

systemd(1), systemd-analyze(1), bootctl(1), systemd-homed(8), systemd-machined(8), systemd-nspawn(1)

Copied to clipboard