==== Boot ==== Le PXE fait le café, il permet de booter sur tout ça : {{:wiki:services:pxe:arbo_pxe.png?200|}} On parle ici du boot menu en BIOS avec syslinux, pour l'UEFI, [[:wiki:services:pxe:ipxe | 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 [[:wiki:services:pxe:windows | une page dédiée ! ]]