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.
Voir Wikipedia: PXE
C'est ce que je comprends!
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 (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)
default
name__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é.
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.
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.
Installer les paquets DHCP et TFTP
Sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
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 *:*
Configuration TFTP
Editez /etc/inetd.conf
, supprimez #<off>#
au début de la ligne tftp
ou 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 inetd
name__
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 *:*
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 {} \;
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]
.
inetutils-inetd
ou xinetd
peut être utilisé à la place de openbsd-inetd
, certaines étapes inetd
sont 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
Le menu PXE peut être personnalisé. Le meilleur modèle à apprendre est buntu NetBoot . Voir image multiple de Pxeboot
memdisk
peut ê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.