web-dev-qa-db-fra.com

Étapes d'installation du serveur d'initialisation PXE dans Ubuntu Server VM

Comment puis-je installer une machine virtuelle Ubuntu à l'aide du serveur de démarrage PXE?

J'ai besoin de tous les détails de configuration et de ce qu'il faut changer dans les fichiers de configuration.

15
Beginner

PXE (Environnement d'exécution préalable au démarrage, prononcé pixie)

Voir Wikipedia: PXE

Comment ça marche?

C'est ce que je comprends!

PXE_Diagram_en.png

  1. La machine cliente est allumée. Le BIOS analyse les périphériques. Ensuite, essayez de charger le chargeur de démarrage à partir du périphérique requis, comme indiqué dans Ordre de démarrage/Séquence . Il charge PXE à partir de la carte réseau ROM.
  2. PXE (côté client) diffuse une demande d'adresse IP. Réponse du serveur DHCP avec les informations requises: IP, IP du serveur suivant (IP du serveur TFTP), pxelinux.0 (PXE bootstrap nom du fichier du chargeur), ... etc.

    PXE_Boot_1.png

  3. PXE (côté client) demande le fichier pxelinux.0 au serveur TFTP, le charge dans RAM puis passe le contrôle à pxelinux.0.

    pxelinux.0 obtient le fichier de configuration de démarrage du serveur TFTP portant le nom suivant:
    (s'il n'existe pas c'est essayer avec le suivant)

    • UUID
    • MAC
    • IP dans Capital Hex
    • Une partie de l'IP
    • Dépose dans le fichier defaultname__

    PXE_Boot_2.png

  4. Choix de l'utilisateur ou entrée de menu par défaut. pxelinux.0 demande le noyau et RAMDisk correspondants au serveur TFTP et les charge dans la RAM.

    Puis passe les paramètres de démarrage et le contrôle au noyau chargé.

    PXE_Linux.png

  5. Le noyau charge les parties restantes du serveur TFTP ou de tout autre serveur de protocole en fonction de ses caractéristiques/propriétés.

    Parted_Magic_1.pngParted_Magic_2.png

Configuration du serveur

Il y a plusieurs façons de configurer le serveur PXE, voici l'une d'entre elles.

Ces instructions ont été testées sur Ubuntu 9.10 & Ubuntu 10.04 sur une machine réelle. . Ils devraient être encore valables avec seulement quelques modifications. (Mis à jour et testé pour Ubuntu 14.04 sur VirtualBox, vérifiez les éditions de révision pour les anciennes versions)

Ma cible était PartedMagic 4.5 , elle devrait être similaire à Ubuntu ou à toute distribution Linux.

  1. Installer les paquets DHCP et TFTP

        Sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
    
  2. Configuration DHCP

    • Edit /etc/default/isc-dhcp-server, interface Ethernet pour le service DHCP

      INTERFACES="eth0"
      
    • Editez /etc/dhcp/dhcpd.conf‬ ou /etc/ltsp/dhcpd.conf il existe, configuration du service DHCP

      Configurations spécifiques à PXE: filename& next-server

      default-lease-time 600;
      max-lease-time 7200;
      subnet 192.168.10.0 netmask 255.255.255.0 {
          range 192.168.10.50 192.168.10.100;
          option subnet-mask 255.255.255.0;
          option routers 192.168.10.123;
          option broadcast-address 192.168.10.255;
          filename "pxelinux.0";
          next-server 192.168.10.123;
      }
      
    • Configurez une adresse IP statique pour eth0, 192.168.10.123 dans mon cas, à l'aide de Network Manager pour Desktop Edition ou de /etc/network/interfaces pour Server Edition.

      auto eth0
      iface eth0 inet static
      address 192.168.10.123
      netmask 255.255.255.0
      network 192.168.10.0
      broadcast 192.168.10.255
      

      Réinitialiser l'interface réseau:

      Sudo ifdown eth0
      Sudo ifup eth0
      
    • Service de redémarrage

      Sudo service isc-dhcp-server restart
      

      Vérifier le statut

      netstat -lu
      

      Sortie

      Proto Recv-Q Send-Q Local Address           Foreign Address         State      
      udp        0      0 *:bootpc                *:*                                
      
  3. Configuration TFTP

    • Editez ‪/etc/inetd.conf, supprimez #<off># au début de la ligne tftpou ajoutez-le s’il n’y en a pas sous #:BOOT: comment. (Passer ceci avec systemd, 15.10 et plus tard)

      tftp    dgram   udp wait    root    /usr/sbin/in.tftpd  /usr/sbin/in.tftpd -s /var/lib/tftpboot
      
    • Activer le service de démarrage pour inetdname__

      Sudo update-inetd --enable BOOT
      
    • Service de démarrage

      Sudo service openbsd-inetd restart
      Sudo service tftpd-hpa restart
      

      Vérifier le statut

      netstat -lu
      

      Sortie

      Proto Recv-Q Send-Q Local Address           Foreign Address         State 
      udp        0      0 *:tftp                  *:*                          
      
  4. Configuration des fichiers de démarrage PXE

    • Décompressez pmagic-pxe-4.5.Zip. Si pxelinux.0 n'y est pas, procurez-vous-le à partir du paquet sysliux-common installé à /usr/lib/syslinux/pxelinux.0, Projet Syslinux ou buntu Netboot Image .

      Mettez-les dans une structure similaire.

      /var/lib/tftpboot/
       |-- pxelinux.0
       |-- pxelinux.cfg/
       |   `-- default
       `-- pmagic/
           |-- bzimage
           `-- initramfs
      
    • Editez /var/lib/tftpboot/pxelinux.cfg/default, si nécessaire, par exemple, chemins: pmagic/bzimage & pmagic/initramfs

      DEFAULT partmagic 
      
      LABEL partmagic 
          MENU LABEL PartMagic 4.5 
          KERNEL pmagic/bzimage 
          APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 Prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
      
    • Configurer les autorisations correctes

      Sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
      Sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
      

Configuration du client

Changer l'ordre de démarrage du BIOS pour une fois en utilisant F9 ou F12, pour une configuration permanente à partir de la configuration du BIOS DEL,F2 ou F12. (Selon la marque de la machine)

Déplacer vers le haut: [PXE | NIC | LAN | Ethernet | Network].

Remarques

  • inetutils-inetd ou xinetdpeut être utilisé à la place de openbsd-inetd, certaines étapes inetdsont différentes.

  • Le répertoire racine TFTP peut être changé de /etc/default/tftpd-hpa. N'oubliez pas de mettre à jour ‪/etc/inetd.conf également.

  • De nombreuses distributions prennent en charge le chargement de RAMDisk via de nombreux protocoles: SSH (SFTP), SMB, NFS ... Exemple: Ubuntu prend en charge NFS.

  • Certaines anciennes cartes réseau ne supportent pas PXE, iPXE ( ex. GPXE ou Etherboot ) peut être utilisé, que ce soit sur disquette, lecteur USB, disque dur (partition /boot) ou même le flasher sur ROM (seulement quelques NIC pris en charge). GRUB2 a un module pour prendre en charge l’amorçage à l’aide de PXE.

    Voir aussi Wikipedia: gPXE et ROM-O-matic .

  • Ubuntu Netboot Image from cdimage.ubuntu.com/netboot/ permet d’installer Ubuntu à partir du réseau. Il vous sera demandé de télécharger tous les packages requis à partir du miroir officiel ou local, si vous en avez un.

    La plupart des utilisateurs recherchent un démarrage d’image en direct via PXE. Cette question visait uniquement à configurer un serveur PXE. Voir buntu Wiki: Installation - LocalNet

    Ubuntu NetBoot - Official archive mirrorUbuntu NetBoot - Custom/Local archive mirror

  • Le menu PXE peut être personnalisé. Le meilleur modèle à apprendre est buntu NetBoot . Voir image multiple de Pxeboot

    PXE_Linux_Menu.png

  • memdiskpeut être utilisé pour charger directement les images ISO ou les disquettes via PXE. syslinux-common package a une copie. Le client doit disposer de suffisamment de RAM pour contenir l'image plus une partie permettant d'exécuter le système d'exploitation chargé.

    Exemple de configuration:

    /var/lib/tftpboot/
    |-- FDSTD.144
    |-- memdisk
    |-- pxelinux.0
    |-- slitaz-cooking.iso
    |-- pxelinux.cfg
    |   `-- default
    `-- pmagic/
        |-- bzimage
        `-- initramfs
    

    /pxelinux.cfg/default

    DEFAULT partmagic
    
    LABEL partmagic
        MENU LABEL PartMagic 4.5
        KERNEL pmagic/bzimage
        APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 Prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
    
    LABEL slitaz
        MENU LABEL ^Slitaz.iso
        TEXT HELP
    Testing boot from iso.
        ENDTEXT 
        KERNEL memdisk
        APPEND initrd=slitaz-cooking.iso
    
    LABEL freedos_std
        MENU LABEL ^FreeDOS STD
        TEXT HELP
    Testing boot from Floppy IMG.
        ENDTEXT 
        KERNEL memdisk
        APPEND initrd=FDSTD.144
    
  • Les paquets PartedMagic ont été supprimés du site officiel après que le développeur original eut décidé de le commercialiser. Certaines versions pourraient être trouvées via le réseau torrent. Ma réponse ici est un résumé de la première configuration PXE qui a fonctionné pour moi. buntu Netboot Image devrait fonctionner avec les mêmes instructions.

30
user.dz