Introduction
Pilier historique de la gestion des archives sous Unix et composant fondamental dans la génération des images initramfs du noyau Linux, l’utilitaire cpio demeure un outil indispensable pour tout administrateur système. Ce guide détaille son fonctionnement à travers ses trois modes opérationnels fondamentaux : l’exportation (copy-out, -o), l’extraction (copy-in, -i) et le transfert direct d’arborescences (copy-pass, -p). Suivez cette série de cas concrets pour optimiser vos stratégies de sauvegarde et vos procédures de restauration.
1. Déploiement du binaire et initialisation d’une archive de base (mode copy-out)
Avant toute manipulation sous Ubuntu, nous synchronisons le catalogue des dépôts officiels puis procédons à l’installation du paquet cpio afin de disposer des derniers correctifs de l’utilitaire.

Afin d’isoler notre environnement de test, nous créons un répertoire de travail dédié dans lequel nous injectons quelques fichiers textes servant de données sources.

À la différence d’outils comme tar, la spécificité de cpio réside dans le fait qu’il attend la liste des cibles directement sur son flux d’entrée standard (stdin). Le flux généré est ensuite consolidé dans un conteneur unique, ici nommé archive.cpio.
⚙️ [Synthèse des commutateurs essentiels]
-o (--create) : Active le mode copy-out pour générer un flux d’archive à partir d’une liste de chemins reçue sur l’entrée standard.-i (--extract) : Bascule en mode copy-in pour déballer ou analyser les composants d’un conteneur existant.-p (--pass-through) : Déclenche le mode copy-pass, assurant la duplication directe d’arborescences d’un emplacement à un autre sans fichier intermédiaire.-v (--verbose) : Affiche en temps réel la progression et l’énumération détaillée des éléments manipulés.-t (--list) : Inspecte la table des matières du conteneur sans extraire le moindre octet sur le disque.-d (--make-directories) : Recrée automatiquement les dossiers parents requis lors du déploiement des fichiers.-u (--unconditional) : Écrase sans avertissement les fichiers locaux préexistants par les versions de l’archive.-H (--format) : Définit le format d’en-tête de l’archive (formats courants : newc, crc, tar, etc.).

Nous vérifions ensuite les propriétés du conteneur archive.cpio fraîchement produit pour valider son intégrité et son empreinte sur le stockage.

2. Exploration du contenu et restauration ciblée (mode copy-in)
Avant de procéder à toute extraction, il est prudent d’examiner le contenu d’un paquet. L’association des options -t et -v permet de lister les chemins, permissions et métadonnées stockés dans archive.cpio en injectant ce dernier via une redirection d’entrée standard.

Afin d’éviter tout conflit avec nos données d’origine, nous préparons un dossier distinct qui servira de destination pour la restauration.

Pour décompresser l’ensemble des éléments dans le dossier courant, nous invoquons cpio -idv. L’argument -d garantit la reconstruction fidèle des sous-dossiers éventuels, tandis que -v fournit un suivi textuel clair de chaque fichier reconstitué.

Un simple contrôle d’inventaire confirme que les fichiers extraits correspondent rigoureusement aux originaux en termes d’attributs et de contenu.

3. Duplication ultra-rapide d’arborescences (mode copy-pass)
Le mode copy-pass constitue l’une des armes les plus efficaces de cpio, offrant la possibilité de synchroniser des structures complexes sans subir la surcharge d’écriture d’un fichier archive temporaire. Pour illustrer ce mécanisme, enrichissons notre source avec une sous-arborescence.

Nous initialisons ensuite le répertoire de destination destiné à recevoir le clone de cette hiérarchie.

En combinant find avec l’option -depth (qui traite le contenu avant les conteneurs), nous envoyons la structure directement vers cpio -pdmv. Le paramètre -m veille scrupuleusement à préserver les horodatages originaux des fichiers lors de la copie.

Un listage récursif de la destination valide que l’arborescence, les sous-dossiers et les métadonnées temporelles ont été parfaitement reproduits.

4. Génération d’images système (SVR4/CRC) et couplage avec gzip
Dans l’écosystème Linux, les archives destinées au démarrage (initramfs) exigent généralement le format portable SVR4 avec CRC (newc). Nous combinons ici l’énumération par find, le formatage newc de cpio et la compression maximale via gzip -9 au sein d’un pipeline fluide.

L’utilitaire file nous permet de sonder les octets magiques du livrable initramfs_sample.cpio.gz et d’authentifier sa structure binaire compressée.

Pour éprouver la phase inverse de déploiement, nous réservons un nouvel espace de travail propre.

L’extraction s’effectue élégamment sans étape intermédiaire : l’outil zcat décompresse le flux à la volée vers la sortie standard, qui alimente immédiatement cpio -idv pour rétablir les composants sur le disque.

Un audit complet du répertoire démontre la restitution parfaite de l’ensemble des fichiers réguliers et des éléments masqués.

Vous disposez désormais d’un aperçu complet des capacités offertes par cpio sous Ubuntu. Que ce soit pour concevoir des images système minimales, réaliser des sauvegardes ciblées ou orchestrer des transferts directs au sein de vos scripts Shell, l’intégration de ces techniques enrichira considérablement votre boîte à outils d’administration système.