SliTaz GNU/Linux official and community documentation wiki.
.png
Translations of this page:

PXE

Le PXE, prononcé 'pixie' (ou Preboot eXecution Environment) est le processus de démarrage d'un ordinateur à partir d'une connexion réseau. Il est comparable au démarrage d'un LiveCD à partir d'un lecteur de CD à distance.

Cette méthode de boot par le réseau a besoin de :

  • un serveur pour stocker les fichiers avec DHCP et TFTP (ils peuvent être sur un serveur différent)
  • un client avec un PXE bootloader.

Configuration du serveur PXE

Un serveur PXE comprend :

  • un serveur DHCP pour accepter des clients ;
  • les fichiers de boot DHCP pour les configurer ;
  • un serveur TFTP pour fournir un OS.

Essai rapide avec le Live CD

Le LiveCD SliTaz peut être utilisé comme un serveur PXE. Pour démarrer le processus, lancez netbox (menu System/netbox)

  • dans l'onglet Static IP cliquez sur Start.
    • Cette boîte sera le serveur DHCP. Il ne peut pas utiliser DHCP pour obtenir la configuration IP.

Depuis SliTaz 3.0, l'application Netbox est maintenant divisée en Netbox et Serverbox. Si vous utilisez une version récente SliTaz, veuillez svp lire application Serverbox au lieu de onglet Server ci-dessous

  • dans l'onglet Server, sélectionnez le sous-onglet INETD et vérifiez que la ligne tftpd n'est pas commentée dans /etc/initd.conf. C'est le comportement par défaut. Cliquez sur Start.
    • ce qui lancera le serveur TFTP, lequel diffusera le LiveCD SliTaz à travers tout le réseau.
  • dans l'onglet Server, sélectionnez le sous-onglet PXE
  • éditez la configuration et ajoutez vos options de boot.
    • Cette action mettra à jour automatiquement la configuration du serveur DHCP.
  • dans l'onglet Server, sélectionnez le sous-onglet DHCP. Vérifiez que la configuration correspond à votre réseau. Les actions antérieures ont ajouté les lignes boot_file et siaddr. Cliquez alors sur Start.
    • ce qui lancera le serveur DHCP. Si les clients ne reçoivent pas une adresse IP, vérifiez cette configuration.
  • vérifiez que les fichiers bzImage et rootfs.gz sont présents dans le répertoire /boot du LiveCD.

Affiner votre serveur PXE

  • Vous pouvez avoir des configurations PXE multiples pour differents groupes de clients, voir PXElinux wiki.
  • Vous pouvez mettre /home sur le disque local des clients (comme le fait tazusb), exemple ajoutez dans /etc/fstab
    /dev/hda1    /home   ext3    defaults   0  0
  • Depuis SliTaz 3.0, vous pouvez avoir une installation hydride sur (certains) clients. Ceux-ci ont installé SliTaz avec quelques paquets énormes comme libreoffice. Ils démarrent en PXE, le système tourne en RAM à part ces logiciels, lancés depuis leur disque dur (qui peut être un disque réseau). Exemple, en ajoutant dans /etc/init.d/local.sh :
    mount -t nfs -o ro bootserver:/slitaz  /media/slitaz
    tazpkg link libre-office /media/slitaz
  • Depuis SliTaz 3.0, vous pouvez empiler les initramfs dans le fichier de configuration de pxelinux. Cela permet de mettre à jour facilement SliTaz en gardant vos modifications, exemple :
    label slitaz
      kernel /boot/bzImage
      append initrd=/boot/rootfs.gz,/boot/configs/extra-packages.gz,/boot/configs/special-configuration.gz rw root=/dev/null vga=normal autologin
  • Exemple de configuration d'un serveur PXE : le serveur SliTaz web boot http://mirror.slitaz.org/pxe/ (débute avec pxelinux.cfg/default)


Test du serveur PXE avec QEMU

  • Installation de qemu
    tazpkg get-install qemu
  • Lancement de la VM
    qemu -boot n -bootp /pxelinux.0 -tftp /boot


PXE client bootloader

La plupart des machines récentes avec Ethernet embarqué ont un BIOS compatible avec PXE. Recherchez cette fonctionnalité dans les menus du BIOS et le menu de démarrage du BIOS et assurez-vous qu'elle est activée. Elle peut exiger que vous appuyez sur une touche, comme F12, pendant le processus de démarrage.

Si votre ordinateur ne prend pas en charge le démarrage PXE, vous pouvez utiliser SliTaz comme client à la place. Créez un CDROM ou une disquette de démarrage avec le Boot Floppy/CDROM un outil qui se trouve dans le menu Outils système.

Dans l'onglet PXE Network cliquez sur Write Floppy. Ensuite, redémarrez avec.

Votre carte Ethernet n'est pas reconnue ? Voir ROM-O-Matic


Démarrage PXE à partir du WEB

Le LiveCD SliTaz est configuré pour démarrer votre ordinateur via Internet. Cela sert à utiliser une version plus récente de SliTaz sur un média plus ancien.

Vous pouvez lancer le processus automatique avec la commande suivante dans l'écran de démarrage du LiveCD SliTaz :

web

C'est tout!

Vous trouverez plus d'informations sur l'utilisation d'une connexion Internet pour démarrer votre ordinateur sur SliTaz Web Boot - Démarrage via le réseau

Vous avez besoin d'un serveur DHCP pour se faire attribuer une adresse IP, le masque réseau, et l'adresse de la passerelle comme pour une connexion normale. Un routeur résidentiel standard (une 'box') devrait suffire. (plus d'informations sur la doc).


Démarrage PXE boot sans serveur DHCP : ligne de commande démarrage web

Si vous n'avez aucun matériel qui puisse faire fonction de serveur DHCP, vous avez besoin d'une adresse IP avec un masque réseau, une adresse de passerelle et éventuellement une adresse de serveur DNS (plus d'informations sur la doc).

Exemple d'utilisation avec GRUB :

title Slitaz Web
  kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Vous pouvez personnaliser l'URL :

title Slitaz Web
  kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=ip=192.168.0.12/24 gw=192.168.0.1
  dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0

Noter que les seuls mots-clés reconnus sont :

  • ip=
  • gw=
  • dns=
  • url=
  • nodhcp (utile pour éviter une erreur de tempo dhcp)


Configuration avancée du démarrage Web

Le processus de démarrage Web peut être intégré dans des routeurs et autres matériels, et adapté aux besoins du client.


Démarrage WEB avec un boot PROM intégré (transitaire PXE)

Configurer un serveur PXE avec http://download.tuxfamily.org/slitaz/boot/gpxe.pxe, chargeur de deuxième étape de 42Ko, comme fichier de boot. Testé avec succès avec un routeur OpenWRT :

  • Installez http://mirror.slitaz.org/boot/mips/tftpd (version MIPS) dans /jffs/usr/sbin
  • Installez gpxe.exe dans /jffs/boot
  • Ajoutez l'option de fichier de boot DHCP dans le fichier de configuration dnsmasq
 # echo "dhcp-boot=gpxe.pxe" >> /tmp/dnsmasq.conf 

lancez le serveur TFTP pour votre réseau local (par exemple 192.168.0.1/24)

 # /jffs/usr/sbin/tftpd 192.168.0.1 /jffs/boot 

Vous pouvez éviter l'installation du serveur tftp en utilisant directement le serveur tftp de SliTaz :

 # echo "dhcp-boot=gpxe.pxe,mirror.slitaz.org" >> /tmp/dnsmasq.conf 


Modifier l'URL de démarrage de gPXE WEB boot

L'URL est stocké à l'offset 519 en 255 octets maximum.

  • Voir l'URL courante :
 $ dd bs=1 skip=519 count=255 if=gpxe 2> /dev/null | strings 
  • Modifier l'URL :
$ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe
  • Modifier l'URL et l'IP stuff :
$ echo -n "ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 url=http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe
  • Supprimer l'URL (il se comportera alors comme un gPXE classique).
$ dd if=/dev/zero conv=notrunc bs=1 seek=519 count=255 of=gpxe


Modifier l'URL par défaut du WEB boot gpxe.pxe

L'URL est stocké à l'offset 5 en 255 octets maximum.

Voir l'URL courante :

$ dd bs=1 skip=5 count=255 if=gpxe.pxe 2> /dev/null | strings

Modifier l'URL :

$ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe

Supprimer l'URL (il se comportera alors comme un gpxe.pxe classique).

$ dd if=/dev/zero conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe


Démarrage sur des serveurs Web en redondance

Les listes d'URL, séparées par des virgules, sont supportées.

Le client PXE essaiera de charger la première URL. Si le chargement échoue, il va essayer l'URL suivante, et ainsi de suite.

Exemple avec les serveurs actuels de SliTaz boot Web :

$ echo -n "http://mirror.slitaz.org/pxe/pxelinux.0,http://mirror.switch.ch/ftp/mirror/pxe/pxelinux.0,http://download.tuxfamily.org/slitaz/pxe/pxelinux.0" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe


Pourquoi utiliser PXE ? L'exemple VNC

Disons que votre entreprise travaille avec des données très sensibles. Vous ne voulez pas que les gens copient quoi que ce soit sur des medias amovibles comme des clés USB. Seuls quelques utilisateurs peuvent utiliser ces données.

  • PXELINUX choisit la configuration idoine selon l'adresse MAC dans pxelinux.cfg/<client-mac-address>
  • Il contrôle le mot passe md5 (ou sha256) dans le menu de démarrage avec menu.c32
  • Il retourne un noyau et un initramfs contenant un paquet fbvnc généré par http://tiny.slitaz.org/ (de taille totale < à 1.44Mo)
  • Le client PXE démarre en 1 à 5 secondes avec un framebuffer client VNC
  • Le serveur VNC peut envoyer l'affichage de n'importe quel OS
  • Le client n'a aucun pilote de média et peut tourner sur du matériel agé de 25 ans (élimine le risque de vol)
  • L'OS peut tourner dans une VM / un conteneur : plus évolutif et facile à maintenir que plusieurs machines
  • Aucune donnée n'est stockée sur la machine client. Elle peut ne pas avoir de disque. Seule une carte Ethernet est nécessaire.
  • Bien sûr, les sessions de l'OS cible ont un timeout de connexion en plus d'un compte utilisateur avec mot de passe…


Augmentons un peu la sécurité

VNC écoute le réseau sans mot de passe (fbvnc ne supporte pas l'authentification) et le trafic VNC n'est pas chiffré sur le réseau.

  • Créer un initramfs avec le paquet fbvnc-ssh depuis http://tiny.slitaz.org/
  • Sur le serveur, VNC doit n'écouter que localhost
  • La clé publique du client est installée dans $HOME/.ssh/authorized_keys sur le serveur
  • Le traffic peut être compressé dans le tunnel SSH


Une petite démo

Le menu Tiny SliTazTiny VNC de SliTaz Web Boot lance le client VNC sans ssh (il vous faut un serveur VNC actif sur votre réseau…).

Vous pouvez charger directement le noyau et l'initramfs puis les tester avec votre réseau ou avec qemu.

Essayez d'abord avec l'argument vga=ask. Cela permet de trouver le meilleur mode VESA à utiliser (exemple vga=0x33B)



Section Révision de la page
Qualité Bonne
Revue
Priorité
Problèmes
Comment améliorer



 
fr/guides/pxe.txt · Last modified: 2021/02/04 16:18 by bellard