PXE over MDT2013
| Fiche express | |
|---|---|
| Domaine | Boot PXE Linux dans un environnement Microsoft MDT/WDS |
| Composant Linux | syslinux (pxelinux) |
| Composant Microsoft | MDT 2013 + WDS |
| Voir aussi | Serveur boot PXE · Kickstart |
Microsoft Deployment Toolkit (MDT), via le rôle Windows Deployment Services (WDS) qui l'expose en PXE, sait nativement démarrer des images de déploiement Windows (WinPE) mais pas des distributions Linux. Cette page décrit comment ajouter un chaînage vers pxelinux pour proposer, dans le même menu de boot PXE, des installations Linux (typiquement via Kickstart) à côté des images MDT.
Installation
Télécharger syslinux 6.03 (https://www.kernel.org/pub/linux/utils/boot/syslinux/) et en
extraire les fichiers suivants (le nom du dossier dans l'archive reste syslinux-6.02
selon la version exacte téléchargée — vérifier le contenu réel de l'archive plutôt que de se
fier au numéro de version dans le chemin) :
bios/com32/chain/chain.c32bios/com32/cmenu/libmenu/libmenu.c32bios/com32/libutil/libutil.c32bios/com32/menu/menu.c32bios/com32/menu/vesamenu.c32bios/com32/lib/libcom32.c32bios/com32/elflink/ldlinux/ldlinux.c32bios/core/pxelinux.0
Les placer dans le partage de déploiement MDT, aux deux emplacements (32 et 64 bits) :
D:\DeploymentShare\RemoteInstall\Boot\x86
D:\DeploymentShare\RemoteInstall\Boot\x64
(D:\DeploymentShare est le chemin du partage de déploiement MDT, à adapter à
l'installation réelle.)
Renommage
MDT/WDS attend des noms de fichiers spécifiques pour son mécanisme de chaînage de boot ; les fichiers syslinux doivent être renommés en conséquence, pour x86 comme pour x64 :
| Fichier syslinux | Renommé en |
|---|---|
abortpxe.com |
abortpxe.0
|
pxeboot.n12 |
pxeboot.0
|
pxelinux.0 |
pxelinux.com
|
Déclarer les programmes de boot côté WDS
# x86 (BIOS)
wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86
wdsutil /set-server /bootprogram:boot\x86\syslinux.efi /architecture:x86uefi
wdsutil /set-server /N12bootprogram:boot\x86\syslinux.efi /architecture:x86uefi
# x64 (BIOS)
wdsutil /set-server /bootprogram:boot\x64\pxelinux.com /architecture:x64
wdsutil /set-server /N12bootprogram:boot\x64\pxelinux.com /architecture:x64
wdsutil /set-server /bootprogram:boot\x64\syslinux.efi /architecture:x64uefi
wdsutil /set-server /N12bootprogram:boot\x64\syslinux.efi /architecture:x64uefi
Menu de boot
RemoteInstall\Boot\x86\pxelinux.cfg\default (et son équivalent x64) :
DEFAULT vesamenu.c32
PROMPT 0
TIMEOUT 300
ONTIMEOUT local
MENU TITLE Menu de démarrage PXE
LABEL linux-ks
MENU LABEL Installation Linux (Kickstart)
KERNEL images/linux/vmlinuz
APPEND initrd=images/linux/initrd.img ramdisk_size=100000 ksdevice=eth0 ip=dhcp ks=http://serveur-ks.exemple.tld/ks.cfg
LABEL MDT
MENU LABEL Images de déploiement MDT (WinPE)
KERNEL pxeboot.0
LABEL local
MENU DEFAULT
MENU LABEL Démarrer sur le disque dur
LOCALBOOT 0
Type 0x80
LABEL memtest86+
MENU LABEL Memtest86+
KERNEL /linux/memtest/memtest
LABEL Abort
MENU LABEL Quitter
KERNEL abortpxe.0
Le label MDT chaîne vers pxeboot.0 (le programme de boot WDS
renommé), ce qui redonne la main à l'environnement MDT normal — c'est ce chaînage qui permet
de faire cohabiter les deux mondes dans un seul menu.
Options DHCP
MDT/WDS s'appuie sur les options DHCP 60/66/67 pour orienter le client PXE vers le bon programme de boot. Le choix de la valeur de l'option 67 détermine ce qui démarre en premier :
Boot legacy (BIOS) :
- Option 60 :
PXEClient - Option 66 : adresse IP du serveur WDS
- Option 67 :
Boot\x64\wdsnbp.com(chargeur natif WDS) — remplacer par
pxelinux.compour démarrer directement en Linux plutôt que de passer par le menu WDS natif (wdsnbp.comproposait à l'originepxeboot.com, la valeur linux équivalente estpxelinux.com)
Boot UEFI :
- Option 60 :
PXEClient - Option 66 : adresse IP du serveur WDS
- Option 67 :
boot\x64\wdsmgfw.efi(natif) ousyslinux.efipour
Linux
Limitation connue : syslinux 6.03 (paquet syslinux.efi) ne gère pas le chaînage
UEFI vers boot\x64\syslinux.efi (absence de chain32.c côté UEFI) — il
faut alors passer par des IP helpers réseau (relais DHCP dédié par plage/VLAN) pour faire
cohabiter BIOS legacy et UEFI plutôt que par un unique jeu d'options DHCP (à vérifier selon
les versions plus récentes de syslinux, qui ont pu lever cette limitation depuis).
Récapitulatif des fichiers de boot possibles
| Fichier | Rôle |
|---|---|
boot\x86\wdsnbp.com |
Boot natif MDT/WDS |
boot\x86\pxeboot.com |
Boot Windows legacy natif |
boot\x86\pxelinux.com |
Boot Linux legacy (renommé depuis pxelinux.0)
|
Boot\x86\syslinux.efi |
Boot Linux UEFI |
Voir aussi
- Serveur boot PXE — mise en place d'un serveur PXE Linux natif (DHCP/TFTP), sans MDT
- Kickstart — fichier d'installation non interactive référencé par
ks=ci-dessus