Überblick
Ob beim Analysieren von Linux-Initramfs-Images oder bei maßgeschneiderten Backup-Workflows: Der Archivierungs-Klassiker cpio gehört zum unverzichtbaren Werkzeugkasten moderner Systemadministratoren. Dieses Praxishandbuch beleuchtet die drei fundamentalen Betriebsmodi – Copy-Out (-o), Copy-In (-i) sowie Copy-Pass (-p) – und demonstriert anhand praxisnaher Terminal-Schritte, wie sich Dateibestände flexibel verpacken, wiederherstellen und direkt im Dateisystem spiegeln lassen.
1. Paketbereitstellung und Einstieg in die Archiverstellung (Copy-Out-Modus)
Um die nachfolgenden Szenarien auf einem Ubuntu-System nachzustellen, stellen wir zunächst sicher, dass das cpio-Werkzeug in der aktuellsten Paketversion auf dem Host installiert ist.

Als Nächstes errichten wir eine isolierte Testumgebung mit Beispieldokumenten, an denen wir das Packverhalten demonstrieren.

Ein markantes Merkmal von cpio liegt in der engen Verflechtung mit Standard-Streams: Das Programm erwartet die zu archivierenden Dateipfade über die Standardeingabe (stdin).
Indem wir die Ausgabe von ls über eine Pipe direkt in den Copy-Out-Modus einspeisen, schnüren wir die vorhandenen Dateien zu einem kompakten Container namens archive.cpio.
⚙️ [Zentrale Parameter im Überblick]
-o (--create) : Aktiviert den Copy-Out-Modus zum Erzeugen eines neuen Archivs aus übergebenen Pfadlisten.-i (--extract) : Versetzt das Tool in den Copy-In-Modus, um bestehende Archive zu zerlegen oder auszulesen.-p (--pass-through) : Startet den Copy-Pass-Modus, welcher Ordnerhierarchien direkt zwischen Speicherorten spiegelt, ohne Zwischendateien anzulegen.-v (--verbose) : Protokolliert jeden bearbeiteten Eintrag detailliert auf der Konsole.-t (--list) : Gibt ein Inhaltsverzeichnis des Archivs aus, ohne den Datenbestand tatsächlich zu entpacken.-d (--make-directories) : Legt fehlende Unterordner während der Extraktion automatisch im Zieldateisystem an.-u (--unconditional) : Erzwingt das Überschreiben bestehender Zielkopien unabhängig vom Zeitstempel.-H (--format) : Bestimmt das spezifische Archivformat (beispielsweise newc, crc oder tar).

Ein schneller Blick auf Metadaten und Speicherbedarf verrät, ob die Datei ordnungsgemäß ins übergeordnete Verzeichnis geschrieben wurde.

2. Archivinhalte inspizieren und Zieldateien wiederherstellen (Copy-In-Modus)
Vor jeder Extraktion empfiehlt es sich, die Integrität und Struktur des Archivs vorab zu auditieren. Durch die Verknüpfung von -t und -v lässt sich die interne Dateiliste mitsamt Rechten und Besitzern analysieren, ohne dass ein einziger Byte auf die Festplatte geschrieben wird.
Hierzu leiten wir die Archivdatei per Stream-Umleitung (<) an cpio weiter.

Für einen sauberen Restore-Vorgang richten wir einen separaten Zielordner ein und wechseln direkt dorthin.

Über das Flag -i initiieren wir nun den eigentlichen Extraktionslauf. In Kombination mit -d wird gewährleistet, dass verschachtelte Verzeichnispfade on-the-fly aufgebaut werden, während -v den Fortschritt transparent abbildet.

Ein abschließender Abgleich des Zielverzeichnisses bestätigt die erfolgreiche Rekonstruktion sämtlicher Attribute und Inhalte.

3. Direkte Verzeichnisspiegelung ohne Zwischendatei (Copy-Pass-Modus)
Um die Stärken des Copy-Pass-Modus auszuloten, erweitern wir unsere Quelldatenbasis um eine tiefere Verzeichnisebene samt zusätzlicher Testdatei.

Nun definieren wir die Zielstruktur, welche die Replikation aufnehmen soll.

Der Copy-Pass-Modus (-p) glänzt überall dort, wo Verzeichnisbäume performant geklont werden müssen, ohne temporären Speicherplatz für Archivdateien zu verschwenden.
Wir speisen hierzu die Tiefensuche von find direkt via Pipeline in cpio ein. Dank -m bleiben originale Änderungszeitpunkte exakt erhalten, während -d fehlende Ordnerstrukturen dynamisch im Zielpfad etabliert.

Eine rekursive Auflistung des Zielorts veranschaulicht, dass sowohl Unterverzeichnisse als auch Dateien verlustfrei transferiert wurden.

4. Moderne SVR4/CRC-Standards und gzip-Kompression im Praxiseinsatz
In modernen Linux-Umgebungen – insbesondere beim Bau von Initramfs-Images – dominiert das portablere SVR4-Format (newc).
Im folgenden Schritt kombinieren wir den find-Befehl, die explizite Formatauswahl -H newc und den Kompressor gzip mit maximaler Packrate (-9), um ein distributionskonformes initramfs_sample.cpio.gz zu erzeugen.

Mittels file verifizieren wir den Dateityp und prüfen, ob der komprimierte Datenstrom den Spezifikationen entspricht.

Bevor wir den Entpackungsprozess einleiten, bereiten wir einen frischen Arbeitsordner vor.

Über das Dienstprogramm zcat dekodieren wir das gzip-Archiv im Flug und leiten den Datenstrom nahtlos in cpio -idv. So wird der gesamte Inhalt ohne vorheriges manuelles Entpacken direkt im aktuellen Pfad wiederhergestellt.

Abschließend verifizieren wir die vollständige Rekonstruktion aller regulären sowie versteckten Einträge im Verzeichnis.

Damit haben Sie das Handwerkszeug erlernt, um cpio unter Ubuntu souverän für professionelle Archivierungs-, Spiegelungs- und Rettungsszenarien einzusetzen.
Durch die geschickte Verknüpfung von UNIX-Pipes und optimierten Formatoptionen eröffnen sich hocheffiziente Wege für automatisierte Backup-Strategien im Linux-Alltag.