SYSTEMD-DISSECT(1)

BEZEICHNUNG
systemd-dissect, mount.ddi - Auffindbare Plattenabbilder (DDIs) analysieren

ÜBERSICHT

systemd-dissect [OPTIONEN…] ABBILD

systemd-dissect [OPTIONEN…] --mount ABBILD PFAD

systemd-dissect [OPTIONEN…] --umount PFAD

systemd-dissect [OPTIONEN…] --attach ABBILD

systemd-dissect [OPTIONEN…] --detach PFAD

systemd-dissect [OPTIONEN…] --list ABBILD

systemd-dissect [OPTIONEN…] --mtree ABBILD

systemd-dissect [OPTIONEN…] --with ABBILD [BEFEHL…]

systemd-dissect [OPTIONEN…] --copy-from ABBILD PFAD [ZIEL]

systemd-dissect [OPTIONEN…] --copy-to ABBILD [QUELLE] PFAD

BESCHREIBUNG

systemd-dissect ist ein Werkzeug zur Untersuchung und zum Umgang mit Dateisystem-Betriebssystemabbildern, insbesondere auffindbaren Plattenabbildern (DDIs). Es unterstützt vier verschiedene Aktionen:

    1. Die Anzeige allgemeiner Betriebssystemabbildinformationen, einschließliche der Daten aus os-release(5) des Abbildes, der Maschinenkennung, der Partitionsinformationen und weitere.

    2. Das Einhängen eines Betriebssystemabbildes in ein lokales Verzeichnis. In diesem Modus wird es das Betriebssystemabbild zerlegen und die enthaltenen Partitionen entsprechend ihrer Bestimmung in ein Verzeichnis und möglicherweise Unterverzeichnisse einhängen.

    3. Das Aushängen eines Betriebssystemabbildes aus einem lokalen Verzeichnis. In diesem Modus wird es rekursiv die eingehängten Partitionen aushängen und das zugrundeliegende Loop-Gerät entfernen, einschließlich aller Partitions-Untergeräte.

    4. Das Kopieren von Dateien in und aus dem Betriebssystemabbild.

Das Werkzeug kann auf drei Arten von Betriebssystemabbildern arbeiten:

    1. Betriebssystemplattenabbilder, die eine GPT-Partitionstabellen-Einhüllende enthalten, wobei die Partitionen entsprechend der Spezifikation für auffindbare Partitionen[1] markiert sind.

    2. Betriebssystemplattenabbilder, die nur ein einfaches Dateisystem ohne umhüllende Partitionstabelle enthalten. (Dieses Dateisystem wird als Wurzeldateisystem des Betriebssystems angenommen.)

    3. Betriebssystemabbilder, die eine GPT- oder MBR-Partitionstabelle mit nur einer einzigen Partition enthalten. (Dieses Dateisystem wird als Wurzeldateisystem des Betriebssystems angenommen.)

Betriebssystemabbilder können jede Art von Linux unterstützter Dateisysteme verwenden. Zusätzlich können sie LUKS-Plattenverschlüsselung verwenden und Verity-Integritätsinformationen enthalten. Beachten Sie, dass so geeignete Betriebssystemabbilder mit dem Schalter --image= von systemd-nspawn(1) gestartet und als Wurzeldateisystem für Dienste, die die Unit-Dateieinstellung RootImage= verwenden, eingesetzt werden können, siehe systemd.exec(5).

Beachten Sie, dass die beim Aufruf ohne Befehlszeilenschalter dargestellte Partitionstabelle (wie nachfolgend angezeigt) nicht notwendigerweise alle im Abbild enthaltenen Partitionen anzeigt, sondern nur die Partitionen, die interpretiert und als Teil des Betriebssystemabbilds betrachtet werden. Insbesondere werden Partitionen mit unbekanntem Typ ignoriert, sowie doppelte Partitionen (d.h. mehr als eine Partition pro Partitionstyp), sowie Wurzel und /usr/-Partitionen von Architekturen, die mit dem lokalen System nicht kompatibel sind. Mit anderen Worten: dieses Werkzeug zeigt das an, womit es beim Einhängen des Abbilds umgehen wird. Um die vollständige Liste der Partitionen anzuzeigen, verwenden Sie ein Werkzeug wie fdisk(8).

Der Befehl systemd-dissect kann als mount.ddi aufgerufen werden. Dann implementiert er die »Externer-Helfer«-Schnittstelle von mount(8). Dies stellt sicher, dass dann zu systemd-dissect kompatible Plattenabbilder direkt von mount und fstab(5) eingehängt werden können. Weiter unten finden Sie hierzu Details.

BEFEHLE

Falls keiner der nachfolgend aufgeführten Befehlszeilenschalter übergeben wird, dann wird das angegebene Plattenabbild geöffnet und allgemeine Informationen über das Abbild und die darin enthaltenen Partitionen und ihre Verwendung werden ausgegeben.

--mount, -m
    Hängt das angegebene Betriebssystemabbild in das angegebene Verzeichnis ein. Dies wird das Abbild analysieren, das Wurzeldateisystem des Betriebssystems ermitteln — sowie alle möglichen weiteren Partitionen – und diese in das angegebene Verzeichnis einhängen. Falls das Betriebssystem mehrere gemäß der Spezifikation für auffindbare Partitionen[1] markierte Partitionen enthält, werden mehrere, verschachtelte Einhängungen etabliert. Dieser Befehl erwartet zwei Argumente: einen Pfad zu einer Abbilddatei und einen Pfad zu einem Verzeichnis, in dem das Abbild eingehängt werden soll.

    Um ein Betriebssystemabbild auszuhängen, das auf diese Weise eingehängt wurde, verwenden Sie die Aktion --umount.

    Wenn das Betriebssystemabbild LUKS-verschlüsselte oder Verity-Integritätsgeschützte Dateisysteme enthält, dann werden geeignete Datenträger automatisch eingerichtet und für die automatische Zerlegung markiert, wenn das Abbild ausgehängt wird.

    Das Betriebssystemabbild kann entweder als Pfad zu einem in einer regulären Datei gespeicherten Betriebssystemabbild angegeben sein oder sich auf einen Blockgeräteknoten beziehen (in diesem Fall muss das Blockgerät das »gesamte« Gerät sein, d.h. kein Partitionsgerät). (Die weiteren hier beschriebenen unterstützten Befehle unterstützen das auch.)

    Alle eingehängten Dateisysteme werden mit der geeigneten fsck(8)-Implementierung im automatischen Korrekturmodus überprüft, außer dies wird explizit mit (--fsck=no) ausgeschaltet oder eine schreibgeschützte Aktion wird erbeten (--read-only).

    Beachten Sie, dass diese Funktionalität auch mittels mount -t ddi Meinabbild.raw Zielverz/ in mount(8) sowie in fstab(5) verfügbar ist. Weiter unten finden Sie hierzu Details.

-M
    Dies ist ein Kürzel für --mount --mkdir.

--umount, -u
    Hängt ein Betriebssystemabbild aus dem angegebenen Verzeichnis aus. Dieser Befehl erwartet ein Argument: ein Verzeichnis, in dem das Betriebssystemabbild eingehängt wurde.

    Alle eingehängten Partitionen werden rekursiv ausgehängt, und das zugrundeliegende Loop-Gerät wird entfernt, einschließlich aller seiner Partitions-Sub-Geräte.

-U
    Dies ist ein Kürzel für --umount --rmdir.

--attach
    Hängt das angegebene Plattenabbild an ein automatisch reserviertes Loopback-Blockgerät an und gibt den Pfad zu dem Loopback-Blockgerät auf der Standardausgabe aus. Dies ist ähnlich zum Aufruf von losetup --find --show, aber validiert das Abbild als DDI vor dem Anhängen und leitet die zu verwendene korrekte Sektorgröße automatisch ab. Desweiteren stellt es sicher, das die partitionsbezogenen Blockgeräte vor der Rückkehr automatisch erstellt werden. Akzeptiert einen Pfad zu einer Plattenabbilddatei.

--detach
    Hängt das angegebene Plattenabbild von dem Loopback-Blockgerät ab. Dies macht die oben beschriebene Wirkung von --attach rückgängig. Dies erwartet entweder einen Pfad zu einem Loopback-Blockgerät als Argument oder den Pfad zu der zugrundeliegenden Abbilddatei. Im zweiten Fall wird es automatisch das richtige Gerät zum Abhängen bestimmen.

--list, -l
    Gibt die Pfade aller Dateien und Verzeichnisse in dem angegebenen Betriebssystemabbild oder -verzeichnis auf die Standardausgabe aus.

--mtree, -l
    Erstellt ein BSD-mtree(8) kompatibles Datei-Manifest für das angegebene Plattenabbild oder Verzeichnis. Dies ist zum detaillierten Vergleich der Abbild-Inhalte, einschließlich der Inode-Informationen und anderer Metadaten, nützlich. Das erstellte Manifest enthält detaillierte Inode-Informationen, schließt aber derzeit erweiterte Attribute, Dateisystem-Capabilitys, MAC-Tabellen, chattr(1)-Dateischalter, btrfs(5)-Teildatenträgerinformationen und verschiedene andere Dateimetadaten aus. Dateiinhalte werden über einen SHA256-Hash dargestellt. In der Zukunft könnten zusätzliche Felder hinzugefügt werden. Beachten Sie, dass Inode-Informationen, wie Link-Zähler, Inode-Nummern und Zeitstempel absichtlich aus der Ausgabe ausgeschlossen werden, da diese typischerweise die Vergleichbarkeit erschweren.

--with
    Führt den angegebenen Befehl mit dem angegebenen, eingehängten Betriebssystemabbild aus Dies hängt das Abbild in ein temporäres Verzeichnis ein, schaltet das aktuelle Arbeitsverzeichnis dort hin und ruft die angegebene Befehlszeile als Kindprozess auf. Sobald der Prozess beendet ist, wird das Abbild wieder ausgehängt und das temporäre Verzeichnis entfernt. Falls kein Befehl angegeben ist, wird eine Shell aufgerufen. Das Abbild wird schreibbar eingehängt, verwenden Sie --read-only, um eine schreibgeschützte Aktion durchzuführen. Bei dem aufgerufenen Prozess wird die Umgebungsvariable $SYSTEMD_DISSECT_ROOT gesetzt sein und den absoluten Pfadnamen zu dem temporären Einhängepunkt enthalten, d.h. das gleiche Verzeichnis, auf das auch das aktuelle Arbeitsverzeichnis gesetzt ist.

--copy-from, -x
    Kopiert eine Datei oder ein Verzeichnis von dem angegebenen Betriebssystemabbild oder -verzeichnis an den angegebenen Ort auf dem Dateisystem des Rechners. Erwartet drei Argumente: einen Pfad zu einer Abbilddatei oder einem Verzeichnis, einen Quellpfad (relativ zu dem Wurzelverzeichnis des Abbilds) und einen Zielpfad (relativ zum aktuellen Arbeitsverzeichnis oder einen absoluten Pfad, beide außerhalb des Abbilds). Falls der Zielpfad nicht oder als Bindestrich (»-«) angegeben wird, wird die angegebene Datei in die Standardausgabe kopiert. Falls sich der Quellpfad in dem Abbild-Dateisystem auf eine reguläre Datei bezieht, dann wird diese an den Zielpfad kopiert. In diesem Fall wird auch der Zugriffsmodus, erweiterte Attribute und der Zeitstempel kopiert, aber die Dateieigentümerschaft nicht. Falls sich der Quellpfad in dem Abbild auf ein Verzeichnis bezieht, wird dies rekursiv mit allen enthaltenen Dateien und Verzeichnissen an den Zielpfad kopiert. In diesem Fall werden auch die Dateieigentümerschaften mit kopiert.

--copy-to, -a
    Kopiert eine Datei oder ein Verzeichnis von dem angegebenen Ort im Dateisystem des Rechners in das angegebene Betriebssystemabbild oder Verzeichnis. Erwartet drei Argumente: einen Pfad zu einer Abbilddatei oder einem Verzeichnis, einen Quellpfad (relativ zum aktuellen Arbeitsverzeichnis oder ein absoluter Pfad, beide außerhalb des Abbilds) und Zielpfad (relativ zu dem Wurzelverzeichnis des Abbilds). Falls der Quellpfad nicht oder als Bindestrich (»-«) angegeben wird, werden die zu schreibenden Daten aus der Standardeingabe gelesen. Falls sich der Quellpfad in dem Dateisystem des Rechners auf eine reguläre Datei bezieht, dann wird diese an den Zielpfad kopiert. In diesem Fall wird auch der Zugriffsmodus, erweiterte Attribute und der Zeitstempel kopiert, aber die Dateieigentümerschaft nicht. Falls sich der Quellpfad im Dateisystem des Rechners auf ein Verzeichnis bezieht, wird dies rekursiv mit allen enthaltenen Dateien und Verzeichnissen an den Zielpfad kopiert. In diesem Fall werden auch die Dateieigentümerschaften mit kopiert.

    Wie bei --mount werden Dateisystemüberprüfungen implizit ausgeführt, bevor die Kopieraktion beginnt.

--discover
    Zeigt eine Liste von DDIs in gut bekannten Verzeichnissen. Dies wird Maschinen-, Portable-Dienste- und Systemerweiterungs/-konfigurationsabbilder in den normalen Verzeichnissen /usr/lib/machines/, /usr/lib/portables/, /usr/lib/confexts/, /var/lib/machines/, /var/lib/portables/, /var/lib/extensions/ und so weiter anzeigen.

--validate
    Validiert die Partitionsanordnung eines Plattenabbildes (DDI) und stellt sicher, dass es auf die mittels --image-policy= übergebene Abbildrichtlinie passt, falls eine solche angegeben ist. Dies wertet die Partitionstabelle aus und untersucht das Dateisystem in dem Abbild, aber versucht nicht, es einzuhängen (noch die Plattenverschlüsselung/-authentifzierung mittels LUKS/Verity einzurichten). Es berücksichtigt die konfigurierte Analyserichtlinie. Da diese Aktion kein Dateisystem einhängt, erfordert dieser Befehl — anders als alle anderen von diesem Werkzeug implementierten Befehle — keine Privilegien außer die Fähigkeit, auf die angegebene Datei zugreifen zu können. Es wird »OK« ausgegeben und Null zurückgegeben, falls die Datei korrekt erscheint und auf die angegebenen Analyserichtlinie passt. Andernfalls wird eine Fehlermeldung ausgegeben und ein von Null verschiedener Wert zurückgegeben.

-h, --help
    Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version
    Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

OPTIONEN

Die folgenden Optionen werden verstanden:

--read-only, -r
    Agiert im schreibgeschützten Modus. Standardmäßig wird --mount schreibbare Einhängepunkte etablieren. Wird diese Option angegeben, dann werden sie stattdessen schreibgeschützt etabliert.

--fsck=no
    Schaltet automatische Dateisystemüberprüfung aus. Standardmäßig wird das Dateisystem innerhalb eines Betriebssystemabbildes automatisch mit dem geeigneten fsck(8)-Befehl (im Modus mit automatischer Korrektur) überprüft, wenn auf das Abbild zum Schreiben (mittels --mount oder --copy-to) zugegriffen wird. Dieses Verhalten kann mittels --fsck=no ausgeschaltet werden.

--growfs=no
    Schaltet das automatische Anwachsen der Dateisysteme, auf die zugegriffen wird, auf die Partitionsgröße aus, falls das so in der GPT-Partitionstablle markiert ist. Standardmäßig wachsen die in den Betriebssystemabbildern enthaltenen Dateisysteme automatisch auf ihre Partitionsgröße an, falls Bit 59 in den GPT-Partitionsschaltern für Partitionstypen, die in der Spezifikation für auffindbare Partitionen[1] definiert sind, gesetzt ist, wenn auf ein Abbild schreibend (durch --mount oder --copy-to) zugegriffen wird. Dieses Verhalten kann mittels --growfs=no ausgeschaltet werden. Dateisysteme wachsen beim Zugriff automatisch, falls alle der folgenden Bedingungen erfüllt sind:

        1. Das Dateisystem ist schreibbar eingehängt.

        2. Das Dateisystem ist derzeit kleiner als die Partition, in der es enthalten ist (und kann daher anwachsen).

        3. Das Abbild enthält eine GPT-Partitionstabelle.

        4. Das Dateisystem ist auf einer Partitions gespeichert, die in der Spezifikation für auffindbare Partitionen definiert ist.

        5. Bit 59 der GPT-Partitionsschalter für diese Partition ist spezifikationsgemäß gesetzt.

        6. Die Option --growfs=no wurde nicht übergeben.

--mkdir
    Bei Kombination mit --mount wird das Verzeichnis, in das das Betriebssystemabbild eingehängt werden soll, erstellt, falls es fehlt. Beachten Sie, dass dieses Verzeichnis nicht automatisch entfernt wird, wenn das Plattenabbild ausgehängt wird.

--rmdir
    Falls mit --umount kombiniert wird das angegebene Verzeichnis, indem das Betriebssystemabbild eingehängt ist, entfernt, nachdem das Betriebssystemabbild ausgehängt wurde.

--discard=
    Akzeptiert entweder »disabled«, »loop«, »all« oder »crypto«. Bei »disabled« wird auf das Abbild zugegriffen, ohne leere Blöcke zu verwerfen. Bei »loop« ist das Verwerfen aktiviert, falls auf einer regulären Datei agiert wird. Bei »crypt« ist Verwerfen aktiviert, selbst wenn auf verschlüsselten Dateisystemen agiert wird. Bei »all« wird das Verwerfen ohne weitere Bedingungen aktiviert.

--in-memory
    Falls angegeben wird eine speicherinterne Kopie des angegebenen Plattenabbildes benutzt. Dies kann zum schreibenden Zugriff auf ein (möglicherweise schreibgeschütztes) Abbild verwandt werden, ohne dass die ursprüngliche Datei verändert wird. Dann kann auch zum Arbeiten auf Plattenabbildern verwandt werden, ohne das ursprüngliche Dateisystem beschäftigt zu halten, das somit ausgehängt werden kann.

--root-hash=, --root-hash-sig=, --verity-data=
    Konfiguriert verschiedene Aspekte der Verity-Datenintegrität für das Betriebssystemabbild. Option --root-hash= gibt einen hexadezimal kodierten Verity-Hash der obersten Stufe an, für die Einrichtung des Verity-Integritätsschutzes. Option --root-hash-sig= gibt den Pfad zu einer Datei an, die eine PKCS#7-Signatur für den Hash enthält. Diese Signatur wird während der Aktivierung an den Kernel übergeben, der diese dann mit den Signaturschlüsseln vergleicht, die im Kernel-Schlüsselbund enthalten sind. Option --verity-data= gibt einen Pfad zu einer Datei mit den Verity-Daten an, die für das Betriebssystem-Abbild verwandt werden sollen, falls diese in einer abgetrennten (separaten) Datei gespeichert sind. Es wird empfohlen, die Verity-Daten direkt in das Abbild einzubetten und hierfür den Verity-Mechanismus in der Spezifikation für auffindbare Partitionen[1] zu verwenden.

--loop-ref=
    Konfiguriert die »Referenz«-Zeichenkette, die der Kernel als zugrundeliegende Datei für das Loopback-Blockgerät berichten soll. Es sollte zwar ein Pfad oder ein Dateiname sein, der die zugrundeliegende Datei referenziert, allerdings wird dies nicht erzwungen und der Kernel akzeptiert beliebige, vom Benutzer ausgewählte formatfreie Zeichenketten. Akzeptiert eine beliebige Zeichenkette mit bis zu 63 Zeichen. Dies setzt das Feld ».lo_file_name« des Kernels für das Blockgerät. Beachten Sie, dass dies von der Attributdatei /sys/class/block/loopX/loop/backing_file, die immer einen auf die zugrundeliegende Datei zeigenden Pfad berichtet, verschieden ist. Letzterer Pfad unterliegt der Einhängenamensraumübersetzung, während die erstere Zeichenkette dies nicht tut.

--mtree-hash=no
    Falls mit --mtree kombiniert schaltet sie die Einbindung von Datei-Hashes in die Mtree-Ausgabe aus. Dies beschleunigt --mtree beim Betrieb auf großen Abbildern.

--image-policy=Richtlinie
    Akzeptiert gemäß systemd.image-policy(7) eine Abbildrichtlinienzeichenkette als Argument. Die Richtlinie wird bei Aktionen auf dem mittels --image= angegebenen Plattenabbild durchgesetzt, siehe oben. Falls nicht angegeben ist die Vorgabe die Richtlinie »*«, d.h. alle erkannten Dateisysteme im Abbild werden verwandt.

--no-pager
    Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

--no-legend
    Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.

--json=MODUS
    Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die standardmäßig aktivierte JSON-Ausgabe auszuschalten).

EXIT-STATUS

Im Erfolgsfall wird 0 zurückgeliefert, andernfalls ein von Null verschiedener Code für den Fehlschlag. Falls der Befehl --with verwandt wird, wird der Exit-Status des aufgerufenen Befehls weitergeleitet.

AUFRUF ALS /SBIN/MOUNT.DDI

Das Programm systemd-dissect kann ein Symlink auf /sbin/mount.ddi sein. Falls es so aufgerufen wird, implementiert es die Schnittstelle »externer Helfer« von mount(8) für den Pseudo-Dateisystemtyp »ddi«. Das bedeutet, dass konforme Plattenabbilder direkt mittels

    # mount -t ddi meinabbild.raw Zielverz/

auf eine Art eingehängt werden können, die größteils gleichbedeutend mit Folgendem ist:

    # systemd-dissect --mount meinabbild.raw Zielverz/

Beachten Sie, dass ein einzelnes DDI mehrere Dateisysteme enthalten kann. Es sollte daher später mit umount -R Zielverz/ für rekursive Aktion ausgehängt werden.

Diese Funktionalität ist besonders nützlich, um DDIs automatisch beim Systemstart mittels eines einfachen Eintrags in /etc/fstab einzuhängen. Beispiel:

    /Pfad/zu/meinabbild.raw /images/meinabbild/ ddi defaults 0 0

Beim Aufruf auf diese Art werden die Einhängeoptionen »ro«, »rw«, »discard«, »nodiscard« auf die entsprechenden, oben augeführten Optionen abgebildet (d.h. --read-only, --discard=all, --discard=disabled). Einhängeoptionen werden nicht generisch an das Dateisystem innerhalb von Abbildern weitergegeben.

BEISPIELE

Beispiel 1. Einen Tarball aus einem Plattenabbild erstellen

    # systemd-dissect --with foo.raw tar cz . >foo.tar.gz

SIEHE AUCH

systemd(1), systemd-nspawn(1), systemd.exec(5), Spezifikation für auffindbare Partitionen[1], mount(8), umount(8), fdisk(8)

ANMERKUNGEN

1.  Spezifikation für auffindbare Partitionen
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).