Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:boot_pxe [2010/01/07 00:27]
james ajout images
sysadmin:boot_pxe [2012/09/21 17:31] (Version actuelle)
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 === +Je ne vais pas reprendre ici toute la configuration,​ mais je vais lister les directives a ajouter par rapport a une configuration "​normale"​ : 
-<notesous debian, ​le repertoire racine du tftpboot est /var/lib/tftpboot, mais nous utiliserons /tftpboot ici</note+  * ajouter en global : <code> 
-Pour servir ​les images, il faut un serveur TFTP (Trivial File Transfert Protocol)+# 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>​
  
-=== Mise en place de l'​arborescence pour le 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.
Ligne 39: Ligne 76:
  
   * 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 à :<​code>​ Vous devriez avoir dans le repertoire /tftpboot quelque chose qui ressemble à :<​code>​
-t# ls -l /tftpboot/+# ls -l /tftpboot/
 total 26876 total 26876
 drwxr-xr-x ​ 2 root  root          4096 jan  7 00:16 img 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
 drwxr-xr-x ​ 2 root  root          4096 jan  7 00:16 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
 drwxr-xr-x ​ 2 root  root          4096 jan  7 00:16 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 ​ 2 root  root          4096 jan  7 00:15 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 66: Ligne 106:
  
 Maintenant que tout ca marche, il est temps de mettre a dispostion des images de boot. Maintenant que tout ca marche, il est temps de mettre a dispostion des images de boot.
-=== Mise a disposition d'une image de boot ===+==== Mise a disposition d'une image de boot ====
  
 Il existe plusieurs formats d'​image : Il existe plusieurs formats d'​image :
Ligne 73: Ligne 113:
   * images ISO de CDROM   * images ISO de CDROM
  
-== Fichiers images ==+=== Fichiers images ​(binaires)===
 Ca tombe bien c'est les plus simples car elles sont directement bootables :-) : 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 ;-) 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)   * 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) : +  * 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>​ 
-<​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>​
-  * 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 :!: :!: cette invite est en qwerty :!:
  
-== Images de disquettes ==+=== 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 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. 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 : +  * 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>​ 
-<​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
  
sysadmin/boot_pxe.1262820433.txt.gz · Dernière modification: 2010/01/07 00:27 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0