WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:pxe:images

Boot

Le PXE fait le café, il permet de booter sur tout ça :

On parle ici du boot menu en BIOS avec syslinux, pour l'UEFI, c'est par ici

NetBoot

C'est le boot le plus simple. La machine télécharge le noyau et l'initrd et debian se débrouille.

/srv/tftp/{bios,efi64}/pxelinux.cfg/default
LABEL debian_8_64_net
  MENU LABEL Debian 8 amd64 NetInstall
  KERNEL http://192.168.150.3/debian/debian_netinstall_64/linux
  APPEND initrd=http://192.168.150.3/debian/debian_netinstall_64/initrd.gz

Pour ajouter une distribition en netinstall :

mount -o loop /path/to/iso/distr.iso /tmp/mount
cp /path/to/noyau /path/to/initrd.gz /srv/http/le/bon/dossier

Le noyau s'appelle en général linux, vmlinuz, vmlinuz.efi. Et le initrd, initrd.lz ou initrd.gz Compléter ensuite le fichier /srv/tftp/bios/pxelinux.cfg/default en reprenant la syntaxe d'une netintall déjà existante.

debian netboot suddenly cant do ext4

Ce problème est survenu en Janvier 2017, de nombreux serveurs ont été installé via netboot mais du jour au lendemain il était impossible de créer une partition ext4. Si ca se reproduit, il suffit d'upgrade le netboot.

wget http://ftp.fr.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar xvzf netboot.tar.gz
cp ./debian-installer/amd64/{initrd.gz,linux} /srv/http/debian/debian_netinstall_64/

Module Syslinux

Syslinux propose de nombreux modules, nous utilisons reboot.c32 (permet de reboot) poweroff.c32 (permet d'éteindre) chain.c32 (permet de démarrer sur un disque dur entre autre) hdt.c32 (permet de démarrer HDT) avec libmenu.c32 et libgpl.c32

Tout les modules sont disponibles dans /root/syslinux-6.03

HDT (Hardware Detection Tool) is a Syslinux com32 module designed to display low-level information for any x86 compatible system :

  • CPU (via cpuid)
  • PCI
  • DMI
    • Memory modules
    • BIOS
    • Motherboard
    • Batteries
    • CPU
  • Disks (work in progress)

etc.

Plus d'info : http://www.syslinux.org/wiki/index.php?title=Hdt_(Hardware_Detection_Tool)

Les fichiers /lib/modules/3.16.0-4-amd64/modules.alias et memtest.bin sont tout deux présents dans /srv/tftp pour faciliter la détection des cartes PCI et ajouter memtest.

Memdisk

Memdisk est un noyau linux et un module syslinux, il permet de charger en ram le fichier qui lui est donné en initrd pour ensuite booter dessus. Ce qui permet de booter n'importe quoi mais… l'iso sera chargé 2 fois en RAM. C'est donc parfait pour les petits outils mais coûteux pour des lives comme ubuntu (1,4Go). Memdisk est utilisé sur le PXE pour booter entre autre WinPE dont on parle plus bas.

On donne en noyau memdisk, et en initrd l'image sur laquelle on veut booter.

LABEL winpe_64
  MENU LABEL Windows PE 5 (8.1) 64
  KERNEL http://192.168.150.3/misc/tools/memdisk_kernel/memdisk
  INITRD http://192.168.150.3/win_pe/win_pe_64.iso
  APPEND iso

Live

Le but d'un live linux et de booter sur une machine à partir d'un CD, d'une clé USB, ou du réseau pour essayer un OS sans modifier votre disque dur. Tout le système est chargé en RAM, tout le live system et les logiciels sont alors utilisables mais chargés en RAM. Il est alors possible d'installer tout un système sans connection internet, de récupérer des fichiers etc. Il suffit de rebooter pour faire comme si rien ne s'était passé.

Ici, pour booter des lives, on utilise un serveur NFS(Network File System).

Le serveur NFS est un serveur de partage de fichiers sans protection qui permettra à une distribution d'accéder à sa racine (squashfs) sur le serveur nfs au lieu de d'y accéder sur une clé ou un CD.

LABEL ubuntu_gnome_1604_64_live
  MENU LABEL Ubuntu Gnome 16.04 amd64 Live
  KERNEL http://192.168.150.3/ubuntu/live/64/ubuntu_gnome_live_64/vmlinuz.efi
  APPEND boot=casper root=/dev/nfs netboot=nfs nfsroot=192.168.150.3:/srv/nfs/ubuntu_gnome_live_64 debian-installer/language=fr console-setup/layoutcode=fr console-setup/variantcode=oss initrd=http://192.168.150.3/ubuntu/live/64/ubuntu_gnome_live_64/initrd.lz

Pour Ubuntu, casper est le nom du répertoire contenant la partie en read-only du système de fichiers. La valeur de boot=xxx est essentielle: le paramètre xxx sert à définir la variable globale BOOT. Il y a trois valeurs usuelles local, nfs et casper, cette dernière valeur étant celle du LiveCD, le déclenchement du mode LiveCD se fait donc par le paramètre boot=casper donné au noyau Linux par le boot loader. https://craftedflash.com/info/live-distro-boot-parameters

Plus d'infos sur le démarrage d'un live : https://fr.wikipedia.org/wiki/Ubuntu_casper

/etc/exportfs

/srv/nfs/ubuntu_unity_live_64 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro)
/srv/nfs/ubuntu_gnome_live_64 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro)
/srv/nfs/arch_live 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro)
/srv/nfs/ubuntu_lxde_live_64 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro)
/srv/nfs/ubuntu_xfce_live_64 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro)

Si vous souhaitez monter un autre dossier en nfs, après avoir ajouté une ligne à ce fichier, faites :

exportfs -rav

Les lives Debian ne sont pas officiels donc aucun n'est installé sur le PXE.

Diskless booting

Votre boot sur debian-minet comme si il boutait sur votre disque dur, sauf que le disque dur est à distance, sur le PXE, et vous y accéder par le réseau, on utilise encore le serveur nfs du pxe pour celà.

Pour la debian minet persistante :

mkdir /tmp/jessie
debootstrap jessie /tmp/jessie
cp -av /tmp/jessie /srv/nfs/debian-minet

Avec la ligne dans /etc/exports en read-write

/srv/nfs/debian-minet 192.168.150.0/24(async,no_root_squash,no_subtree_check,rw)
#en read-write cette fois-ci

et toujours dans le fichier pxelinux.cfg/default (on utilise bien le noyau et l'initrd ubuntu_live)

  LABEL debian-minet
  MENU LABEL Debian8 Persistant MiNET
  KERNEL http://192.168.150.3/ubuntu/live/64/ubuntu_live_64/vmlinuz.efi
  APPEND initrd=http://192.168.150.3/ubuntu/live/64/ubuntu_live_64/initrd.gz netboot=nfs root=/dev/nfs nfsroot=192.168.150.3:/srv/nfs/debian-minet debian-installer/language=fr console-setup/layoutcode=fr console-setup/variantcode=oss ramdisk_size=14332 rw

Si vous souhaitez y chroot, n'oubliez pas d'y monter le proc et le sys du pxe :

sudo mount -t proc proc /srv/nfs/debian-minet/proc
sudo mount -t sys sys /srv/nfs/debian-minet/sys

misc

Tous en 32 bits

  • HDT (Hardware Detection Tool
  • Memtest (memory test)
  • Clonezilla
  • SystemRescueCD

windows

Pour proposer l'installation de windows, nous utilisons en plus d'http et tftp, un partage samba et WinPe. Comme il y a beaucoup de choses à setup, on en fait une page dédiée une page dédiée !

wiki/services/pxe/images.txt · Dernière modification: 2020/06/27 18:16 (modification externe)