WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:pxe

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

wiki:services:pxe [2017/03/26 01:00]
manwefm
wiki:services:pxe [2020/06/27 18:16]
Ligne 1: Ligne 1:
-======= PXE ======= 
- 
-=== C'est quoi ? === 
-Le PXE (Pre-boot eXecution Environment) est un moyen faire booter un PC via une carte réseau au même titre que le boot via CD-ROM, clé USB ou Disque Dur. 
-Concrètement lors du boot d'un PC, le BIOS / l'UEFI va aller chercher sur le MBR / la partition EFI un bootloader (GRUB,SYSLINUX et LILO sont des bootloaders courant pour Linux, NTLDR pour Windows, ...)  sur le CD-ROM, la clé USB ou le Disque Dur. Lors d'un boot par PXE c'est le même principe, sauf que le bootloader (ici PXELinux, basé sur SYSLINUX) est récupéré depuis un serveur. 
- 
-=== Pourquoi ? === 
- 
-== Comparaison des débits théoriques == 
- 
-|CD-ROM x1 | 18,75 kbit/s| 
-|CD-ROM x4 | 75 kbit/s| 
-|CD-ROM x52 | 97.5 Mbit/s| 
-|**Ethernet 100M **| **100 Mbit/s**| 
-|USB 2.0 | 480 Mbit/s| 
-|**Ethernet 1000M** | **1 Gbit/s**| 
-|USB 3.0 | 5 Gbit/s| 
-|USB 3.1 | 10 Gbit/s| 
- 
-==Les avantages du boot par PXE == 
-  * On ne trouve pas de l'USB 3.0 sur tous les PC/Serveurs, l'Ethernet Gigabit est plus rependu que l'USB 3.0 
-  * Certains vieux PC/Serveurs ne veulent tout simplement pas booter sur de l'USB 
-  * Pas de clé USB à préparer (Évite l'utilisation de dd, les plus maladroits d'entre-nous seront contents) 
-  * Le PXE MiNET est déjà configuré avec les distributions souvent utilisées à MiNET (pas besoin de re-télécharger des isos) 
-  * Euh ? Graver des CD-ROM ? Qui fait encore ça ? 
-  * Il suffit de déraquer le serveur pour avoir toutes les distributions possibles pour l'isntall party (traditionnelement 1 par an) 
- 
-=== Configuration du serveur === 
- 
-== Hardware == 
- 
-Résumé: 
-|Chassis|Tyan Tank GT20| 
-|CPU| 4x Intel(R) Xeon(R) CPU 5110  @ 1.60GHz| 
-|RAM| 2Gb | 
-|Réseau| 3x Gigabit Ethernet| 
-|Stockage| 2x 160Gb Sata + 2x 500Gb Sata|  
- 
-{{ :wiki:services:tyantank.png |}} 
- 
-== Software == 
- 
-Résumé: 
-|OS|Debian Stable| 
-|Stockage| RAID 1 Système et RAID 1 Stockage| 
-|Services| DHCP, TFTP, HTTP, NFS, SMB| 
-|Réseau| eth0 dans le VLAN d'admin de prod (102), eth1 dans le VLAN dédié au PXE (999)| 
- 
-Le VLAN 999 ressemble à ça (clic to enlarge your p...icture): 
- 
-{{ :wiki:services:999.png |}} 
- 
-  * DHCP (isc-dhcp-server) 
-On utilise isc-dhcp server. Il fournit une IP entre 192.168.150.20 et 192.168.150.250. Ce qui laisse quelques ip pour mettre des serveurs en statiques. En plus de fournir une ip, les dns et la gateway, il fournit le bootloader en fonction de l'architecture. 
- 
-Le dhcp fournit également quelques  
-[[http://ipxe.org/howto/dhcpd| options supplémentaires nécessaires au fonctionnement du firmware iPXE.]] On les a mis un peu au feeling parce que c'est pas très bien documenté. 
- 
-[[https://tools.ietf.org/html/|Coucou la rfc]] 
-<code> 
-Type   Architecture Name 
-----   ----------------- 
-  0    Intel x86PC 
-  1    NEC/PC98 
-  2    EFI Itanium 
-  3    DEC Alpha 
-  4    Arc x86 
-  5    Intel Lean Client 
-  6    EFI IA32 
-  7    EFI BC 
-  8    EFI Xscale 
-  9    EFI x86-64 
-</code> 
-<code> 
-Dans /etc/dhcp/dhcpd.conf : 
- 
-  if option architecture-type = 00:00 { 
-        filename "bios/lpxelinux.0"; 
-  } 
- 
-  elsif option architecture-type = 00:09 { 
-        filename "efi64/syslinux.efi";                      } 
- 
-  elsif option architecture-type = 00:07 { 
-        filename "efi64/syslinux.efi"; 
-  } 
-  else { 
-        filename "bios/pxelinux.0"; 
-  } 
-</code> 
- 
-  * TFTP (tftpd-hpa) 
-Le bootloader est téléchargé en tftp, tout le reste se fait en http. 
-<code> 
-/etc/default/tftpd-hpa 
-</code> 
- 
-  * HTTP (lighttpd) 
-On utilise lighttpd parce que c'est léger. 
- 
-NFS (nfs-kernel-server) 
-On utilise un système de fichier NFS pour les live et debian-minet. 
-<code> 
-/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) 
-/srv/nfs/clonezilla 192.168.150.0/24(async,no_root_squash,no_subtree_check,ro) 
- 
-/srv/nfs/debian-minet 192.168.150.0/24(async,no_root_squash,no_subtree_check,rw) 
-</code> 
- 
-SAMBA (samba) 
-<code> 
-/etc/samba/smb.conf 
- 
-[global] 
-workgroup = PXESERVER 
-server string = Samba Server Version %v 
-log file = /var/log/samba/log.%m 
-max log size = 50 
-idmap config * : backend = tdb 
-cups options = raw 
-netbios name = pxe 
-map to guest = bad user 
-dns proxy = no 
-public = yes 
-## For multiple installations the same time - not lock kernel 
-kernel oplocks = no 
-nt acl support = no 
-security = user 
-guest account = nobody 
-[windows_install] 
-comment = Windows Image 
-path = /srv/samba/ 
-read only = no 
-browseable = yes 
-public = yes 
-printable = no 
-guest ok = yes 
-oplocks = no 
-level2 oplocks = no 
-locking = no 
- 
- 
-</code> 
- 
-=== Comment ca marche ? === 
- 
-<WRAP info round> 
-- Euh comment se connecter au réseau alors que le PC n'est pas encore démarré ? 
-- C'est la ROM PXE qui se trouve dans le BIOS/UEFI qui va lancer une requête DHCP 
-</WRAP> 
- 
-{{ :wiki:services:pxe.png |}} 
- 
-Chaque Firmware (BIOS, UEFI etc.) possede un ROM PXE 
-Quand la machine boot en PXE, la ROM PEXE fait une requete DHCP, recoit une IP, le netmask, les DNS(à configurer) et un fichier syslinus surlequel booter en TFTP. 
- 
-syslinux ? 
-The Syslinux Project covers lightweight bootloaders for MS-DOS FAT filesystems (SYSLINUX), network booting (PXELINUX), bootable "El Torito" CD-ROMs (ISOLINUX), and Linux ext2/ext3/ext4 or btrfs filesystems (EXTLINUX). The project also includes MEMDISK, a tool to boot legacy operating systems (such as DOS) from nontraditional media; it is usually used in conjunction with PXELINUX and ISOLINUX.  
- 
-Le bootloader utilisé ici est  lpxelinux.0 car il permet de booter par http contrairement à pxelinux.0 qui permet de booter seulement par tftp (qui est vieux, en UDP et lent). 
- 
-Le fichier pxelinux.cfg/default est alors chargé, le menu du PXE est affiché 
- 
-MENU.png 
- 
-Ce menu Permet alors de booter un noyau avec les options que l'on souhaite. Le noyau et le fichier initrd associé sont téléchargés via http et chargés en RAM, le PC boot alors dessus. 
- 
-[[:wiki:services:pxe:images | On continue ici avec la description des différentes facons de booter sur plusieurs OS ]] 
- 
-==== Télécharger directement les isos disponibles sur le pxe ==== 
-Dans le vlan 999 : [[http://192.168.150.3:81|http://192.168.150.3:81]] 
-Derrière le vpn : [[http://192.168.102.197:81|http://192.168.102.3:81]] 
-Si vous voulez rajouter des isos, copier dans le dossier /srv/iso 
  
wiki/services/pxe.txt · Dernière modification: 2020/06/27 18:16 (modification externe)