Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
sysadmin:boot_pxe [2010/01/06 23:54] james créée |
sysadmin:boot_pxe [2012/09/21 17:31] james ajout tags |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>pxe sysadmin tftp serveur boot howto liveCD NFSroot}} | ||
====== Boot PXE ====== | ====== Boot PXE ====== | ||
Ligne 9: | Ligne 10: | ||
===== Installation du serveur de boot PXE ===== | ===== Installation du serveur de boot PXE ===== | ||
- | 2 parties : | + | ==== Configuration du serveur TFTP ==== |
+ | Pour servir les images, il faut un serveur TFTP (Trivial File Transfert Protocol) | ||
+ | J'utilise tftpd-hpa qui s'installe grace a la commande suivante :<code>apt-get install tftpd-hpa</code> | ||
+ | Vous avez remarqué que le demon est par défaut désactivé, nous allons le configurer pour démarrer automatiquement | ||
+ | <note> sous debian, le répertoire racine du tftpboot est /var/lib/tftpboot, mais nous utiliserons /tftpboot ici</note> | ||
+ | Activer le démarrage automatique du démon :<code>sed -i -e 's/RUN_DAEMON="no"/RUN_DAEMON="yes"/' /etc/default/tftpd-hpa</code> | ||
+ | Changer le repertoire racine :<code>sed -i -e 's,OPTIONS="-l -s /var/lib/tftpboot",OPTIONS="-l -s /tftpboot",' /etc/default/tftpd-hpa</code> | ||
+ | Création du répertoire racine :<code>mkdir /tftpboot</code> | ||
+ | Démarrage du service :<code>/etc/init.d/tftpd-hpa start</code> | ||
- | === Configuration du serveur DHCP === | + | ==== Configuration du serveur DHCP ==== |
- | TODO | + | |
- | === Configuration du serveur TFTP === | + | |
- | Pour servir les images, il faut un serveur TFTP (Trivial File Transfert Protocol) | + | Je ne vais pas reprendre ici toute la configuration, mais je vais lister les directives a ajouter par rapport a une configuration "normale" : |
+ | * ajouter en global : <code> | ||
+ | # pour le boot reseau | ||
+ | allow booting; | ||
+ | allow bootp; | ||
+ | </code> | ||
+ | * ajouter dans le subnet/shared-network/host de votre choix :<code> | ||
+ | #next-server is your network boot server | ||
+ | next-server 192.168.1.40; | ||
+ | filename "pxelinux.0"; | ||
+ | </code> | ||
+ | ou "192.168.1.40" est l'IP de votre serveur tftp et "pxelinux.0" le fichier à télécharger. | ||
+ | Vous pouvez bien sûr mixer les serveurs tftp et/ou les fichiers a télécharger en fonction des différents réseaux/machines. Vous pouvez également utiliser un nom DNS et non une IP. | ||
- | TODO | + | Voici par exemple la déclaration complete d'un subnet et celle d'un hote utilisant une configuration différente de celle par défaut : |
+ | <code> | ||
+ | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
+ | range 192.168.1.150 192.168.1.200; | ||
+ | option routers monrouteur.mondomaine.com; | ||
+ | option domain-name "mondomaine.com mondomaine.org"; | ||
+ | option domain-name-servers ns.mondomaine.com, ns2.mondomaine.com; | ||
+ | |||
+ | next-server pxeserver.mondomaine.com; | ||
+ | filename "pxelinux.0"; | ||
+ | } | ||
+ | [....] | ||
+ | host athlon2600 { | ||
+ | hardware ethernet ab:cd:ef:00:01:02; | ||
+ | fixed-address mamachine.mondomaine.com; | ||
+ | filename "GEEXBOX/boot/pxelinux.0"; | ||
+ | } | ||
+ | </code> | ||
- | ==== Creation d'une image de boot PXE ==== | + | ==== Mise en place de l'arborescence pour le boot PXE ==== |
L'ensemble des fichiers de boot PXE seront stockés dans le repertoire /tftpboot comme vu plus haut. | L'ensemble des fichiers de boot PXE seront stockés dans le repertoire /tftpboot comme vu plus haut. | ||
- | Si tel n'etais pas le cas chez vous, il faut bien sur adapter le chemin. | + | Si tel n'etait pas le cas chez vous, il faudrait bien sur adapter les chemins dans la suite. |
* Télécharger le dernier SysLinux à l'adresse suivante : http://www.kernel.org/pub/linux/utils/boot/syslinux/ (il s'agit de la version 3.84 a l'heure ou j'ecris ces lignes) | * Télécharger le dernier SysLinux à l'adresse suivante : http://www.kernel.org/pub/linux/utils/boot/syslinux/ (il s'agit de la version 3.84 a l'heure ou j'ecris ces lignes) | ||
Ligne 34: | Ligne 70: | ||
* Créer les répertoires suivants : | * Créer les répertoires suivants : | ||
- | * /tftpboot/syslinux-3.84/images (contiendra les images de disquettes) | + | * /tftpboot/img (contiendra les images de disquettes) |
- | * /tftpboot/syslinux-3.84/pxelinux.cfg (contiendra la configuration) | + | * /tftpboot/pxelinux.cfg (contiendra la configuration) |
- | * /tftpboot/syslinux-3.84/menuconf (contiendra la configuration d'éventuels sous-menus) | + | * /tftpboot/menuconf (contiendra la configuration d'éventuels sous-menus) |
+ | <code> mkdir /tftpboot/img /tftpboot/pxelinux.cfg /tftpboot/menuconf</code> | ||
* Création des liens symboliques (pour faciliter les eventuelles mises a jour de syslinux) :<code> | * Création des liens symboliques (pour faciliter les eventuelles mises a jour de syslinux) :<code> | ||
- | ln -s /tftpboot/syslinux-3.84 /tftpboot/syslinux | + | cd /tftpboot/ |
- | ln -s /tftpboot/syslinux/* /tftpboot/ | + | ln -s syslinux-3.84 syslinux |
+ | ln -s syslinux/* /tftpboot/ | ||
</code> | </code> | ||
- | Vous devriez avoir dans le repertoire /tftpboot quelque chose qui ressemble a :<code> | + | Vous devriez avoir dans le repertoire /tftpboot quelque chose qui ressemble à :<code> |
# ls -l /tftpboot/ | # ls -l /tftpboot/ | ||
- | total 26864 | + | total 26876 |
- | lrwxrwxrwx 1 root root 25 jan 6 23:48 images -> /tftpboot/syslinux/images | + | drwxr-xr-x 2 root root 4096 jan 7 00:16 img |
- | lrwxrwxrwx 1 root root 26 jan 6 23:47 memdisk -> /tftpboot/syslinux/memdisk | + | lrwxrwxrwx 1 root root 26 jan 6 23:47 memdisk -> syslinux/memdisk |
- | lrwxrwxrwx 1 root root 27 jan 6 23:47 menu.c32 -> /tftpboot/syslinux/menu.c32 | + | lrwxrwxrwx 1 root root 27 jan 6 23:47 menu.c32 -> syslinux/menu.c32 |
- | lrwxrwxrwx 1 root root 27 jan 6 23:48 menuconf -> /tftpboot/syslinux/menuconf | + | drwxr-xr-x 2 root root 4096 jan 7 00:16 menuconf |
- | lrwxrwxrwx 1 root root 29 jan 6 23:47 pxelinux.0 -> /tftpboot/syslinux/pxelinux.0 | + | lrwxrwxrwx 1 root root 29 jan 6 23:47 pxelinux.0 -> syslinux/pxelinux.0 |
- | lrwxrwxrwx 1 root root 31 jan 6 23:48 pxelinux.cfg -> /tftpboot/syslinux/pxelinux.cfg | + | drwxr-xr-x 2 root root 4096 jan 7 00:16 pxelinux.cfg |
lrwxrwxrwx 1 root root 13 jan 6 23:45 syslinux -> syslinux-3.84 | lrwxrwxrwx 1 root root 13 jan 6 23:45 syslinux -> syslinux-3.84 | ||
- | drwxr-xr-x 5 root root 4096 jan 6 23:48 syslinux-3.84 | + | drwxr-xr-x 2 root root 4096 jan 7 00:15 syslinux-3.84 |
</code> | </code> | ||
- | === Test du transfert TFTP === | + | <note important>Les chemins des liens symboliques doivent etre en chemin "relatif" et et non en "absolu" sinon cela ne fonctionne pas : il ne faut pas avoir <del>"pxelinux.0 -> /tftpboot/syslinux/pxelinux.0"</del> mais "pxelinux.0 -> syslinux/pxelinux.0" par exemple.</note> |
+ | |||
+ | ==== Test du transfert TFTP ==== | ||
Test de transfert de fichier : | Test de transfert de fichier : | ||
Ligne 64: | Ligne 104: | ||
<note>Le service TFTP utilise le port 69 en UDP, il faut l'autoriser dans le firewall du serveur (et/ou sur les firewall intermediaires) si besoin est.</note> | <note>Le service TFTP utilise le port 69 en UDP, il faut l'autoriser dans le firewall du serveur (et/ou sur les firewall intermediaires) si besoin est.</note> | ||
+ | |||
+ | Maintenant que tout ca marche, il est temps de mettre a dispostion des images de boot. | ||
+ | ==== Mise a disposition d'une image de boot ==== | ||
+ | |||
+ | Il existe plusieurs formats d'image : | ||
+ | * images binaires | ||
+ | * images de disquettes | ||
+ | * images ISO de CDROM | ||
+ | |||
+ | === Fichiers images (binaires)=== | ||
+ | Ca tombe bien c'est les plus simples car elles sont directement bootables :-) : | ||
+ | Par exemple nous allons proposer le boot de l'utilitaire [[http://www.memtest.org/|MemTest86+]] qui permet de tester la RAM d'une machine et qui peut s'avérer tres utile ;-) | ||
+ | |||
+ | * Allez sur le site http://www.memtest.org/#downiso et téléchargez la derniere version du "Pre-Compiled Bootable Binary" (en .gz ou .zip, comme vous préférez) | ||
+ | * Décompresser l'archive obtenue et placez le fichier .bin obtenue dans le repertoire 'img' a la racine du serveur TFTP (/tftpboot) :<code>cp memtest86+-4.00.bin /tftpboot/img/</code> | ||
+ | * Nous pouvons maintenant booter sur MemTest+ depuis un client PXE en tapant au prompt de boot :<code>img/memtest86+-4.00.bin</code> | ||
+ | :!: cette invite est en qwerty :!: | ||
+ | |||
+ | === Images de disquettes === | ||
+ | Les images de disquettes ne sont pas directement bootables, il faut donc utiliser l'image binaire "memdisk" à laquelle nous passerons en argument le nom du fichier image (disquette) a démarrer. | ||
+ | Les images pouvant être passées à ce module peuvent être de tous les formats standards, même si l'ordinateur client ne dispose pas de ce type de lecteur disquette, voir pas de lecteur disquette du tout. | ||
+ | |||
+ | * Placer l'image de votre disquette test.img dans le repertoire img, et vous pouvez ensuite booter dessus depuis un client PXE en tapant au prompt de boot :<code>memdisk initrd=img/test.img</code> | ||
+ | Entrée de menu nécessaire pour démarrer une image disquette (stockée dans le répertoire "img" des images et nommée "fichier.img") : | ||
+ | * Entrée de menu classiques pour les disquettes :<code> | ||
+ | LABEL monImageDeDisquette | ||
+ | MENU LABEL Mon image de disquette | ||
+ | kernel memdisk | ||
+ | append initrd=img/fichier.img | ||
+ | </code> | ||
+ | * Ou pour certaines images de disquette ne fonctionnant pas totalement, ajouter "raw" fin de ligne append :<code>append initrd=images/fichier.img raw</code> | ||
+ | * Ou encore : <code>append initrd=images/fichier.img bigraw</code> | ||
+ | * Ou enfin pour une image de disquette Ghost, nécessitant le driver UNDI :<code>append keeppxe initrd=images/fichier.img</code> | ||
+ | |||
+ | === Images ISO de liveCD/DVD === | ||
+ | |||
+ | <note>Toutes les ISOs de CD/DVD ne sont pas bootables en utilisant cette technique, cependant c'est le cas de toutes les images de liveCD / installateurs d'ubuntu "récente" (>= 10.04 lucid lynx) utilisant casper, comme dans l'exemple qui suit.</note> | ||
+ | |||
+ | Pour cela vous allez avoir besoin : | ||
+ | * de l'ISO du liveCD (ici ubuntu 10.04 version 32 bits) | ||
+ | * un serveur NFS préconfiguré | ||
+ | |||
+ | Admettons que vous ayez l'ISO dans "/export/iso/linux/ubuntu/10.04-Lucid_Lynx_LTS/ubuntu-10.04-desktop-i386.iso". | ||
+ | * Il faut tout d'abord monter l'ISO en loop (ce point montage devra ensuite etre accessible et exporté en NFS ) :<code> | ||
+ | mkdir /export/ISOs/ubuntu-10.04-desktop-i386 | ||
+ | mount -o loop,ro /export/iso/linux/ubuntu/10.04-Lucid_Lynx_LTS/ubuntu-10.04-desktop-i386.iso /export/ISOs/ubuntu-10.04-desktop-i386 | ||
+ | </code> | ||
+ | * Création de l'arborescence tftpboot :<code> | ||
+ | mkdir -p /tftpboot/ubuntu-live/10.04_lucid/i386/</code> | ||
+ | |||
+ | * Il ensuite faut copier les fichier noyau et initrd pour pouvoir les distribuer en PXE :<code> | ||
+ | cp /export/ISOs/ubuntu-10.04-desktop-i386/casper/initrd.lz /tftpboot/ubuntu-live/10.04_lucid/i386/ | ||
+ | cp /export/ISOs/ubuntu-10.04-desktop-i386/casper/vmlinuz /tftpboot/ubuntu-live/10.04_lucid/i386/ | ||
+ | </code> | ||
+ | |||
+ | * Il faut ensuite ajouter les lignes suivantes a votre fichier "/tftpboot/pxelinux.cfg/default" (ou autre : voir plus haut pour les subtilités) :<code> | ||
+ | # Ubuntu Lucid Lynx 10.04 LTS liveCD | ||
+ | label lucid-i386-liveCD | ||
+ | menu label Ubuntu 10.04 Lucid Lynx i386 Live^CD | ||
+ | kernel ubuntu-live/10.04_lucid/i386/vmlinuz | ||
+ | append boot=casper netboot=nfs nfsroot=10.31.192.28:/export/ISOs/ubuntu-10.04-desktop-i386/ initrd=ubuntu-live/10.04_lucid/i386/initrd.lz -- | ||
+ | </code> | ||
+ | ou "10.31.192.28" est l'IP de votre serveur NFS distribuant l'image ISO montée dans "/export/ISOs/ubuntu-10.04-desktop-i386/" : adaptez les chemins le cas échéant. | ||
+ | |||
+ | * Voici pour info la ligne correspondant à l'export NFS (à ajouter dans le fichier /etc/exports du serveur correspondant) :<code> | ||
+ | # pour les liveCD en NFS / PXE | ||
+ | /export/ISOs/ubuntu-10.04-desktop-i386 *(ro,no_root_squash,nohide,async,no_subtree_check) | ||
+ | </code> | ||
+ | |||
+ | ==== Industrialisation de la chose ==== | ||
+ | C'est quand meme un peu lourd de devoir taper le nom des images a lancer sur une console, qui plus est en qwerty, non ? ;-) | ||
+ | |||
+ | Nous allons donc créer et organiser un menu de boot : | ||
+ | * Fichier de configuration de PXE Linux | ||
+ | * Pour créer un fichier de configuration propre à chaque machine, deux choix de création s'offrent à nous : | ||
+ | * 01-00-26-54-42-b1-d3-d4 ("01-" suivi de l'adresse MAC de la carte reseau, donc la machine) | ||
+ | * C0A80003 (qui correspond a l'IP de la machine "192.168.0.3" en hexadecimal) | ||
+ | * Il faut bien sur privilégier le premier, car 'adresse IP peut ne pas etre fixe (attribution d'adresse via DHCP sans réservation par exemple) alors que l'adresse MAc est quant a elle fixe et unique. | ||
+ | * On pourrait créer un fichier de configuration propre au réseau 192.168.0.0/24 : | ||
+ | * C0A800 (réseau "192.168.0" en hexadecimal) | ||
+ | * Ou une configuration par défaut : | ||
+ | * Créer un fichier texte nommé : "default" dans le répertoire "pxelinux.cfg", et contenant :<code> | ||
+ | DEFAULT menu.c32 | ||
+ | |||
+ | TIMEOUT 50 | ||
+ | ALLOWOPTIONS 0 | ||
+ | PROMPT 0 | ||
+ | |||
+ | MENU TITLE Kiwi Menu | ||
+ | |||
+ | LABEL BootNormal | ||
+ | MENU LABEL ^Boot Normal | ||
+ | MENU DEFAULT | ||
+ | LOCALBOOT 0 | ||
+ | |||
+ | LABEL test | ||
+ | MENU LABEL Dis^quette de test | ||
+ | kernel memdisk | ||
+ | append initrd=images/test.img | ||
+ | </code> | ||
+ | Ceci est la version la plus simple d'affichage d'un menu au démarrage, meme si nous aurions pu réaliser un menu graphique. | ||
+ | |||
+ | |||
+ | La syntaxe de ce fichier de configuration est décrite dans le fichier "syslinux.doc" de l'archive de SysLinux. | ||
+ | <note>Noter les touches de raccourcis des différentes entrées de ce menu ( caractere ^ devant la lettre correspondante )</note> | ||
+ | |||
+ | Un sous menu n'est rien d'autre qu'un autre "menu.c32" appelé avec comme argument le fichier de configuration de ce sous menu, comme par exemple :<code> | ||
+ | LABEL sysUtils | ||
+ | MENU LABEL > Utilitaires ^systemes | ||
+ | KERNEL menu.c32 | ||
+ | APPEND menuconf/sysutil.conf | ||
+ | </code> | ||
+ | Et en créant un fichier "menuconf/sysutil.conf" analogue au précédent | ||
+ | |||
+ | ===== Références ===== | ||
+ | Je vous conseille les lectures suivantes : | ||
+ | * http://www.gentilkiwi.com/documentations-s11-t-pxe.htm | ||
+ | * http://www.isalo.org/wiki.debian-fr/index.php?title=PXE | ||
+ | * http://www.syslinux.org/wiki/index.php/PXELINUX (anglais) | ||
+ | * http://www.syslinux.org/wiki/index.php/MEMDISK#EXTLINUX.2FISOLINUX.2FPXELINUX.2FSYSLINUX | ||
+ | * http://random.kakaopor.hu/ubuntu-12-04-live-nfspxe-boot-diskless-casper-kept | ||
+ | |||
+ | ===== Aller plus loin ===== | ||
+ | * http://drbl.sourceforge.net/ (Diskless Remote Boot in Linux) | ||
+ | * http://ipxe.org/start (iPXE permet de booter en iSCSI, AoE, http, .... et peut s'utiliser avec chainloader ) | ||
+ | |||
+ | ===== liveCD ubuntu 12.04 en PXE ===== | ||
+ | Quelques particularités concernant le boot d'un liveCD d'ubuntu 12.04 precise en PXE : | ||
+ | * Par defaut la commande nfsmount utilisée pour monter le / utilise maintenant NFSv4 et non plus NFSv3. Si comme moi vous voulez continuer a utiliser un serveur NFSv3 pour ca, lisez la suite. | ||
+ | * L'initrd du liveCD de la version i386 (la version amd64 n'a pas ce probleme) ne fonctionne pas : certainement a cause d'un probleme de génération de l'initrd pour les noyaux "-generic-pae", voir suite pour regénérer un initrd fonctionnel (sans le support du PAE donc) | ||
+ | |||
+ | ==== Faire fonctionner un boot de liveCD PXE ubuntu 12.04 en NFSv3 ==== | ||
+ | * comme d'habitude récupérer l'image iso du liveCD | ||
+ | * il faut ensuite la monter et rendre ce point de montage accessible en NFS comme ci dessus : | ||
+ | * <code> | ||
+ | # mkdir /export/ISOs/ubuntu-12.04-desktop-amd64 | ||
+ | # mount -o loop,ro /export/iso/linux/ubuntu/12.04_precise/ubuntu-12.04-desktop-amd64.iso /export/ISOs/ubuntu-12.04-desktop-amd64 | ||
+ | </code> | ||
+ | * ajouter l'export NFS :<code> | ||
+ | # echo "/export/ISOs/ubuntu-12.04-desktop-amd64 *(ro,no_root_squash,nohide,async,no_subtree_check)" >> /etc/exports | ||
+ | # /etc/init.d/nfs-kernel-server reload</code> | ||
+ | |||
+ | Voila pour la partie facile, maintenant il va falloir extraire l'initrd, et en modifier le contenu pour appeler la commande "mount -f nfs" au lieu de la commande "nfsmount" et ainsi utiliser le NFSv3 au lieu du NFSv4 : | ||
+ | * décompression de l'initrd fourni :<code> | ||
+ | $ mkdir /tmp/ubuntu_boot | ||
+ | $ cd /tmp/ubuntu_boot | ||
+ | $ cat /export/ISOs/ubuntu-12.04-desktop-amd64/casper/initrd.lz | lzcat | cpio -i | ||
+ | </code> | ||
+ | * modifier le script en applicant le patch suivant : <code> | ||
+ | --- ./scripts/casper.orig 2012-05-15 15:22:04.000000000 +0200 | ||
+ | +++ ./scripts/casper 2012-05-15 15:24:45.000000000 +0200 | ||
+ | @@ -223,11 +223,11 @@ do_nfsmount() { | ||
+ | NFSOPTS="" | ||
+ | fi | ||
+ | |||
+ | - [ "$quiet" != "y" ] && log_begin_msg "Trying nfsmount -o nolock -o ro ${NFSOPTS} ${NFSROOT} ${mountpoint}" | ||
+ | + [ "$quiet" != "y" ] && log_begin_msg "Trying mount -t nfs -o nolock -o ro ${NFSOPTS} ${NFSROOT} ${mountpoint}" | ||
+ | # FIXME: This while loop is an ugly HACK round an nfs bug | ||
+ | i=0 | ||
+ | while [ "$i" -lt 60 ]; do | ||
+ | - nfsmount -o nolock -o ro ${NFSOPTS} "${NFSROOT}" "${mountpoint}" && rc=0 && break | ||
+ | + mount -t nfs -o nolock -o ro ${NFSOPTS} "${NFSROOT}" "${mountpoint}" && rc=0 && break | ||
+ | sleep 1 | ||
+ | i="$(($i + 1))" | ||
+ | done</code> ou encore :<code>sed -i -e 's/nfsmount -o nolock/mount -t nfs -o nolock/' /tmp/ubuntu_boot/scripts/casper</code> | ||
+ | * Recompresser l'initrd :<code>find . | cpio --quiet --dereference -o -H newc | lzma -c9 > /tmp/initrd_new.lz</code> | ||
+ | * Rendre ce nouvel initrd ainsi que le noyau accessible en tftp en les copiant a la racine du serveur tftp :<code> | ||
+ | # mkdir -p /tftpboot/ubuntu-live/12.04_precise/amd64/ | ||
+ | # cp /tmp/initrd_new.lz /tftpboot/ubuntu-live/12.04_precise/amd64/ | ||
+ | # cp /export/ISOs/ubuntu-12.04-desktop-amd64/casper/vmlinuz /tftpboot/ubuntu-live/12.04_precise/amd64/ | ||
+ | </code> | ||
+ | * Il faut ensuite ajouter les lignes suivantes a votre fichier "/tftpboot/pxelinux.cfg/default" (ou autre : voir plus haut pour les subtilités) :<code> | ||
+ | # Ubuntu Precise Pangolin 12.04 liveCD | ||
+ | label precise-amd64-liveCD | ||
+ | menu label Ubuntu 12.04 ^Precise Pangolin amd64 LiveCD | ||
+ | kernel ubuntu-live/12.04_precise/amd64/vmlinuz | ||
+ | append boot=casper netboot=nfs nfsroot=10.31.192.28:/export/ISOs/ubuntu-12.04-desktop-amd64/ initrd=ubuntu-live/12.04_precise/amd64/initrd_nfsmount.lz -- debian-installer/locale=fr_FR keyboard-configuration/layoutcode=fr keyboard-configuration/variantcode=oss | ||
+ | </code> | ||
+ | ou "10.31.192.28" est l'IP de votre serveur NFS distribuant l'image ISO montée dans "/export/ISOs/ubuntu-12.04-desktop-amd64/" : adaptez les chemins le cas échéant. | ||
+ | |||
+ | ==== La même chose mais pour un liveCD i386 ==== | ||
+ | Pour la version i386, l'initrd présent sur le cdrom ne fonctionne pas (en tous cas chez moi :p) : il n'arrive pas a charger les modules lors du boot , comme par exemple le fichier /lib/modules/3.2.0-23-generic/modules.dep. | ||
+ | |||
+ | |||
+ | Il a donc fallu générer un nouvel initrd en utilisant le noyau linux-image-3.2.0-23-generic-generic et non pas le linux-image-3.2.0-23-generic-pae d'origine avant de réaliser les opérations décrites ci dessus. | ||
+ | Pour ce faire, il faut prendre une machine ubuntu 12.04 i386 (dans mon cas une simple VM utilisant l'iso du liveCD 12.04 i386) et : | ||
+ | <code># apt-get install linux-image-3.2.0-23-generic | ||
+ | # /usr/sbin/mkinitramfs -o /tmp/initrd_3.2.0-23-generic.lz -c lzma 3.2.0-23-generic</code> | ||
+ | Il ne restait donc ensuite plus qu'a en extraire le contenu, patcher le script scripts/casper pour utiliser le NFSv3 et recompresser | ||