gunzip ne doit être exécuté qu'une seule fois (consommant toutes les entrées), alors que cpio doit être exécuté une fois par archive intégrée, comme ceci :
gunzip -c <input.cgz | while cpio -i; do :; done
/usr/lib/dracut/skipcpio $your-initrd-img | zcat | cpio -id --no-absolute-file-names
ou bien
/usr/lib/dracut/skipcpio $your-img | gunzip -c | cpio -id
(dans FreeBSD, il n'y a pas d'option --no-absolute-file-names pour cpio)
Ce petit programme skipcpio
si partie du paquet dracut. Mais vous pouvez télécharger le code (skipcpio.c) et le compiler même sous FreeBSD.
Vous en avez besoin lors de l'extraction d'images initrd créées par dracut, au moins sous les distributions alimentées par RedHat, comme Fedora. Il place un fichier appelé "early_cpio" dans l'image, donc extraire votre initramfs d'une manière normale connue auparavant ne fonctionnera pas.