Title: Démarrer SysRescueCD en PXE avec iPXE Category: sysadmin Tags: ipxe, sysrescuecd, Archlinux, pl-fr Date: 2019-11-07 18:35 Pour démarrer des machines via le réseau en PXE, j'utilise [iPXE][l_ipxe]. J'en avais déjà parlé lors du [paramétrage dnsmasq en tant que serveur DHCP avec iPXE]({filename}../../archives/demarrage-pxe-avec-openwrt-dnsmasq-et-freenas/index.md). J'utilise de temps à autres [SysRescueCD][l_SysRescueCD] que je démarre donc via le réseau. J'avais une configuration qui fonctionnait bien, mais en voulant passer à la version 6 de ce couteau suisse de diagnostic et de la réparation, impossible de démarrer car la distribution de base a changé. ## La nouvelle arborescence Précédement, les fichiers étaient organisés comme ceci dans mon répersoire `srcd` sur le partage NFS ou sont stockés les fichiers : ```console . ├── initram.igz ├── rescue32 ├── rescue64 ├── sysrcd.dat └── sysrcd.md5 ``` Le live CD, basé sur Gentoo était compatible avec les arcihectures 32 et 64 bits. Avec la version 6 fini le support 32 bits, et l'arborescence est celle utilisée par `archiso` : ```console . ├── boot │   ├── amd_ucode.img │   ├── amd_ucode.LICENSE │   ├── intel_ucode.img │   ├── intel_ucode.LICENSE │   └── x86_64 │   ├── sysresccd.img │   └── vmlinuz ├── pkglist.x86_64.txt └── x86_64 ├── airootfs.sfs └── airootfs.sha512 ``` ## La nouvelle configuration Voici les options nécessaires au démarrage de SysRescueCD via `iPXE`, je ne mets ici que l'extrait de la configuration qui nous intéresse : ``` :srcd kernel nfs://${server_ip}/${nfs_path}/srcd/boot/x86_64/vmlinuz initrd nfs://${server_ip}/${nfs_path}/srcd/boot/intel_ucode.img initrd nfs://${server_ip}/${nfs_path}/srcd/boot/amd_ucode.img initrd nfs://${server_ip}/${nfs_path}/srcd/boot/x86_64/sysresccd.img imgargs vmlinuz initrd=sysresccd.img ip=dhcp archisobasedir=srcd archiso_nfs_srv=${server_ip}:/${nfs_path} checksum ``` ### configurer le réseau au démarrage Les informations données [sur le wiki d'archlinux][l_wikiarch] parlent de la commande `SYSAPPEND 3` mais celle-ci ne semble pas disponible sur `iPXE`[^n_sysappend], le réseau ne sera donc pas initialisé lors du démarrage, empêchant le montage du dossier NFS. Le paramètre noyau `ip=dhcp` permet de forcer le système à obtenir une adresse IP lors du démarrage. ### Les autres options le reste des options parlent d'elle-même : - `archiso_nfs_srv` : donne l'adresse de la ressource NFS utilisée. - `archisobasedir` : le répertoire de base contenant l'arborescence d'archiso. Il est possible de trouver les options disponibles sur le [README][l_bootparam-arch] dans le dépôt git `archiso`. [^n_sysappend]:Voir la documentation de `SYSAPPEND` sur le [wiki de PXELINUX][l_sysappend] [l_ipxe]:https://ipxe.org/ [l_SysRescueCD]:http://www.system-rescue-cd.org/ [l_bootparam-arch]:https://git.archlinux.org/archiso.git/tree/docs/README.bootparams [l_wikiarch]:https://wiki.archlinux.org/index.php/PXE#Existing_PXE_Server [l_sysappend]:https://wiki.syslinux.org/wiki/index.php?title=SYSLINUX#SYSAPPEND_bitmask