Artikel top billede

(Foto: Computerworld)

Boot Linux over et netværk - del 1

Installer en ny kopi af Ubuntu med blot et netkabel og en
fjernforbindelse.

Af Redaktionen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Du tror måske, at det at boote en pc fra en anden maskine på det samme net leder tanken hen på laboratorier fra 1970’erne og tynde klienter. Men der er mange grunde til, at teknikken er lige så anvendelig i dag, som den var dengang, også med kun to maskiner.

Til at begynde med findes der i dag mange computere uden optiske drev, såsom netbook-pc’er og hjemmemediecentre. Den eneste måde, hvorpå man kan installere et operativsystem på disse enheder (hvis man ser bort fra at fjerne harddisken) består i enten at installere fra en usb-nøgle eller at bruge net-boot-metoden. Og hvis systemet af den ene eller anden grund ikke kan boote fra en usb-enhed, er der kun en mulighed tilbage.

Bortset fra disse tilfælde er net-boot også en teknik, der kan hjælpe med til at ordne nedbrudte installationer, hvis hardwaren nægter at virke. Den kan også distribuere en opgradering over et net af maskiner, uden at man manuelt skal sætte en disk i hvert drev.

Maskinens evne til at boote fra en andet netenhed afhænger af noget, der kaldes Preboot Execution Environment (PXE). Det er en funktion i BIOS, der sætter maskinen i stand til at hente en netværksadresse og lede efter bootbar kode uden først at tjekke i lokale lagermedier eller søge tilgængelige bootbare enheder.

Hvis der ikke findes sådanne drev på systemet, kan PXE træde ind og lede på lokalnettet efter en bootbar serverkandidat. Det er denne kandidat, som vi skal installere, konfigurere og levere.

Installer en dns-server

1 Når en PXE-maskine først bliver tændt, vil den prøve at initialisere netværksinterfacet og forbinde sig til en gateway for at komme på nettet. Hvis det skal lykkes, skal den bruge en ip-adresse og muligheden for at finde en server. Allokeringen af ip-adressen bliver håndteret af DHCP. Det kræver normalt ikke konfiguration, for ens switch eller router klarer automatisk DHCP.

Men til PXE-boot skal man installere og konfigurere sin egen DHCP-server. Heldigvis findes der et fremragende Linuxværktøj, der også omfatter dns-funktioner, og det er derfor en ideel løsning til net-boot. En dns-server er påkrævet her, fordi vi skal tilføje vores egen bootserver som en prækonfigureret netadresse, så PXE-bootkoden ved, hvor den skal lede efter yderligere instruktioner.

Fra en almindelig Ubuntu-installation skal man tilføje to pakker – ”dnsmasq” og ”dnsmasq-base” – ved hjælp af Synaptics packagemanager. Dnsmasq-serveren er specielt beregnet til små netværk som dem, man har i hjemmet, men den kan skaleres til at håndtere omkring 1.000 klienter. Den har indbygget understøttelse af netboot-enheder, og i modsætning til de fleste andre dns-servere er den enkel at konfigurere.

DHCP-konfigurering

2 Man konfigurerer dnsmasq ved at redigere filen ”/etc/dnsmasq.conf” efter at have installeret de to pakker. Man skal åbne den med en tekstbehandler og bruge systemadministrator-rettigheder. Vi anbefaler, at man enten skriver ”sudo nano /etc/ dnsmasq.conf” eller ”sudo gedit” på kommandolinjen. Derefter tilføjer man disse fire linjer nederst i filen, idet man ændrer ip-adresserne, så de passer til ens netværks konfiguration:

dhcp-range=192.168.198.130.92.168.198.140.12h

dhcp-boot=pxelinux.0.192.168.198.128

dhcp-option=3.192.168.198.2

dhcp-option=6.192.168.198.2

Den første linje i denne tekst rummer de adresser, som vi vil have DHCP-serveren til at håndtere. I dette tilfælde hedder vores netværk 192.168.198.0, og vi har tidelt DHCP-adresser mellem 130 og 140 til dynamisk at allokere klienter.

Den næste linje beder dig tilføje ip-adressen på den maskine, du bruger som server. Denne maskine er normalt den, man installerer serveren på. Denne tekst beder klienten lede efter ”pxelinux.0” som en del af PXE-bootrutinen i retning af ens ip-adresse. Vores hedder 192.168.198.128. De sidste to linjer tager ip-adressen på din gateway, der er 192.168.198.2 i dette eksempel.

Hvis du har problemer med at finde de rigtige tal, kan du prøve at skrive ”ifconfig eth0 | grep inet” i kommandolinjen. Så får du en liste over din servers aktuelle netværksadresser. Når du har den, kan du skrive den i anden linje af konfigurationen.

Når det gælder gateway’ens adresse, skal du skrive ”route”. Det viser de ip-adresser, der bliver taget af pakker, når de går over dit netværk, og ”default” viser en ip-adresse for din gateway, og den kan du bruge i de to sidste linjer i dnsmasq-konfigurationsfilen.

Når konfigurationen er overstået, kan du nu sætte liv i dnsmasq-serveren ved at bruge den følgende konsolkommando: ”sudo /etc/init.d/dnsmasq restart/”.

Installer TFTP-serveren

3 Nu har klientmaskinen fået en ip-adresse og fået at vide, at den skal hente ”pxelinux”. Næste skridt består i at skaffe disse filer ved hjælp af en Trivial File Transfer Protocol-server (TFTP), der er en enkel udgave af den mere udbredte FTP-protokol. Dens enkelhed gør den ideel til situationer med lav hukommelse – og det er lige, hvad PXE-kode, der gemmer sig på en diminutiv bios, har brug for.

Den bedst egnede Linux-TFTP-server hedder ”aTFTP”, og den kan man installere ved at lede efter den pakke, der hedder ”atftp” i Synaptic. Efter at man har installeret den, skal man finde og redigere konfigurationsfilen, der ligger i ”/etc/dfault/atftpd.conf”.

Man skal blot ændre funktionen ”USE_INETD=true” i den første linje i konfigurationsfilen til ”false” og sikre sig, at den sidste parameter i ”OPTIONS”-strengen peger på en anvendelig placering i ens filsystem. Den gemmer de bootfiler, som PXE skal bruge, og som standard peger den på ”/var/lib/tftpboot” – en mappe, der ikke eksisterer i øjeblikket.

Andre distributioner bruger ”tftpboot” som standardplacering, men det er faktisk ligegyldigt, hvad for en af dem man vælger, blot man bruger den samme placering til opbevaring af PXE-bootfilerne. Dem kommer vi til om lidt.

Hvis der er en firewall mellem din PXE-bootklient og den server, der kører TFTP, skal du sikre dig, at UDP-port 69 er åben og tilgængelig for klienten.

The Uncomplicated Firewall, der er slået til i de fleste Ubuntu-installationer, kan man slå fra ved at skrive kommandoen ”sudo ufw disable”. Men det skal du kun gøre, hvis din maskine har en anden firewall til at beskytte sig selv, og hvis du er helt sikker på, at der ikke er nogen yderligere sikkerhedsrisici, der truer systemet.

Når konfigurationen er overstået, kan du starte aTFTP-servere ved at skrive ”sudo/etc/init.d/atftpd restart”.

Det var alt for denne gang. I næste afsnit skal vi oprette bootfiler og se på, hvordan du booter fra en Live cd.

Hvis du ikke har en PXE-kompatibel bios, kan du ikke boote fra en netværksenhed uden en form for bootmedium, og så er vi på vej over i de tynde klienters verden. I modsætning til boot fra PXE kræver en tynd klient et rudimentært operativsystem, der kører på en form for lokalt lager.

Det mest populære trick består i at bruge en beskeden usb-nøgle med en meget minimal Linuxinstallation for at oprette et simpelt Linuxmiljø, der så booter fra en tykkere server, der ligger på netværket.

Tidligere har det været problematisk at bygge en anvendelig Linuxdistribution på en usb-nøgle, men den seneste version af Fedora omfatter en funktion, der kan oprette en bootbar usb-nøgle bed hjælp af ganske få klik i en grænseflade.

Der findes også et opensource-projekt, der hedder UNetBootin, og som man kan bruge fra næsten et hvilket som helst operativsystem.

De funktioner, du bør have med i usb-installationen, afhænger af, hvordan du vil bruge klienten. Du vil måske blot have adgang til en fjern-desktop eller en VNC-server, for eksempel. I dette tilfælde skal du blot bruge klientpakken TightVNC og en fungerende X Windows-konfiguration.

En mere ambitiøs tynd klient ville hurtigt tilslutte et delt FNS-drev, der fungerer som hjemmemappe og applikationsserver for klienten. Det indebærer den fordel, at man kan lade hardwaren køre ved dens oprindelige hastighed, snarere end at være begrænset af flaskehalsen i en fjernforbindelse. Det kan imidlertid være kompliceret at lokke en fungerende konfiguration ud af NFS.

Hvis du vil have en lille, fejlsikker distribution, der kan bootes over netværket, og som kun kræver beskeden installation, bør du overveje PLoP Linux. Den rummer en masse værktøjer, der kan hjælpe med at reparere en nedbrudt installation og somme tider redde miste data fra et drev.

Denne distribution omfatter også nogle PXE-konfigurationsfiler, der simpelthen bliver pakket ud i din aTFTP-mappe sammen med en række fremragende anvisninger til, hvordan man bruger dem. Besøg PLoP’s hjemmeside www.plop.at.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Det skal du bruge...

[/themepacific_accordion_section]
[/themepacific_accordion]