« PXE avec support EFI » : différence entre les versions
Ligne 660 : | Ligne 660 : | ||
timeout 100</pre> | timeout 100</pre> | ||
[[Fichier:TRK1.png | [[Fichier:TRK1.png|200px]] | ||
=====DSL===== | =====DSL===== |
Version du 30 juin 2017 à 12:59
Debian Stretch Serveur PXE avec support EFI
Installation par le réseau - Boot PXE - Basique
Cet article propose de vous expliquer l’installation et la configuration d'un serveur PXE sur votre Debian.
Le démarrage PXE (Pre-boot eXecution Environment) permet à une station de travail de démarrer depuis le réseau en récupérant une image de système d'exploitation qui se trouve sur votre serveur. De multiples distribution, installeurs et LiveCD peuvent être démarrées par le réseau.
Les avantages sont évidents:
- Plus besoin de CD/DVD, Clef USB, etc.
- Toutes vos images sont centralisées à un seul endroit;
- Vous y accédez partout sur votre LAN.
Pour démarrer depuis le réseau il vous faudra deux serveurs (qui peuvent être sur la même machine évidemment):
- Un serveur TFTP
- Un serveur DHCP (Vous en avez normalement déjà un sur votre LAN)
Installation
TFTP
# apt install -y tftpd-hpa
C'est tout... Le serveur est accessible et fonctionnel sans plus de modifications:
# nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
Vous penserez tout de même à ouvrir le pare-feu:
# iptables -A INPUT -p udp -m udp --dport 69 -j ACCEPT
# systemctl restart tftpd-hpa
# pgrep -lf tftpd 11881 in.tftpd # netstat -uap | grep tftp udp 0 0 0.0.0.0:tftp 0.0.0.0:* 11881/in.tftpd
DHCP
Si vous avez déjà un serveur DHCP Debian (isc-dhcp-server), il suffira de le configurer comme suit:
default-lease-time 600; max-lease-time 7200; allow booting; # in this example, we serve DHCP requests from 192.168.0.(3 to 253) # and we have a router at 192.168.0.1 subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.3 192.168.0.253; option broadcast-address 192.168.0.255; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; filename "pxelinux.0"; } group { next-server 192.168.0.2; host tftpclient { filename "pxelinux.0"; } }
Les lignes importantes sont:
Le fichier d'amorce du serveur TFTP:
filename "pxelinux.0";
La définition du serveur tftp qui fournis l'amorce:
next-server 192.168.0.2; host tftpclient { filename "pxelinux.0";
Premier test basique
Test Basique avec l'installeur Stretch:
# cd /srv/tftp/
Récupération et décompression des fichiers de l'installeur Debian:
# wget -c http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz # tar -zxf netboot.tar.gz # rm netboot.tar.gz # ls -l
total 8 drwxrwxr-x 3 root root 4096 Jun 15 11:34 debian-installer lrwxrwxrwx 1 root root 47 Jun 15 11:34 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32 lrwxrwxrwx 1 root root 33 Jun 15 11:34 pxelinux.0 -> debian-installer/amd64/pxelinux.0 lrwxrwxrwx 1 root root 35 Jun 15 11:34 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg -rw-rw-r-- 1 root root 55 Jun 15 11:34 version.info
Et on teste: On redémarre le serveur tftp
# systemctl restart tftpd-hpa
On configure une machine pour démarrer sur le réseau (Qemu ou VirtualBox feront très bien l'affaire) et on boot:
Installation par le réseau - Boot PXE - Avancé avec support EFI
Nous allons choisir pour la suite une configuration un peu plus avancée. Vous pouvez démarrer des machines 100% UEFI avec un serveur PXE. Mais il vous faudra séparer les architectures.
En effet si le bootloader "(l)pxelinux.0" est capable de démarrer des machines clientes basée sur un Bios classique les machines utilisant l'UEFI devront utiliser le fichier "syslinux.efi" adéquat (EFI IA32 ou EFI X64 selon le client).
Notre choix se portera sur des répertoires séparés, mais pour minimiser la taille des fichiers sur le serveur certains sous-répertoires seront des liens symboliques:
/srv/tftp/ |_ boot/ | |_ debian/ | | |_installer/ | | | |_stretch/ | | | | |_amd64/_linux | | | | |_initrd.gz | | | |_... | | |_... | |_ ubuntu | |_ utilitaires | |_ ... | |_ bios/ | |_ boot -> ../boot/ | |_ pxelinux.cfg/ | | |_default | | |_... | |_ pxelinux.0 | |_ ldlinux.c32 | |_ (bios)*.c32 | |_ ... | |_ efi32/ | |_ boot -> ../boot/ | |_ pxelinux.cfg/ | | |_default | | |_... | |_ syslinux.efi | |_ ldlinux.e32 | |_ (efi32)*.c32 | |_ ... | |_ efi64/ | |_ boot -> ../boot/ | |_ pxelinux.cfg/ | | |_default | | |_... | |_ syslinux.efi | |_ ldlinux.e34 | |_ (efi64)*.c32 | |_ ... |_ ...
Prérequis
Un serveur DHCP (isc-dhcp-server). Inutile si vous disposez déjà d'un DHCP capable de servir les bootloaders Bios et EFI sur votre réseau... Il existe une alternative à isp-dhcp-server avec dnsmasq qui ne sera pas détaillée ici.
# apt install isc-dhcp-server
Les fichiers nécessaires:
# apt install syslinux syslinux-efi pxelinux memtest86+
Préparation des répertoires
# rm -rf /srv/tftp/ # mkdir -p /srv/tftp/boot/ # mkdir -p /srv/tftp/bios/pxelinux.cfg/ # mkdir -p /srv/tftp/efi32/pxelinux.cfg/ # mkdir -p /srv/tftp/efi64/pxelinux.cfg/
Attention, les liens vers le répertoire "boot" doivent être des liens relatifs (ie ils ne doivent pas sortir du serveur tftp):
# cd /srv/tftp/bios && ln -s ../boot boot # cd /srv/tftp/efi32 && ln -s ../boot boot # cd /srv/tftp/efi64 && ln -s ../boot boot
Partie bios
# cp /usr/lib/syslinux/modules/bios/* /srv/tftp/bios/ # cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/bios/ # cp /boot/memtest86+.bin /srv/tftp/bios/
On prépare une image Debian netboot pour tester:
# mkdir -p /srv/tftp/boot/debian/installer/stretch/ # cd /tmp # wget -c http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz # tar -zxf netboot.tar.gz # mv debian-installer/amd64/ /srv/tftp/boot/debian/installer/stretch/
# nano /srv/tftp/bios/pxelinux.cfg/default
DEFAULT vesamenu.c32 PROMPT 0 TIMEOUT 300 ONTIMEOUT 0 NOESCAPE 1 menu title **** Menu BIOS PXE **** label 0 menu label ^Demarrage sur disque dur local menu default localboot 0 label 1 menu label ^Redemarrage kernel reboot.c32 label 2 menu label ^Arret kernel poweroff.c32 LABEL 3 MENU LABEL ^HDT - Outil de detection materiel KERNEL hdt.c32 LABEL 4 MENU LABEL Netboot Debian 9 KERNEL boot/debian/installer/stretch/amd64/linux APPEND vga=788 initrd=boot/debian/installer/stretch/amd64/initrd.gz --- quiet
Partie efi64
# cp /usr/lib/syslinux/modules/efi64/* /srv/tftp/efi64/ # cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /srv/tftp/efi64/ # cp /boot/memtest86+.bin /srv/tftp/efi64/
# nano /srv/tftp/efi64/pxelinux.cfg/default
DEFAULT vesamenu.c32 PROMPT 0 TIMEOUT 300 ONTIMEOUT 0 NOESCAPE 1 KBDMAP french.kbd menu title **** Menu EFI64 PXE **** label 0 menu label ^Demarrage sur disque dur local menu default localboot 0 label 1 menu label ^Redemarrage kernel reboot.c32 label 2 menu label ^Arret kernel poweroff.c32 LABEL 3 MENU LABEL ^HDT - Outil de detection materiel KERNEL hdt.c32 LABEL 4 MENU LABEL Netboot Debian 9 KERNEL boot/debian/installer/stretch/amd64/linux APPEND vga=788 initrd=boot/debian/installer/stretch/amd64/initrd.gz --- quiet
Partie efi32
# cp /usr/lib/syslinux/modules/efi32/* /srv/tftp/efi32/ # cp /usr/lib/SYSLINUX.EFI/efi32/syslinux.efi /srv/tftp/efi32/ # cp /boot/memtest86+.bin /srv/tftp/efi32/
# nano /srv/tftp/efi32/pxelinux.cfg/default
default vesamenu.c32 prompt 0 timeout 300 ontimeout 0.0 noescape 1 menu title **** Menu EFI32 PXE **** label 0 menu label ^Demarrage sur disque dur local menu default localboot 0 label 1 menu label ^Redemarrage kernel reboot.c32 label 2 menu label ^Arret kernel poweroff.c32 LABEL 3 MENU LABEL ^HDT - Outil de detection materiel KERNEL hdt.c32 LABEL 4 MENU LABEL Netboot Debian 9 KERNEL boot/debian/installer/stretch/amd64/linux APPEND vga=788 initrd=boot/debian/installer/stretch/amd64/initrd.gz --- quiet
Configuration du serveur DHCP
J'ai fais mes tests avec cette configuration:
option space PXE; option PXE.mtftp-ip code 1 = ip-address; option PXE.mtftp-cport code 2 = unsigned integer 16; option PXE.mtftp-sport code 3 = unsigned integer 16; option PXE.mtftp-tmout code 4 = unsigned integer 8; option PXE.mtftp-delay code 5 = unsigned integer 8; option arch code 93 = unsigned integer 16; subnet 10.10.10.0 netmask 255.255.255.0 { deny unknown-clients; option routers 10.10.10.254; range 10.10.10.200 10.10.10.202; option tftp-server-name "10.10.10.13"; option root-path "/srv/tftp/"; next-server 10.10.10.13; # filename "pxelinux.0"; if option arch = 00:06 { filename "efi32/syslinux.efi"; } else if option arch = 00:07 { filename "efi64/syslinux.efi"; } else if option arch = 00:09 { filename "efi64/syslinux.efi"; } else { filename "bios/pxelinux.0"; } } host essai { hardware ethernet 08:00:27:6C:59:DA; fixed-address 10.10.10.222; }
La partie importante, pour servir les bootloader en fonction des clients est celle-ci:
Remplacer:
filename "pxelinux.0";
Par:
if option arch = 00:06 { filename "efi32/syslinux.efi"; } else if option arch = 00:07 { filename "efi64/syslinux.efi"; } else if option arch = 00:09 { filename "efi64/syslinux.efi"; } else { filename "bios/pxelinux.0"; }
Pour référence, voici la configuration d'une passerelle pfSense (Cela doit pouvoir s'adapter à d'autre type de serveurs DHCP):
Menus avancés et Démarrage de LiveCD et Utilitaires
Explications et customisations diverses
Clavier du Menu PXE en Français
Tout d'abord nous allons mettre le clavier du menu PXE en Français:
Le fichier french.kbd provient de Knoppix.
Récupérez le fichier puis copiez-le dans les répertoires ad-hoc:
# cp french.kbd /srv/tftp/bios/pxelinux.cfg/ # cp french.kbd /srv/tftp/efi64/pxelinux.cfg/ # cp french.kbd /srv/tftp/efi32/pxelinux.cfg/
Ajouter cette entrée à vos fichiers /var/lib/tftpboot/pxelinux.cfg/default
KBDMAP pxelinux.cfg/french.kbd
Configuration du serveur nfs
Afin de pouvoir accéder aux ISOs depuis les clients, il nous faut un serveur NFS (nfs-server) qui servira les iso:
# apt install -y nfs-kernel-server
Afin de gagner de la place, nous nous servirons du répertoire partagé /srv/tftp/boot pour accéder aux contenus:
# nano /etc/exports ... /srv/tftp/boot *(ro,async,no_root_squash,no_subtree_check)
# service nfs-kernel-server restart
Afin de faciliter la navigation dans les images netboot/live et utilitaires de votre menu (vos menus, puisqu'il faudra répéter l'opération pour efi32 et efi64), je vous propose ceci:
pxelinux.cfg/defaut = Menu par défaut (contient les menus essentiels, et les sous-menus);
pxelinux.cfg/pxe.conf = Menu qui contient vos arguments graphiques, résolution, couleurs...);
pxelinux.cfg/xxxxx.conf = Vos sous-menus.
Le fichiers defaut
DEFAULT vesamenu.c32 MENU BACKGROUND pxelinux.cfg/fond_pxe.png MENU INCLUDE pxelinux.cfg/pxe.conf TIMEOUT 150 ONTIMEOUT 0.0 MENU TITLE **** Menu BIOS PXE **** LABEL 0.0 MENU LABEL ^Demarrage sur disque dur local MENU DEFAULT localboot 0 LABEL 0.1 MENU LABEL ^Redemarrage KERNEL reboot.c32 LABEL 0.2 MENU LABEL ^Arret KERNEL poweroff.c32 LABEL 0.3 MENU LABEL ^HDT - Hardware Detection Tool KERNEL hdt.c32 LABEL blank MENU LABEL ---------------------------------------------------------------------- LABEL 1 MENU label Debian Installeur ^9 KERNEL images/debian-stretch-installer/amd64/linux APPEND vga=788 initrd=images/debian-stretch-installer/amd64/initrd.gz --- quiet LABEL 2 MENU debian-live-9.0.1-amd64-xfce SAY "Booting French (fr)..." KERNEL iso/debian-live-9.0.1-amd64-xfce/live/vmlinuz APPEND netboot=nfs netboot=nfs nfsroot=10.11.12.251:/srv/tftp/iso/debian-live-9.0.1-amd64-xfce initrd=iso/debian-live-9.0.1-amd64-xfce/live/initrd.img boot=live components locales=fr_FR.UTF-8 LABEL blank MENU LABEL ---------------------------------------------------------------------- LABEL Utilitaires MENU LABEL ^Utilitaires KERNEL vesamenu.c32 APPEND pxelinux.cfg/utilitaires.cfg LABEL Inutilitaires MENU LABEL ^Inutilitaires KERNEL vesamenu.c32 APPEND pxelinux.cfg/inutilitaires.cfg LABEL Ubuntu MENU LABEL U^buntu KERNEL vesamenu.c32 APPEND pxelinux.cfg/ubuntu.cfg
Associé à ce sous-fichier: pxe.conf
KBDMAP french.kbd MENU RESOLUTION 1024 768 NOESCAPE 1 ALLOWOPTIONS 1 PROMPT 0 MENU TABMSG [tab] pour editer MENU MARGIN 25 MENU ROWS 14 MENU VSHIFT 10 MENU COLOR BORDER 0 #ffffffff #ee000000 std MENU COLOR TITLE 0 #ffffffff #ee000000 std MENU COLOR SEL 0 #ffffffff #85000000 std MENU COLOR UNSEL 0 #ffffffff #ee000000 std MENU COLOR PWDHEADER 0 #ff000000 #99ffffff rev MENU COLOR PWDBORDER 0 #ff000000 #99ffffff rev MENU COLOR PWDENTRY 0 #ff000000 #99ffffff rev MENU COLOR HOTKEY 0 #ff00ff00 #ee000000 std MENU COLOR HOTSEL 0 #ffffffff #85000000 std
Et vos sous-menus qui ressemblerons à ceci:
LABEL MENUPrincipal MENU LABEL ^Retour au MENU Principal KERNEL vesaMENU.c32 APPEND pxelinux.cfg/default LABEL 3.0 KERNEL memdisk INITRD iso/super_grub2_disk_hybrid_2.02s9.iso bigraw MENU LABEL Super Grub Disk 2.02s9 LABEL 3.1 MENU LABEL Gparted Live 0.26 i686 KERNEL iso/gparted-live-0.26.1-3-i686/live/vmlinuz APPEND initrd=iso/gparted-live-0.26.1-3-i686/live/initrd.img vga=788 boot=live union=overlay username=user config components quiet noswap netboot=nfs nfsroot=10.11.12.251:/srv/tftp/iso/gparted-live-0.26.1-3-i686 ... etc.
Préparation des images
Debian Live CD
Debian Live 9.0.1 amd64 mate
# mount -o loop /tmp/debian-live-9.0.1-amd64-mate.iso /mnt/iso mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/debian/live/debian-live-9.0.1-amd64-mate # cp -r /mnt/iso/* /srv/tftp/boot/debian/live/debian-live-9.0.1-amd64-mate/ # umount /mnt/iso
Menu:
LABEL X.X MENU debian-live-9.0.1-amd64-mate SAY "Booting French (fr)..." KERNEL boot/debian/live/debian-live-9.0.1-amd64-mate/live/vmlinuz-4.9.0-3-amd64 APPEND netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/debian/live/debian-live-9.0.1-amd64-mate initrd=boot/debian/live/debian-live-9.0.1-amd64-mate/live/initrd.img-4.9.0-3-amd64 boot=live components locales=fr_FR.UTF-8
Ubuntu Live CD
Ubuntu Live CD 17.04
# mount -o loop /tmp/ubuntu-17.04-desktop-amd64.iso /mnt/iso/ # mkdir -p /srv/tftp/boot/ubuntu/live/ubuntu_17.04_desktop # cp -r /mnt/iso/* /srv/tftp/boot/ubuntu/live/ubuntu_17.04_desktop # umount /mnt/iso
Menu:
LABEL Ubuntu 17.04 LiveCD MENU Ubuntu 17.04 LiveCD (amd64) kernel boot/ubuntu/live/ubuntu_17.04_desktop/casper/vmlinuz.efi append root=/dev/nfs boot=casper netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/ubuntu/live/ubuntu_17.04_desktop initrd=boot/ubuntu/live/ubuntu_17.04_desktop/casper/initrd.lz quiet splash panic=5 --
Super Grub Disk
Télé-chargement dernière version: https://sourceforge.net/projects/supergrub2/files/
# mkdir -p /srv/tftp/boot/utilitaires/iso/ # cp /tmp/super_grub2_disk_hybrid_2.02s9.iso /srv/tftp/boot/utilitaires/iso/
Pour SuperGrubDisk nous allons utiliser memdisk qui est capable de lancer les ISOs directement depuis le menu PXE.
Cette méthode à ses limites: Si l'ISO est trop lourde le chargement mettra beaucoup de temps, avec les risque de plantages dus au réseau.
Évitez donc d'utiliser memdisk pour des ISOs dont la taille est supérieure à 300/400Mo.
# cp /usr/lib/syslinux/memdisk /srv/tftp/bios/
Que vous répéterez pour tous vos répertoires:
# cp /usr/lib/syslinux/memdisk /srv/tftp/efi32/ # cp /usr/lib/syslinux/memdisk /srv/tftp/efi64/
Menu:
LABEL SGD MENU LABEL Super Grub Disk 2.02s9 KERNEL memdisk INITRD boot/utilitaires/iso/super_grub2_disk_hybrid_2.02s9.iso bigraw
Gparted Live
Récupérez l'ISO ici: https://sourceforge.net/projects/gparted/files/gparted-live-stable/
# mount -o loop /tmp/gparted-live-0.28.1-1-amd64.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/gparted-live-0.28.1-1-amd64 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/gparted-live-0.28.1-1-amd64/
LABEL GPartedLive MENU LABEL Gparted Live 0.28.1-1 amd64 KERNEL boot/utilitaires/live/gparted-live-0.28.1-1-amd64/live/vmlinuz APPEND initrd=boot/utilitaires/live/gparted-live-0.28.1-1-amd64/live/initrd.img vga=788 boot=live union=overlay username=user config components quiet noswap netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/gparted-live-0.28.1-1-amd64
Rescatux
Récupérez l'ISO ici: http://www.supergrubdisk.org/category/download/rescatuxdownloads/rescatux-stable/
# cp /tmp/rescatux_cdrom_usb_hybrid_i386_amd64-486_0.30.2_sg2d.iso /srv/tftp/boot/utilitaires/iso/
LABEL RESCATUX MENU LABEL Rescatux 0.30.2 linux memdisk initrd boot/utilitaires/iso/rescatux_cdrom_usb_hybrid_i386_amd64-486_0.30.2_sg2d.iso APPEND iso bigraw
SystemRescueCD
https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/
SystemRescueCD-x86-5.0.2
# mount -o loop /tmp/systemrescuecd-x86-5.0.2.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2/ # umount /mnt/iso
LABEL SRCD32 MENU LABEL System Rescue CD 5.0.2 32 KERNEL boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/rescue32 APPEND initrd=boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/initram.igz dodhcp netboot=nfs nfsboot=10.10.10.13:/srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2 LABEL SRCD64 MENU LABEL System Rescue CD 5.0.2 64 KERNEL boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/rescue64 APPEND initrd=boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/initram.igz dodhcp netboot=nfs nfsboot=10.10.10.13:/srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2
Ultimate Boot CD
http://www.ultimatebootcd.com/download.html
# cp /tmp/ubcd537.iso /srv/tftp/boot/utilitaires/iso/
LABEL UBCMenu-iso MENU LABEL Ultimate Boot CD 5.3.7 LINUX memdisk INITRD boot/utilitaires/iso/ubcd537.iso APPEND iso
Trinity Rescue CD
# mount -o loop /tmp/trinity-rescue-kit.3.4-build-372.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir /srv/tftp/boot/utilitaires/live/trinity-rescue-kit.3.4-build-372 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/trinity-rescue-kit.3.4-build-372/ # umount /mnt/iso/
Étant donné qu'il y a des fonctions de remise à zéro de mots de passes, nous protégeons ce menu avec un mot de passe généré par la commande suivante:
# mkpasswd -H md5 "password" $1$ea8ualKp$zT7lW2KhNQkinMZo.JTD41
LABEL 0.6 MENU LABEL ^Trinity Rescue Kit 372 (default mode, with text MENU) MENU PASSWD $6$X73Wfro2$oXCDdfxdBlKUw0jVOfgkZ6dJMUS3BvwPHFGdZby12CMAx7rR5VS9WPvjdZCXGw.Yqv5/dZElVsoeC7dCNc3rd1$ KERNEL boot/utilitaires/live/trinity-rescue-kit.3.4-build-372/kernel.trk APPEND initrd=boot/utilitaires/live/trinity-rescue-kit.3.4-build-372/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 trknfs=10.10.10.13:/srv/tftp/boot/utilitaires/live/trinity-rescue-kit.3.4-build-372 ip=::::::dhcp splash=verbose pci=conf1 trkMENU timeout 100
DSL
http://www.damnsmalllinux.org/download.html
# mount -o loop /tmp/dsl-4.4.10-initrd.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/dsl-4.4.10-initrd # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/dsl-4.4.10-initrd/ # umount /mnt/iso
label DSL MENU LABEL Damn Small Linux 4.4.10 KERNEL boot/utilitaires/live/dsl-4.4.10-initrd/boot/isolinux/linux24 APPEND initrd=boot/utilitaires/live/dsl-4.4.10-initrd/boot/isolinux/minirt24.gz ramdisk_size=100000 init=/etc/init apm=power-off lang=fr vga=791 nomce BOOT_IMAGE=expert
Bodhi
http://www.bodhilinux.com/download/
# mount -o loop /tmp/bodhi-4.2.0-64.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/bodhi-4.2.0-64 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/bodhi-4.2.0-64/ # umount /mnt/iso
On règle un problème de droit sur le fichier vmlinuz:
# chmod 644 boot/utilitaires/live/bodhi-4.2.0-64/casper/vmlinuz.efi
menu:
LABEL Bodhi-4.2 MENU LABEL Bodhi Linux 4.2 KERNEL iso/bodhi-4.2.0-64/casper/vmlinuz.efi APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.11.12.251:/srv/tftp/iso/bodhi-4.2.0-64 initrd=iso/bodhi-4.2.0-64/casper/initrd.lz quiet splash panic=5 --
Clonezilla
http://clonezilla.org/downloads.php
# mount -o loop /tmp/clonezilla-live-2.5.0-25-amd64.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64 # umount /mnt/iso
Menu:
LABEL CLONEZILLA MENU LABEL Clonezilla live (Parametres par default, VGA 800x600) KERNEL boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64/live/vmlinuz APPEND netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64 initrd=boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1
RedoBackup
http://redobackup.org/download.php
# mount -o loop /tmp/redobackup-livecd-1.0.4.iso /mnt/iso/ mount: /dev/loop0 is write-protected, mounting read-only # mkdir -p /srv/tftp/boot/utilitaires/live/redobackup-livecd-1.0.4 # cp -r /mnt/iso/* /srv/tftp/boot/utilitaires/live/redobackup-livecd-1.0.4/ # umount /mnt/iso
Menu:
LABEL REDOBACKUP MENU LABEL Redo Backup LiveCD 1.0.4 KERNEL boot/utilitaires/live/redobackup-livecd-1.0.4/casper/vmlinuz APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/redobackup-livecd-1.0.4 initrd=boot/utilitaires/live/redobackup-livecd-1.0.4/casper/initrd.lz quiet splash panic=5 --
Slitaz
# cp /tmp/slitaz-4.0.iso /srv/tftp/boot/utilitaires/iso/
LABEL Slitaz MENU LABEL Slitaz 4.0 KERNEL memdisk APPEND iso bigraw initrd=iso/slitaz-4.0.iso
Comodo Rescue Disk
Peut-être utile si vous avez des machines Windows sur votre réseau. Ce live CD basé sur Slitaz permet de lancer un anti-virus sur une machine non bootée depuis son OS.
https://www.comodo.com/business-security/network-protection/rescue-disk.php
# cp /tmp/comodo_rescue_disk_2.0.261647.1.iso /srv/tftp/boot/inutilitaires/iso/
LABEL Comodo MENU LABEL Comodo Rescue Disk 2.0 KERNEL memdisk APPEND iso bigraw initrd=boot/inutilitaires/iso/comodo_rescue_disk_2.0.261647.1.iso
Menus qui ne fonctionnent pas encore
Antix
https://sourceforge.net/projects/antix-linux/
Malheureusement pas de ntboot possible.
Utilisation obligatoire de memdisk pour monter l'Iso. Temps de chargement un peu long (En fonction de votre LAN).
# cp /tmp/antiX-16.2_x64-base.iso /srv/tftp/boot/utilitaires/iso/
menu:
LABEL Antix MENU LABEL antiX-16.2_x64-base (15 June 2017) KERNEL memdisk APPEND iso raw initrd=boot/utilitaires/iso/antiX-16.2_x64-base.iso
Les Menus définitifs
-
Defaut
-
Utilitaires
-
Ubuntu
-
Inutilitaires
Pour référence, voici mes menus et fichiers de conf pour la partie BIOS de mon PXE:
# ls /srv/tftp/bios/
boot cpu.c32 dmitest.c32 hexdump.c32 kontron_wdt.c32 libutil.c32 memtest86+.bin pwd.c32 sdi.c32 whichsys.c32 cat.c32 cpuid.c32 elf.c32 host.c32 ldlinux.c32 linux.c32 menu.c32 pxechn.c32 sysdump.c32 zzjson.c32 chain.c32 cpuidtest.c32 ethersel.c32 ifcpu64.c32 lfs.c32 ls.c32 pci.c32 pxelinux.0 syslinux.c32 cmd.c32 debug.c32 gfxboot.c32 ifcpu.c32 libcom32.c32 lua.c32 pcitest.c32 pxelinux.cfg vesa.c32 cmenu.c32 dhcp.c32 gpxecmd.c32 ifmemdsk.c32 libgpl.c32 mboot.c32 pmload.c32 reboot.c32 vesainfo.c32 config.c32 disk.c32 gpxelinux.0 ifplop.c32 liblua.c32 memdisk poweroff.c32 rosh.c32 vesamenu.c32 cptime.c32 dmi.c32 hdt.c32 kbdmap.c32 libmenu.c32 meminfo.c32 prdhcp.c32 sanboot.c32 vpdtest.c32
# ls /srv/tftp/bios/pxelinux.cfg/
default fond_pxe.png french.kbd inutilitaires.cfg inutilitaires.png pxe.conf ubuntu.cfg ubuntu.png utilitaires.cfg utilitaires.png
pxelinux.cfg/defaut
# cat pxelinux.cfg/default
DEFAULT vesamenu.c32 MENU BACKGROUND pxelinux.cfg/fond_pxe.png MENU INCLUDE pxelinux.cfg/pxe.conf TIMEOUT 150 ONTIMEOUT 0.0 MENU TITLE **** Menu BIOS PXE **** LABEL 0.0 MENU LABEL ^Demarrage sur disque dur local MENU DEFAULT localboot 0 LABEL 0.1 MENU LABEL ^Redemarrage KERNEL reboot.c32 LABEL 0.2 MENU LABEL ^Arret KERNEL poweroff.c32 LABEL 0.3 MENU LABEL ^HDT - Hardware Detection Tool KERNEL hdt.c32 LABEL blank MENU LABEL ---------------------------------------------------------------------- LABEL 1.0 MENU LABEL Debian Installeur ^9 KERNEL boot/debian/installer/stretch/amd64/linux APPEND vga=788 initrd=boot/debian/installer/stretch/amd64/initrd.gz --- quiet LABEL 1.1 MENU LABEL debian-live-9.0.1-amd64-mate SAY "Booting French (fr)..." KERNEL boot/debian/live/debian-live-9.0.1-amd64-mate/live/vmlinuz-4.9.0-3-amd64 APPEND netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/debian/live/debian-live-9.0.1-amd64-mate initrd=boot/debian/live/debian-live-9.0.1-amd64-mate/live/initrd.img-4.9.0-3-amd64 boot=live components locales=fr_FR.UTF-8 LABEL blank MENU LABEL ---------------------------------------------------------------------- LABEL Utilitaires MENU LABEL ^Utilitaires KERNEL vesamenu.c32 APPEND pxelinux.cfg/utilitaires.cfg LABEL Inutilitaires MENU LABEL ^Inutilitaires KERNEL vesamenu.c32 APPEND pxelinux.cfg/inutilitaires.cfg LABEL Ubuntu MENU LABEL U^buntu KERNEL vesamenu.c32 APPEND pxelinux.cfg/ubuntu.cfg
pxelinux.cfg/pxe.conf
# cat pxelinux.cfg/pxe.conf
KBDMAP pxelinux.cfg/french.kbd MENU RESOLUTION 1024 768 NOESCAPE 1 ALLOWOPTIONS 1 PROMPT 0 MENU TABMSG [tab] pour editer MENU MARGIN 25 MENU ROWS 14 MENU VSHIFT 10 MENU COLOR BORDER 0 #ffffffff #ee000000 std MENU COLOR TITLE 0 #ffffffff #ee000000 std MENU COLOR SEL 0 #ffffffff #85000000 std MENU COLOR UNSEL 0 #ffffffff #ee000000 std MENU COLOR PWDHEADER 0 #ff000000 #99ffffff rev MENU COLOR PWDBORDER 0 #ff000000 #99ffffff rev MENU COLOR PWDENTRY 0 #ff000000 #99ffffff rev MENU COLOR HOTKEY 0 #ff00ff00 #ee000000 std MENU COLOR HOTSEL 0 #ffffffff #85000000 std
pxelinux.cfg/utilitaires.cfg
# cat pxelinux.cfg/utilitaires.cfg
MENU TITLE Utilitaires MENU INCLUDE pxelinux.cfg/pxe.conf MENU BACKGROUND pxelinux.cfg/utilitaires.png LABEL MenuPrincipal MENU LABEL ^Retour au MENU Principal KERNEL vesaMENU.c32 APPEND pxelinux.cfg/default LABEL 0.0 MENU LABEL ^Super Grub Disk 2.02s9 KERNEL memdisk INITRD boot/utilitaires/iso/super_grub2_disk_hybrid_2.02s9.iso bigraw LABEL 0.1 MENU LABEL ^Gparted Live 0.28.1-1 amd64 KERNEL boot/utilitaires/live/gparted-live-0.28.1-1-amd64/live/vmlinuz APPEND initrd=boot/utilitaires/live/gparted-live-0.28.1-1-amd64/live/initrd.img vga=788 boot=live union=overlay username=user config components quiet noswap netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/gparted-live-0.28.1-1-amd64 LABEL 0.2 MENU LABEL System Rescue CD 5.0.2 ^32 KERNEL boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/rescue32 APPEND initrd=boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/initram.igz dodhcp netboot=nfs nfsboot=10.10.10.13:/srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2 LABEL 0.3 MENU LABEL System Rescue CD 5.0.2 ^64 KERNEL boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/rescue64 APPEND initrd=boot/utilitaires/live/systemrescuecd-x86-5.0.2/isolinux/initram.igz dodhcp netboot=nfs nfsboot=10.10.10.13:/srv/tftp/boot/utilitaires/live/systemrescuecd-x86-5.0.2 LABEL 0.4 MENU LABEL ^Ultimate Boot CD 5.3.7 LINUX memdisk INITRD boot/utilitaires/iso/ubcd537.iso APPEND iso LABEL 0.5 MENU LABEL Rescatu^x 0.30.2 linux memdisk initrd boot/utilitaires/iso/rescatux_cdrom_usb_hybrid_i386_amd64-486_0.30.2_sg2d.iso APPEND iso LABEL 0.6 MENU LABEL ^Trinity Rescue Kit 372 (default mode, with text MENU) KERNEL boot/utilitaires/live/trinity-rescue-kit.3.4-build-372/kernel.trk APPEND initrd=boot/utilitaires/live/trinity-rescue-kit.3.4-build-372/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 trknfs=10.10.10.13:/srv/tftp/boot/utilitaires/live/trinity-rescue-kit.3.4-build-372 ip=::::::dhcp splash=verbose pci=conf1 trkMENU timeout 100 LABEL 0.7 MENU LABEL ^Damn Small Linux 4.4.10 KERNEL boot/utilitaires/live/dsl-4.4.10-initrd/boot/isolinux/linux24 APPEND initrd=boot/utilitaires/live/dsl-4.4.10-initrd/boot/isolinux/minirt24.gz ramdisk_size=100000 init=/etc/init apm=power-off lang=fr vga=791 nomce BOOT_IMAGE=expert LABEL 0.8 MENU label ^Bodhi Linux 4.2.0 amd64 KERNEL boot/utilitaires/live/bodhi-4.2.0-64/casper/vmlinuz.efi APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/bodhi-4.2.0-64 initrd=boot/utilitaires/live/bodhi-4.2.0-64/casper/initrd.lz quiet splash panic=5 -- LABEL 0.9 MENU LABEL ^Clonezilla live (Parametres par default, VGA 800x600) KERNEL boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64/live/vmlinuz APPEND netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64 initrd=boot/utilitaires/live/clonezilla-live-2.5.0-25-amd64/live/initrd.img boot=live union=overlay username=user config components quiet noswap edd=on nomodeset noeject locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 ip= net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1 LABEL 0.10 MENU LABEL Red^o Backup LiveCD 1.0.4 KERNEL boot/utilitaires/live/redobackup-livecd-1.0.4/casper/vmlinuz APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/utilitaires/live/redobackup-livecd-1.0.4 initrd=boot/utilitaires/live/redobackup-livecd-1.0.4/casper/initrd.lz quiet splash panic=5 -- LABEL 0.11 MENU LABEL Slitaz 4.0 KERNEL memdisk APPEND iso bigraw initrd=iso/slitaz-4.0.iso
pxelinux.cfg/ubuntu.cfg
# cat pxelinux.cfg/ubuntu.cfg
MENU TITLE Ubuntu MENU include pxelinux.cfg/pxe.conf MENU background pxelinux.cfg/ubuntu.png LABEL MainMenu MENU LABEL ^Retour au MENU Principal KERNEL vesamenu.c32 APPEND pxelinux.cfg/default LABEL Ubuntu 17.04 LiveCD MENU Ubuntu 17.04 LiveCD (amd64) kernel boot/ubuntu/live/ubuntu_17.04_desktop/casper/vmlinuz.efi append root=/dev/nfs boot=casper netboot=nfs nfsroot=10.10.10.13:/srv/tftp/boot/ubuntu/live/ubuntu_17.04_desktop initrd=boot/ubuntu/live/ubuntu_17.04_desktop/casper/initrd.lz quiet splash panic=5 -- LABEL 2.1 MENU LABEL ^Xubuntu 16.04 LiveCD (amd64) KERNEL iso/xubuntu_16.04_desktop/casper/vmlinuz.efi APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.11.12.251:/srv/tftp/iso/xubuntu_16.04_desktop initrd=iso/xubuntu_16.04_desktop/casper/initrd.lz quiet splash panic=5 -- LABEL 2.2 MENU LABEL ^Lubuntu 17.04 desktop amd64 (amd64) KERNEL iso/lubuntu-17.04-desktop-amd64/casper/vmlinuz.efi APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=10.11.12.251:/srv/tftp/iso/lubuntu-17.04-desktop-amd64 initrd=iso/lubuntu-17.04-desktop-amd64/casper/initrd.lz quiet splash panic=5 --
pxelinux.cfg/inutilitaires.cfg
# cat pxelinux.cfg/inutilitaires.cfg
MENU TITLE Inutilitaires MENU INCLUDE pxelinux.cfg/pxe.conf MENU BACKGROUND pxelinux.cfg/inutilitaires.png LABEL MENUPrincipal MENU LABEL ^Retour au MENU Principal KERNEL vesaMENU.c32 APPEND pxelinux.cfg/default LABEL dosbootdisk MENU LABEL ^DOS v6.22 kernel memdisk append initrd=iso/Dos6.22.img LABEL winbootdisk MENU LABEL ^Windows 98 Bootdisk kernel memdisk append initrd=iso/Windows98.img LABEL freedos MENU LABEL ^FreeDOS v1.2 kernel memdisk append initrd=iso/FD12LITE.img LABEL hirensbootcd MENU LABEL ^Hirens Boot CD v15.2 TEXT HELP Hirens Boot CD avec de nombreuses options (y compris mini-Windows XP). ENDTEXT KERNEL memdisk APPEND iso raw initrd=iso/Hirens.BootCD.15.2.iso LABEL winpe MENU LABEL Windows PE KERNEL memdisk APPEND iso raw initrd=iso/WinPE.iso label Kon-Boot MENU LABEL ^Kon-Boot 2.4 Floppy Image menu passwd $6$X73Wfro2$oXCDdfxdBlKUw0jVOfgkZ6dJMUS3BvwPHFGdZby12CMAx7rR5VS9WPvjdZCXGw.Yqv5/dZElVsoeC7dCNc3rd1$ kernel memdisk append initrd=iso/kon-bootFLOPPY.img LABEL Comodo MENU LABEL Comodo Rescue Disk 2.0 KERNEL memdisk APPEND iso bigraw initrd=boot/inutilitaires/iso/comodo_rescue_disk_2.0.261647.1.iso
Mots cléf : Debian Stretch serveur PXE Netboot support EFI - Debian Live CD - Ubuntu Live CD - Super Grub Disk - Gparted Live - Rescatux - SystemRescueCD - Ultimate Boot CD - Trinity Rescue CD - DSL - Bodhi - Clonezilla - RedoBackup
Lol (discussion) 26 juin 2017 à 16:16 (CEST)