Gentoo pxe / usb key + modification init ram disk
Par Vanaken Jonathan le vendredi, janvier 1 2010, 23:47 - Informatique - Lien permanent
L'iso minimal de gentoo est un linux très complet et ultra portable. Son initrd ultra complète permet de booter avec une folie d'options tel que le support de lvm, partition cryptée et plus encore. L'idée de le rendre bootable en pxe ou clef usb m'est venue.
Pour la manipulation, vous aurez besoin:
- Iso minimal de gentoo (install-x86-minimal-20091103.iso pour ma part)
- d'un environnement pxeboot ou une clef usb avec un chargeur de démarrage déjà installé
- Ce guide
mkdir /mnt/temp
mount install-x86-minimal-20091103.iso /mnt/temp/ -o loopRendons nous dans ce nouveau répertoire et copions les fichiers utiles dans un répertoire temporaire:
mkdir /tmp/gentoo/
cd /mnt/temp
cp -v image.squashfs isolinux/gentoo isolinux/gentoo.igz /tmp/gentoo/
Allons dans ce nouveau dossier et décompressons l'initrd de gentoo:
cd /tmp/gentoo
mkdir decomp
cd decomp
gunzip -c ../gentoo.igz | cpio -idv
Maintenant que l'initrd est décompressée, nous devons copier le rootfs. Ce rootfs est en fait le fichier image.squashfs qui est monté au boot. Créons un endroit pour le copier et copions le dedans:
mkdir mnt/cdrom
cp -v /tmp/gentoo/image.squashfs /tmp/gentoo/decomp/mnt/cdrom
Patchons le script d'initialisation avec ce patch pour qu'il monte le rootfs correctement:
cd /tmp/gentoo/decomp/
wget http://oxy.zengeek.org/blog/public/data/init.patch
patch -p0 < init.patch
Reste plus qu'a reconstruire l'initrd:
cd /tmp/gentoo/decomp/
find . -print | cpio -o -H newc | gunzip -c -9 - > ../gentoo.igz
Voilà, nous sommes équipés d'un noyau linux gentoo et d'une initrd bootable depuis le réseau ou une clef usb.
Copions le noyau gentoo, l'initrd gentoo.igz dans votre répertoire pxe ou clef usb. Editons notre chargeur de démarrage pour qu'il execute le noyau avec les options suivantes (ou adaptées selon votre chargeur de démarrage):
Pour syslinux ou pxelinux:
kernel gentoo/gentoo
append initrd=gentoo/gentoo.igz root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ dokeymap keymap=bePensez à mettre le bon keymap avec l'option de boot adéquate, voir supprimer l'option pour qu'il vous demande quel keymap vous voudriez au boot.
Nous pouvons maintenant démonter votre iso, et nettoyer votre dossier temporaire. 
umount /mnt/temp
rm -rfv /tmp/gentoo/Enjoy 
source: http://blog.dastrup.com/?p=12