C'est quoi?
L'initrd (initial ramdisk) est un système de fichiers temporaires utilisés par le noyau Linux au démarrage. L'initrd est généralement utilisé pour faire des préparatifs avant que le vrai système de fichiers racine puisse être monté. L'initrd est ni plus ni moins qu'une archive cpio gzippée. Une archive cpio constitue un ensemble de fichiers et répertoires dans une archive unique compressé avec l'utilitaire cpio.
Des exemples
initrd.gz => Sous ZenEee sur clé USB
kernel26.img => Sous Arch
initramfs_data.cpio.gz => sous LFS
On retrouve ce fichier au répertoire "/boot"
Extraire une image CPIO
Prendre note qu'extraire une image cpio est dangereux si vous êtes positioné à la racine du système en cours d'usage. Ceci pourrait endommagé des fichiers et rendre votre système non bootable. Avec la commande cpio, vous devez utiliser l'option «--no-absolute-filenames» et être sur que le répertoire courrant n'est pas "/".
Supposons que le nom du fichier à extraire soit "/home/foo/tmp/initrd.gz"
Les fichiers extraits sont maintenant tous sous le répertoire "/home/foo/tmp". Vous pouvez maintenant en explorer le contenu.
Créer une image CPIO
En supposant que je veuille créer une archive du contenu du répertoire "/home/foo/tmp"
Le fichier créé se trouve sous "/home/foo"
L'initrd (initial ramdisk) est un système de fichiers temporaires utilisés par le noyau Linux au démarrage. L'initrd est généralement utilisé pour faire des préparatifs avant que le vrai système de fichiers racine puisse être monté. L'initrd est ni plus ni moins qu'une archive cpio gzippée. Une archive cpio constitue un ensemble de fichiers et répertoires dans une archive unique compressé avec l'utilitaire cpio.
Des exemples
initrd.gz => Sous ZenEee sur clé USB
kernel26.img => Sous Arch
initramfs_data.cpio.gz => sous LFS
On retrouve ce fichier au répertoire "/boot"
Extraire une image CPIO
Prendre note qu'extraire une image cpio est dangereux si vous êtes positioné à la racine du système en cours d'usage. Ceci pourrait endommagé des fichiers et rendre votre système non bootable. Avec la commande cpio, vous devez utiliser l'option «--no-absolute-filenames» et être sur que le répertoire courrant n'est pas "/".
Supposons que le nom du fichier à extraire soit "/home/foo/tmp/initrd.gz"
# cd /home/foo/tmp
# zcat initrd.gz | cpio -id --no-absolute-filenames
Les fichiers extraits sont maintenant tous sous le répertoire "/home/foo/tmp". Vous pouvez maintenant en explorer le contenu.
Créer une image CPIO
En supposant que je veuille créer une archive du contenu du répertoire "/home/foo/tmp"
# cd /home/foo/tmp
# find . -print | cpio -o -H newc | gzip -9 > ../initrd.gz
Le fichier créé se trouve sous "/home/foo"



2 commentaires:
Ah, voilà un billet qui comble une lacune que j'avais. Un bon point de départ avec de googler plus avant. Merci.
Merci pour ce tuto, depuis plusieurs jours je butais sur une archive.
Cordialement
Enregistrer un commentaire