Jak zainstalować maszynę wirtualną Ubuntu za pomocą serwera rozruchowego PXE?
Potrzebuję wszystkich szczegółów konfiguracji i tego, co zmienić w plikach konfiguracji.
źródło
Jak zainstalować maszynę wirtualną Ubuntu za pomocą serwera rozruchowego PXE?
Potrzebuję wszystkich szczegółów konfiguracji i tego, co zmienić w plikach konfiguracji.
Zobacz Wikipedia: PXE
To jest moje zrozumienie!
PXE (po stronie klienta) rozgłasza żądanie adresu IP. Odpowiedź serwera DHCP z wymaganymi informacjami: IP, IP następnego serwera (IP serwera TFTP), pxelinux.0
(nazwa pliku modułu ładującego PXE), ... itd.
PXE (po stronie klienta) żąda pxelinux.0
pliku z serwera TFTP, ładuje go do pamięci RAM, a następnie przekazuje kontrolę pxelinux.0
.
pxelinux.0
pobiera plik konfiguracyjny rozruchu z serwera TFTP o nazwie jako:
(jeśli nie istnieje, próbuje z następnym)
default
plikuWybór użytkownika lub domyślna pozycja menu. pxelinux.0
żąda odpowiedniego jądra i pamięci RAM od serwera TFTP i ładuje je do pamięci RAM.
Następnie przekazuje parametry rozruchowe i kontrolę do załadowanego jądra.
Jądro ładuje pozostałe części z serwera TFTP lub dowolnego innego serwera protokołu, w zależności od jego funkcji / właściwości.
Istnieje wiele sposobów konfiguracji serwera PXE, jest to jeden z nich.
Te instrukcje zostały przetestowane na Ubuntu 9.10 i Ubuntu 10.04 na prawdziwej maszynie. Powinny one nadal obowiązywać, z niewielkimi zmianami. (Zaktualizowano i przetestowano dla Ubuntu 14.04 na VirtualBox, sprawdź wersje edycji dla starych wydań)
Moim celem była PartedMagic 4.5 , powinna być podobna do Ubuntu lub dowolnej dystrybucji Linuksa.
Zainstaluj pakiety DHCP i TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Konfiguracja DHCP
Edycja /etc/default/isc-dhcp-server
, interfejs Ethernet dla usługi DHCP
INTERFACES="eth0"
Edytuj /etc/dhcp/dhcpd.conf
lub /etc/ltsp/dhcpd.conf
istnieje, konfiguracja usługi DHCP
Konfiguracje specyficzne dla PXE: filename
inext-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;
}
Skonfiguruj statyczny adres IP eth0
, 192.168.10.123
w moim przypadku za pomocą menedżera sieci w wersji Desktop lub /etc/network/interfaces
Server.
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
Uruchom ponownie interfejs sieciowy:
sudo ifdown eth0
sudo ifup eth0
Uruchom ponownie usługę
sudo service isc-dhcp-server restart
Sprawdź status
netstat -lu
Wynik
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Konfiguracja TFTP
Edytuj /etc/inetd.conf
, usuń #<off>#
z początku tftp
wiersza lub dodaj, jeśli nie ma go pod #:BOOT:
komentarzem. (Pomiń to przy pomocy systemd, 15.10 i późniejszych)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Włącz usługę rozruchu dla inetd
sudo update-inetd --enable BOOT
Uruchomić usługę
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Sprawdź status
netstat -lu
Wynik
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Konfiguracja plików rozruchowych PXE
Rozpakuj pmagic-pxe-4.5.zip
. Jeśli pxelinux.0
nie ma, to się z sysliux-common
pakietu zainstalowanego w /usr/lib/syslinux/pxelinux.0
, Syslinux Projektu lub Ubuntu Netboot obrazu .
Umieść je w podobnej strukturze.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
W /var/lib/tftpboot/pxelinux.cfg/default
razie potrzeby edytuj przykładowe ścieżki: 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
Skonfiguruj prawidłowe uprawnienia
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Zmień kolejność rozruchu systemu BIOS raz, używając F9lub F12, do stałej konfiguracji z konfiguracji BIOS DEL, F2lub F12. (W zależności od marki maszyny)
Przenieś do góry: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
lub xinetd
mogą być użyte zamiast openbsd-inetd
, niektóre inetd
kroki są różne.
Katalog główny TFTP można zmienić z /etc/default/tftpd-hpa
. Pamiętaj też o aktualizacji /etc/inetd.conf
.
Obsługa wielu dystrybucji ładuje RAMDisk przez wiele protokołów: SSH (SFTP), SMB, NFS ... Przykład Ubuntu obsługuje NFS.
Niektóre stare karty sieciowe nie obsługują PXE, iPXE ( np. GPXE lub Etherboot ) może być używany na dyskietce, dysku USB, dysku twardym ( /boot
partycji), a nawet flashować go na ROM (tylko kilka obsługiwanych kart sieciowych ). GRUB2 ma moduł do obsługi uruchamiania za pomocą PXE.
Zobacz także Wikipedia: gPXE i ROM-O-matic .
Ubuntu Netboot Obraz z cdimage.ubuntu.com/netboot/ zapewnia instalację Ubuntu z sieci i poprosi o pobranie wszystkich wymaganych pakietów z oficjalnego serwera lustrzanego lub lokalnego, jeśli taki masz.
Większość użytkowników szuka rozruchu obrazu na żywo za pośrednictwem PXE. To pytanie dotyczyło tylko konfiguracji serwera PXE. Zobacz Wiki Ubuntu: Instalacja - LocalNet
Menu PXE można dostosować, najlepszym szablonem do nauki jest Ubuntu NetBoot . Zobacz Pxeboot Multiple image
memdisk
można użyć do bezpośredniego załadowania obrazów ISO lub dyskietek przez PXE. syslinux-common
paczka ma kopię. Klient powinien mieć wystarczającą ilość pamięci RAM, aby pomieścić obraz oraz część do uruchomienia załadowanego systemu operacyjnego.
Przykład konfiguracji:
/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
Pakiety PartedMagic zostały usunięte z oficjalnej strony po tym, jak pierwotny deweloper zdecydował się na komercję, niektóre wydania można było znaleźć za pośrednictwem sieci torrent. Moja odpowiedź tutaj to podsumowanie pierwszej konfiguracji PXE, która działała dla mnie. Obraz Ubuntu Netboot powinien działać z tymi samymi instrukcjami.
netstat -lu | grep tftp
pokazuje to w trybie słuchania. Folder / tftpboot to 777, jednak jeśli spróbuję totftp> get pxelinux.0
zrobić od klienta, zawsze otrzymuję błąd tftp: pxelinux.0: błąd odmowy uprawnień . Czy masz pomysł na debugowanie? Z góry dziękuję./var/lib/tftpboot/
z 755 (domyślnie) powinno być w porządku. Sprawdź, czypxelinux.0
masz 644 lub uruchom,sudo chmod -R +r /var/lib/tftpboot/
aby cała jego zawartość była czytelna.filename "pxelinux.0";
... bez komentarza; P ... dziękuję za odpowiedź i za tę świetną (i kompletną) odpowiedź. Na zdrowie