92 lines
3.3 KiB
Markdown
92 lines
3.3 KiB
Markdown
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
|
|
```
|
|
|
|
Les variables `$server_ip` et `$nfs_path` contiennent respectivement l'IP (ou le
|
|
nom d'hôte) de mon serveur NFS et le chemin pointant vers les "images" de
|
|
démarrage.
|
|
|
|
### 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
|