Booting GRUB from the network
8 Starta GRUB från nätverket
Följande instruktioner fungerar inte för *-emu, i386-qemu, i386-coreboot, i386-multiboot, mips_loongson, mips-arc och mips_qemu_mips.
För att generera en nätverksstartbar katalog, kör:
grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/<plattform>
Exempel för i386-pc:
grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i386-pc
Följ sedan instruktionerna som skrivs ut av grub-mknetdir för att konfigurera din DHCP-server.
Filen grub.cfg placeras i samma katalog som sökvägen som ges av grub-mknetdir, härmed kallad FWPATH. GRUB kommer att söka efter sina konfigurationsfiler i ordning enligt följande regler där det tillagda värdet motsvarar ett värde på klientmaskinen.
- '(FWPATH)'/grub.cfg-'(UUID OF MACHINE)'
- '(FWPATH)'/grub.cfg-'(MAC ADDRESS OF NIC)'
- '(FWPATH)'/grub.cfg-'(IPv4 OR IPv6 ADDRESS)'
- '(FWPATH)'/grub.cfg
UUID är klientmaskinidentifierarens optionsdefinition som specificeras i RFC 4578. Klienten kommer endast att försöka hämta en UUID-konfigurationsfil om den har tillhandahållits av DHCP-servern.
Klienten kommer endast att försöka hämta en IPv6-adresskonfiguration en gång, men den kommer att försöka med IPv4 flera gånger. Det konkreta exemplet nedan visar vad som skulle hända under IPv4-fallet.
- UUID: 7726a678-7fc0-4853-a4f6-c85ac36a120a
- MAC: 52:54:00:ec:33:81
- IPv4: 10.0.0.130 (0A000082)
- '(FWPATH)'/grub.cfg-7726a678-7fc0-4853-a4f6-c85ac36a120a
- '(FWPATH)'/grub.cfg-52-54-00-ec-33-81
- '(FWPATH)'/grub.cfg-0A000082
- '(FWPATH)'/grub.cfg-0A00008
- '(FWPATH)'/grub.cfg-0A0000
- '(FWPATH)'/grub.cfg-0A000
- '(FWPATH)'/grub.cfg-0A00
- '(FWPATH)'/grub.cfg-0A0
- '(FWPATH)'/grub.cfg-0A
- '(FWPATH)'/grub.cfg-0
- '(FWPATH)'/grub.cfg
Denna funktion är aktiverad som standard men kan inaktiveras genom att ställa in 'feature_net_search_cfg' till 'n'. Eftersom detta sker innan konfigurationsfilen läses av GRUB, måste detta alternativ inaktiveras i en inbäddad konfigurationsfil (se Inbäddad konfiguration).
Efter att GRUB har startat kommer filer på TFTP-servern att vara tillgängliga via enheten '(tftp)'.
Serverns IP-adress kan kontrolleras genom att ändra enhetsnamnet '(tftp)' till '(tftp,server-ip)'. Observera att detta bör ändras både i prefixet och i eventuella referenser till enhetsnamnet i konfigurationsfilen.
GRUB tillhandahåller flera miljövariabler som kan användas för att inspektera eller ändra beteendet hos PXE-enheten. I följande beskrivning är <interface> en platsinnehavare för namnet på nätverksgränssnittet (plattformsberoende):
- 'net_<interface>_ip' - Nätverksgränssnittets IP-adress. Skrivskyddad.
- 'net_<interface>_mac' - Nätverksgränssnittets MAC-adress. Skrivskyddad.
- 'net_<interface>_clientid' - Klient-ID tillhandahållit av DHCP. Skrivskyddad.
- 'net_<interface>_clientuuid' - Klientens UUID tillhandahållit av DHCP. Skrivskyddad.
- 'net_<interface>_hostname' - Klientens värdnamn tillhandahållit av DHCP. Skrivskyddad.
- 'net_<interface>_domain' - Klientens domännamn tillhandahållit av DHCP. Skrivskyddad.
- 'net_<interface>_rootpath' - Sökvägen till klientens rotdisk tillhandahållen av DHCP. Skrivskyddad.
- 'net_<interface>_extensionspath' - Sökvägen till ytterligare DHCP-leverantörstillägg tillhandahållen av DHCP. Skrivskyddad.
- 'net_<interface>_boot_file' - Startfilens namn tillhandahållet av DHCP. Skrivskyddad.
- 'net_<interface>_dhcp_server_name' - Namnet på DHCP-servern ansvarig för dessa startparametrar. Skrivskyddad.
- 'net_<interface>_next_server' - IP-adressen till nästa (vanligtvis TFTP) server tillhandahållen av DHCP. Skrivskyddad.
- 'net_default_interface' - Ursprungligen inställt på namnet på nätverksgränssnittet som användes för att ladda GRUB. Lässkriv, även om inställning endast påverkar tolkningen av 'net_default_ip' och 'net_default_mac'
- 'net_default_ip' - IP-adressen för standardgränssnittet. Skrivskyddad. Detta är alias för 'net_${net_default_interface}_ip'.
- 'net_default_mac' - Standardgränssnittets MAC-adress. Skrivskyddad. Detta är alias för 'net_${net_default_interface}_mac'.
- 'net_default_server' - Standardservern som används av nätverksenheterna (se Enhetssyntax). Lässkriv, även om inställning endast är användbar innan en nätverksenhet öppnas.