Extraire une archive Unix ar ou cpio (paquet .deb, initramfs)
Ni 7-Zip ni un double-clic n'ouvrent directement le contenu d'un paquet .deb ou d'une image initramfs : les commandes ar et cpio qui permettent d'accéder à ce que ces conteneurs Unix bas niveau renferment réellement.
Le ar et le cpio sont deux des plus anciens formats d’archive d’Unix, tous deux dépourvus de compression intégrée et rarement rencontrés directement par un utilisateur, sauf lorsqu’il faut inspecter le contenu réel d’un paquet Debian (.deb) ou d’une image de démarrage initramfs, deux usages où ces formats subsistent aujourd’hui derrière une façade qui ne le laisse pas deviner.
Extraire le contenu d’un paquet .deb (format ar)
Un paquet .deb est en réalité une archive ar toute simple contenant trois éléments : debian-binary (un texte indiquant la version du format), control.tar (les métadonnées du paquet) et data.tar (les fichiers réellement installés sur le système, eux-mêmes compressés en gzip, xz ou zstd selon le paquet). Sous Linux, ar -x nom.deb extrait ces trois fichiers dans le dossier courant, prêts à être ouverts à leur tour avec tar. La commande dpkg-deb -x nom.deb dossier/ fait l’équivalent en une seule étape, sans passer par l’extraction manuelle de l’archive ar intermédiaire. Sous Windows, 7-Zip reconnaît directement le format ar et permet d’accéder aux mêmes fichiers sans ligne de commande.
Extraire une image initramfs (format cpio)
Une image initramfs Linux est presque toujours compressée par-dessus le format cpio : il faut donc d’abord la décompresser avec l’outil correspondant à l’algorithme utilisé (zcat pour gzip, xzcat pour xz, unzstd pour zstd), puis transmettre le résultat à cpio -idmv pour extraire effectivement les fichiers dans le dossier courant. La combinaison typique en une seule ligne ressemble à zcat initrd.img | cpio -idmv, mais elle ne fonctionne que si l’image forme un seul bloc compressé.
Sur Debian et Ubuntu, l’image produite par initramfs-tools commence souvent par une archive cpio non compressée contenant le microcode du processeur (initramfs « early »), suivie de l’archive principale compressée : zcat échoue alors dès le premier octet. La commande unmkinitramfs initrd.img dossier/, fournie par initramfs-tools, gère ce cas en passant chaque segment à cpio dans l’ordre, et lsinitramfs initrd.img en liste le contenu sans l’extraire.
Pourquoi ces formats persistent malgré leur âge
Ni ar ni cpio n’ont été conçus pour un usage d’archivage courant moderne : le premier reste cantonné aux bibliothèques statiques C/C++ et à l’enveloppe des paquets .deb, le second aux initramfs et à certains paquets RPM. Leur structure volontairement rudimentaire, sans compression ni index complexe, en fait des conteneurs bon marché à générer et à lire au tout début d’un processus de démarrage ou de compilation, avant que des outils plus sophistiqués ne soient disponibles.
Voir la fiche technique complète →
Formats concernés
Catégories concernées
Questions fréquentes
Pourquoi un paquet .deb s'ouvre-t-il en une archive ar plutôt qu'en tar ou zip directement ?
Le format .deb enveloppe volontairement plusieurs archives internes (debian-binary, control.tar, data.tar) dans un conteneur ar simple, sans compression ni structure complexe, avant même la compression des tar internes eux-mêmes : cette double couche sépare les métadonnées du paquet (control.tar) des fichiers réellement installés (data.tar).
Comment extraire une image initramfs cpio sous Linux ?
Une initramfs récente est généralement compressée en plus d'être au format cpio : il faut d'abord la décompresser (par exemple avec zcat ou xzcat selon l'algorithme utilisé), puis passer le résultat à `cpio -idmv` pour extraire les fichiers dans le dossier courant. Sur Debian et Ubuntu, l'image commence souvent par une archive cpio non compressée (microcode du processeur) suivie de l'archive compressée : ce raccourci échoue alors, et `unmkinitramfs initrd.img dossier/` (paquet initramfs-tools) extrait chaque segment dans l'ordre.
7-Zip peut-il extraire un fichier ar ou cpio sous Windows ?
Oui, 7-Zip reconnaît et extrait les deux formats sans outil supplémentaire, ce qui en fait une alternative pratique aux commandes `ar` et `cpio` pour un usage ponctuel sous Windows, sans avoir à installer un environnement Unix (WSL, Git Bash) uniquement pour cette tâche.
Sources
Dernière mise à jour :