Ceci est une ancienne révision du document !
Pour voir ce qui est inclu dans le initrd pour notre Kernel
zcat /boot/initrd-$(uname -r).img | cpio -itv
Nous allons ajouter dans l'exemple suivant le module raid1.ko
cd /boot mkinitrd --with=raid1 initrd-raid1-$(uname -r).img $(uname -r)
Attention de ne pas ecraser l'ancien initrd
Note : Les modules dispo pour le kernel se trouvent dans /lib/modules/$(uname -r)/kernel/
Editer /boot/grub/grub.conf et ajouter un nouveau bloc pour tenir compte de nouvel initrd
title Red Hat Enterprise Linux ES (2.6.9-42.EL) root (hd0,0) kernel /vmlinuz-2.6.9-42.EL ro root=/dev/rootvg/lvroot initrd /initrd-raid1-2.6.9-42.EL.img
Rebooter
Récupérer le fichier initrd que l'on veux recupérer par dans le cd de linux dans ./Image/pxeboot/initrd.img
Renommer et décomprésser l'archive initrd.img
mv initrd.img initrd.img.gz gunzip initrd.img.gz
Monter le FS initrd.img
mkdir mount-initrd mount -o loop initrd.img mount-initrd
Le fichier mount-initrd/modules/modules.cgz
contient tous les modules, nous allons le copier en dehors du FS
cp mount-initrd/modules/modules.cgz .
Renommer et décomprésser l'archive modules.cgz
mv modules.cgz modules.gz gunzip modules.gz cpio -idv < modules
Copier les fichier .o
ou .ko
que l'on veut ajouter dans le repertoire décompressé
cp bnx2.o ./2.4.21-37.ELBOOT/i386/
Contruire une nouvelle archive modules.cgz
find ./2.4.21-37.ELBOOT |cpio -ocv > modules gzip -9 modules
Copier modules.cgz
dans le FS
cp modules.cgz mount-initrd/modules/
Démonter le FS et recompresser l'archive initrd.img
umount mount-initrd gzip -9 initrd.img mv initrd.img.gz initrd.img