Outils pour utilisateurs

Outils du site


informatique:linux:initrd

Ceci est une ancienne révision du document !


Ajouter des modules au kernel avec mkinitrd

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

Ajouter un modules au kernel manuellement

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/

FIXME

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
informatique/linux/initrd.1193744274.txt.gz · Dernière modification: 2018/09/06 18:59 (modification externe)