Voorwoord
installatie met netwerk opstarten mag niet worden verward met DebianNetworkInstall. In network install start je met een CD (of USB flash geheugen of iets dergelijks) om een minimaal Linux systeem te installeren voordat je verder gaat met het downloaden van verdere pakketten over het netwerk.
installatie met behulp van netwerk opstarten is ook anders dan het gebruik van het netwerk om een reeds geïnstalleerd systeem op te starten: in dat geval blijft de client-machine afhankelijk van het feit dat de server actief is bij elke toekomstige opstart. Het Linux Terminal Server Project (LTSP) werkt bijvoorbeeld zo.
deze pagina beschrijft het installeren van een nieuw Debian systeem zonder CD, DVD of USB. Aan het einde van het installatieproces kan de nieuwe machine zonder de ondersteuning van de server draaien. Tijdens de installatie Heb je een netwerk boot server nodig.
omdat er in het wild geen fiduciale bootservers zijn, moet u uw eigen servers instellen. Dit is aanzienlijk ingewikkelder dan het installeren van Debian vanaf CD (afkorting voor CD of USB of …). Normaal gesproken wordt netwerk opstarten alleen gebruikt als er echt geen manier is om op te starten vanaf CD. Als het opstarten van CD mislukt, kan dit te wijten zijn aan BIOS-problemen die net zo goed het opstarten van het netwerk voorkomen (typische pogingen om problemen op te lossen zijn het uitschakelen van Veilig opstarten, het overschakelen van UEFI naar legacy boot mode, en soortgelijke).
in het Web kunnen verschillende artikelen gevonden worden die min of meer gedetailleerd beschrijven hoe een netwerk bootserver opgezet moet worden. Ze hebben allemaal dezelfde zwakte.: u bent verplicht om een lange lijst met instructies uit te voeren zonder feedback te krijgen voor het einde van de procedure wanneer u probeert op te starten. Als het werkt, prima. Zo niet, zal debuggen heel erg moeilijk worden. Daarom, in de volgende, we splitsen de procedure in stappen die afzonderlijk kunnen worden debugged.
http://www.debian.org/releases/stable/amd64/ch04s05 – Debian Installation Guide-4.5. Bestanden voorbereiden voor TFTP Net Booting
Opmerking: Als uw systeem iPXE ondersteunt, gebruik dan netboot.xyz is waarschijnlijk veel eenvoudiger.
randvoorwaarden
de computer waarop u wilt installeren wordt de Client genoemd.
de computer waarvan u installeert wordt de Server genoemd. We gaan ervan uit dat de Server Debian draait.
om specifiek te zijn, gaan we ervan uit dat de Client en de Server deel uitmaken van een LAN met de volgende IP-adressen:
u zult later de waarde van x vinden.
merk op dat veel routers ook een DHCP-server bieden: u zult deze moeten uitschakelen, omdat slechts één DHCP-server in een gegeven LAN kan draaien. Tenzij u de DHCP-server van uw router kunt configureren om te voldoen aan de onderstaande isc DHCP-serverconfiguratie, maar dit valt buiten het bereik van dit document.
het is ook mogelijk dat de router en de server dezelfde machine zijn, dat wil zeggen dat uw Debian-server de standaard gateway is voor dit LAN. Dit werkt prima.
de volgende instructies zijn getest met Debian 8.2 (Jessie) in September 2015.
Activeer PXE boot
het BIOS-opstartmenu van de Client instellen om vanaf het netwerk op te starten.
herstarten. Op de meeste systemen produceert dit een uitvoer die het MAC-adres van de Client bevat. Dan zal het mislukken met
PXE-E53: no boot filename received.
let op het MAC-adres; het zal nuttig zijn voor het interpreteren van logberichten.
op veel servers is het ook mogelijk om tijdelijk over te schakelen naar PXE boot zonder permanent de BIOS-instellingen te veranderen. Er zal een soort toetsaanslag te raken tijdens BIOS POST. Op Dell servers, F12 zal het lukken (of Esc dan @ van een seriële of IPMI console).
DHCP-server instellen
Op de Server moeten we een DHCP-server instellen.
De huidige beste praktijk lijkt het gebruik van het pakket isc-dhcp-server te zijn, die een daemon dhcpd levert.
Het configuratiebestand is /etc/dhcp / dhcpd.conf. Dit bestand zo wijzigen dat het ongeveer het volgende bevat; IP-en MAC-adressen aanpassen aan uw lokale behoeften:
na elke wijziging van het bovenstaande, Herstart de DHCP-server met
# /etc/init.d/isc-dhcp-server restart
of met het systemd-equivalent
# systemctl restart isc-dhcp-server
Controleer of het daadwerkelijk draait:
# pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q
or
# systemctl status isc-dhcp-server
die iets meer informatie geeft.
voordat u de client opnieuw opstart, kunt u
# journalctl -fu isc-dhcp-server
uitvoeren, die u de laatste regels van het DHCP-serverlogboek toont, waarna u het scherm bijwerkt met elke nieuwe logboekvermelding. (Als u de log niet wilt “volgen”, laat dan gewoon de “f” weg)
PXE-E32: TFTP open timeout
en tegelijkertijd ziet u logberichten op het serverscherm met de DHCP-verzoeken en-aanbiedingen die vergelijkbaar zijn met de uitvoer onder het alternatieve commando onder
Als u liever geen systemd gebruikt, of de traditionele log-uitvoer wilt vergelijken voor diagnostische doeleinden, kunt u /var/log/syslog opzoeken, bijvoorbeeld met dit commando
# grep DHCP /var/log/syslog
- waar u iets als:
(merk op dat eerdere Debian releases /var/log/daemon gebruikten.log in plaats van syslog)
als er niets in de log verschijnt met een van beide commando ‘ s, controleer dan de netwerkverbindingen tussen de Server en de Client. Merk op dat sommige netwerk switches ernstige beperkingen kunnen opleggen aan DHCP verkeer; voor Cisco degenen, gebruik ‘portfast’ indien mogelijk (zie http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtml).
TFTP-server instellen
vervolgens moeten we een TFTP-server op de Server opzetten.
opnieuw zijn er meerdere pakketten die TFTP bieden (triviale FTP, onveilig, alleen in LAN ‘ s te gebruiken). Het lijkt de beste praktijk om het pakket tftpd-hpa te gebruiken. Bij de installatie worden een paar vragen gesteld. Het antwoord op deze vragen gaat naar een configuratie bestand, /etc/default/tftpd-hpa. Het zou niet nodig moeten zijn om de volgende standaardinhoud aan te passen:
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
oudere websites negeren die u opdracht geven iets als ‘RUN_DAEMON=”yes”‘in te voegen.
na elke wijziging van het bovenstaande configuratiebestand, herstart u de TFTP-server met
# /etc/init.d/tftpd-hpa restart
of
# systemctl restart tftpd-hpa
Op Jessie wordt de map /srv/tftp automatisch aangemaakt. Dit betekent dat de volgende twee stappen niet nodig zijn als u Jessie gebruikt.
in eerste instantie kan het herstarten van de TFTP-server mislukken met een bericht als
Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.
daarom maakt u als root de map /srv/tftp aan. Herstart de TFTP daemon. Controleer of het daadwerkelijk draait:
# pgrep -lf tftpd 12555 /usr/sbin/in.tftpd
of
# systemctl status tftpd-hpa
wat weer een paar regels van het logboek geeft in plaats van alleen het feit dat de taak (niet) draait.
Het is nuttig om uw TFTP-server te testen met een TFTP-client; u kunt hiervoor gewoon het TFTP-hPa-pakket gebruiken:
# cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)
Het is ook nuttig om te zien welke logboekvermeldingen u krijgt wanneer u een bestand downloadt dat bestaat, en wanneer u probeert een bestand te downloaden dat niet bestaat. Terwijl je tftp gebruikt om je tftpd server te testen, probeer je experimenten te volgen met oude en nieuwe vormen van het log commando terwijl je je TFTP client gebruikt om bestanden te downloaden die wel en bestanden die niet bestaan.
het traditionele commando op Jessie
# tail -f /var/log/syslog
(merk nogmaals op dat eerdere Debian releases /var/log/daemon gebruikten.log in plaats van syslog.)
On systemd
# journalctl -fu tftpd-hpa
helaas lijken deze verschillende resultaten te geven, vanaf januari 2017. Het systemd-commando geeft geen bestandsaanvragen weer voor bestanden die niet bestaan.
het is erg handig om te weten waar de client om vraagt, omdat het je helpt bestanden naar de verwachte locatie te verplaatsen als je later fouten maakt. Op dit moment is het waarschijnlijk de moeite waard om de traditionele manier van log tracking voor TFTPD te gebruiken.
Herstart de Client. U zou Foutmeldingen op het clientscherm moeten zien die beginnen met
PXE-T01: File not found
wat heel correct is omdat we nog geen bestanden hebben opgegeven. Op het scherm van de server ziet u precies waar de client om heeft gevraagd.
Geef de opstartimage
Download netboot / netboot.teer.gz van een Debian-spiegelserver (zie http://www.debian.org/distrib/netinst#netboot).
optioneel: om de digitale handtekening te verifiëren, typt u de volgende commando ‘ s:
Netboot uitpakken.teer.gz naar / srv/ tftp, dat nu
debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info
zou moeten bevatten het kan nodig zijn om chmod-R A+r * te gebruiken om alle bestanden in deze map leesbaar te maken voor de TFTP-daemon.
Het kan zijn dat je grub / grub moet bewerken.cfg om uw seriële console in te stellen, indien nodig (Ik heb de sectie over de grafische terminal vervangen):
serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial
evenals de seriële console voor debian-installer door dit toe te voegen aan de kernel opdrachtregel:
console=ttyS1,115200n8r console=tty1
Herstart de TFTP-daemon, en opnieuw kunt u de logboekvermeldingen volgen zoals ze verschijnen
dan Herstart de client. U zou naar een Debian installatiescherm moeten gaan.
als je naar /var/log/syslog zoekt, zul je zien wat er gedownload is van de TFTP server door de PXE bootloader, en dan door SYSLINUX. Je kunt ook een aantal “NAK” antwoorden zien wanneer SYSLINUX vroeg om bestanden die niet bestaan (het probeert verschillende locaties voor een aantal belangrijke bestanden).
de PXE loader (de firmware in de BIOS of de netwerk controller van de client) probeert in deze volgorde te laden:
- pxelinux.0 (of meer precies, wat je het vertelde te downloaden in het ‘filename’ veld van het DHCP antwoord)
dan zal SYSLINUX/PXELINUX proberen zijn configuratie op verschillende paden te zoeken, van het meest specifieke tot het minst:
- pxelinux.cfg/GUID
- pxelinux.cfg / MAC
- pxelinux.cfg / default
en als het configuratiemenu afhankelijk is van andere configuratieitems, worden deze ook gedownload. Debian heeft op zijn minst het ‘bootmenu’ nodig.txt ‘ bestand dat is het hoofdmenu.
standaard komt u bij het grafische Debian install start Menu scherm. Druk op ‘enter’ om de installatie te starten. Wees geduldig: het kan een minuut duren voordat het volgende scherm (‘selecteer een taal’) verschijnt.
alternatieve manier om de opstartimage te verkrijgen
Als u een Debian-systeem hebt met dezelfde release Als u wilt installeren, kunt u de opstartimage installeren met apt.
wijs de TFTP-server nu naar /usr/lib/debian-installer/images/$VERSION/$ARCH/$INTERFACE waar INTERFACE=tekst voor het installatieprogramma voor de tekstmodus of INTERFACE=gtk voor het grafische installatieprogramma. Een eenvoudige manier om dit te bereiken is om van /srv/tftp een symbolische link te maken.
Another Way-use Dnsmasq
dnsmasq is een lichtgewicht, eenvoudig te configureren DNS forwarder en DHCP-server met BOOTP/TFTP / PXE functionaliteit. Dat wil zeggen, Je kunt isc-dhcp-server en tftpd-hpa vervangen door Dnsmasq.
volgt de /etc / dnsmasq.conf biedt dezelfde functionaliteit als de methode voor het installeren en configureren van ISC-dhcpd-server en tftpd-hpa zoals hierboven beschreven.
Download de netboot.teer.gz en extract het in de/srv / tftp als vorige beschrijving.
potentiële problemen
als de kernel in de NetBoot-image niet synchroon loopt met de kernelmodulepakketten, dan zullen de modules niet worden geladen en zal de installatie mislukken.de gebruikelijke symptomen zijn dat berichten over “ontbrekende symbolen” verschijnen in de Ctrl-alt-F4 console.
om dit op te lossen, update je de kernel en initrd op de NetBoot server.
Er is waarschijnlijk een Debian BTS probleem open voor dit, maar ik kan het nu niet vinden.
zie ook
-
http://www.debian.org/releases/stable/amd64/ch04s05 – Debian Installation Guide-4.5. Bestanden voorbereiden voor TFTP net Booting
-
di-netboot-assistant automatiseert de meeste hierboven beschreven stappen: DebianInstaller / NetbootAssistant
-
Het Lenny installatieprogramma in netboot.teer.gz ondersteunt nu standaard geen installatie met seriële console. Meer informatie over dit probleem, en een patch om seriële console toegang mogelijk te maken, is te vinden in 309223.
-
https://networkboot.org/