PXE over MDT2013

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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.c32
  • bios/com32/cmenu/libmenu/libmenu.c32
  • bios/com32/libutil/libutil.c32
  • bios/com32/menu/menu.c32
  • bios/com32/menu/vesamenu.c32
  • bios/com32/lib/libcom32.c32
  • bios/com32/elflink/ldlinux/ldlinux.c32
  • bios/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

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.com pour démarrer directement en Linux plutôt que de passer par le
 menu WDS natif (wdsnbp.com proposait à l'origine pxeboot.com, la
 valeur linux équivalente est pxelinux.com)

Boot UEFI :

  • Option 60 : PXEClient
  • Option 66 : adresse IP du serveur WDS
  • Option 67 : boot\x64\wdsmgfw.efi (natif) ou syslinux.efi pour
 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