Workshop OS installeren via het netwerk

Inhoudsopgave
  1. 1. Inleiding
  2. 2. PXE
  3. 3. Serva
  4. 4. Windows installatie
  5. 5. Windows installatie (vervolg)
  6. 6. Ubuntu Linux installatie
  7. 7. Conclusie
  8. 8. Reacties

Inleiding

Als hardwareliefhebber komt het nogal eens voor dat je een nieuw besturingssysteem moet installeren. Dat kan natuurlijk met een schijfje of vanaf een USB-stick, maar optische drives worden zeldzaam en geheugensticks zijn eenvoudig kwijt te raken. Het alternatief? Een PXE!

Laptops worden steeds kleiner, dunner en lichter. Mooi, maar bij een groeiend aantal modellen betekent dat ook dat er geen ruimte meer is voor een optisch station. Ook bij desktopsystemen is deze trend zichtbaar. Systemen met de mini-ITX form factor en nog kleinere Intel NUC-achtige mini PC’s worden populairder, maar bieden eveneens zelden ruimte aan een optisch station. Zelfs als die ruimte er is, kan je als systeembouwer deze feature soms maar beter weglaten: voor veel mini-ITX-kastjes zijn relatief dure slot-in drives de enige optie.

Bovendien en belangrijker: optische discs zijn zelden meer nodig. Anno 2015 kan je praktisch alle software downloaden, terwijl je content kan streamen via services als Steam, Netflix en Spotify. Vaak is het installeren van je besturingssysteem het enige moment om de lade van je optische drive te openen. Als je geen optisch station hebt kan dit uiteraard ook via een USB-stick, maar er is nog een alternatief: opstarten via het netwerk. In dit artikel laten we zien hoe je een Windows- of Linux-installatie kunt starten via je (bedrade) thuisnetwerk, door middel van PXE.

PXE

PXE staat voor Preboot eXecution Environment. Zoals de naam al aangeeft kan hiermee code worden uitgevoerd, voordat het systeem echt opstart. De uit te voeren code wordt via de ethernet interface gedownload. Het werkt dan ook alleen als je moederbord en netwerkchip dit ondersteunen, maar dat is bij alle moderne modellen het geval. Soms zal je ‘wake on LAN’ wel eerst moeten inschakelen in het BIOS. Hoe je dat moet doen, varieert per computer. Moderne systemen noemen de PXE optie vaak expliciet, zoals te zien in afbeelding 1.


Afbeelding 1: activeer de PXE optie van je netwerkcontroller in het BIOS.

Heb je opstarten van het netwerk eenmaal ingeschakeld, dan zal het systeem proberen een ethernetverbinding op te zetten en via DHCP om een IP-adres vragen. Routers gebruiken dit Dynamic Host Configuration Protocol om IP-adressen uit te delen. Daarnaast kan er via DHCP extra configuratie-informatie meegegeven worden. Hiermee kan een PXE server zichzelf kenbaar maken aan het opstartende systeem. Door een IP-adres van een TFTP (Trivial File Transfer Protocol) server via DHCP mee te geven, weet de PXE-server waar hij de op te starten software kan downloaden.

Die opstartsoftware staat dus (meestal) op een TFTP server. TFTP is een versimpeld file-transfer protocol, zoals de naam al doet vermoeden. Hiermee kan niet veel meer gedaan worden dan de opstartsoftware downloaden naar het werkgeheugen en dit vervolgens uitvoeren. Via TFTP kan niet direct een heel besturingssysteem worden overgedragen. Om die reden gaat het doorgaans om een simpele opstart- en netwerklaag, die vervolgens een volgende stap in het opstartproces binnenhaalt en uitvoert.

Serva

De oplettende lezer heeft begrepen dat je minimaal een DHCP- en een TFTP-server nodig hebt. Voor deze workshop maakten we gebruik van het Windows-programma Serva, dat deze twee (en meer) PXE-gerelateerde componenten combineert. De ‘Non-Supporter’ versie van Serva is gratis voor niet-commercieel gebruik; je kunt deze hier downloaden.

Naast Serva heb je ook het ISO-schijfimage bestand van het te installeren OS nodig. Wij gebruiken images van Windows 8.1 Pro en Ubuntu 14.04 LTS, maar het proces is vergelijkbaar voor andere recente Windows-systemen en Linux-distributies. Een Windows 8.1 ISO image kan je overigens eenvoudig (en legaal) downloaden met een Microsoft tool.

Uiteraard is het laatste wat je nodig hebt een PC die als PXE server kan dienen. Dat kan praktisch elke PC zijn met een beetje vlotte netwerkverbinding. Zolang een courante Windows-versie erop kan draaien, volstaat het.


Afbeelding 2: Serva is gratis te downloaden voor niet-commercieel gebruik.

Windows installatie

Om te beginnen pak je het Serva ZIP-bestand uit op de PC die je als PXE server gaat gebruiken. Maak daarbij ook een nieuwe map aan om de PXE-installatiebestanden in te plaatsen. Wij noemen die map ‘root’, omdat het de root-map van de TFTP-server wordt. Start nu Serva met het Serva64.exe of Serva32.exe bestand. Indien erom gevraagd wordt, voeg Serva dan toe aan de firewall regels.

Serva vereist eerst wat configuratie voordat het zijn werk kan doen. Klik hiervoor op de ‘Settings’-knop. Open het TFTP-tabblad en zet een vinkje bij ‘TFTP Server’ om deze in te schakelen. Klik nu op ‘Browse' om de ‘TFTP Server root directory’ in te stellen op de eerder gemaakte map. Je TFTP-tabblad zou er nu uit moeten zien zoals in afbeelding 1.


Afbeelding 3: het geconfigureerde TFTP tabblad.

Ga nu naar het DHCP-tabblad. Zet hier een vinkje bij ‘proxyDHCP’ en ‘BINL’. De standaard DHCP-server van Serva zou conflicten opleveren met de DHCP-server van je router, vandaar dat we 'proxyDHCP' gebruiken. Dit is een trucje van Serva, waarmee de standaard netwerkconfiguratie aan de router wordt overgelaten, maar deze wordt aangevuld met de PXE-specifieke informatie. BINL is een extra tussenlaag tussen PXE en de te starten besturingssystemen. Hoewel BINL niet strikt noodzakelijk is om PXE met Serva te laten werken, maakt het de configuratie wel een flink stuk makkelijker. Je zou nu dezelfde instellingen als in afbeelding 4 moeten hebben.


Afbeelding 4: het geconfigureerde DHCP tabblad.

Windows installatie (vervolg)

Zoals aangegeven dien je Serva opnieuw te starten na het aanpassen van de instellingen. Nadat je dit gedaan hebt, zal Serva een aantal voor BINL benodigde bestanden en mappen aanmaken in de TFTP root-map. Je treft hier onder meer de WIA_WDS-map (wat staat voor Windows Installation Asset en Windows Deployment Service). Zoals de naam al doet vermoeden dienen we hier onze 'Windows Installation Asset' in te plaatsen.

We doen dit door het Windows ISO image uit te pakken. Je kunt dit doen met een ZIP-programma zoals 7-Zip, of door de image te ‘mounten' op een virtuele drive en de bestanden te kopiëren. Plaats de bestanden in het ISO image in een nieuwe submap van WIA_WDS met een zelf gekozen naam zonder spaties of andere leestekens (met uitzondering van de underscore). Wij gebruiken ‘Windows_8_1_Pro'.

De Serva BINL-laag vertelt Windows om via het netwerk op te starten en te installeren (wat Microsoft WDS noemt). Hiervoor zoekt het naar een netwerk-share op het PXE server systeem genaamd ‘WIA_WDS_SHARE'. Zoals de naam al doet vermoeden dien je hiervoor de ‘WIA_WDS' map te delen. Klik hiervoor met de rechtermuisknop op de map, selecteer ‘Eigenschappen’, ga naar het ‘Delen’-tabblad en klik op ‘Delen...’. Typ in de zoekbox nu ‘Iedereen’ in, klik op ‘Toevoegen’ en daarna op ‘Delen’. Eenmaal terug op het ‘Delen’-tabblad klik je op ‘Geavanceerd Delen…’ om daar de ‘WIA_WDS_SHARE' naam toe te voegen.

We zijn nu klaar om Windows via het netwerk te installeren. Start het te installeren systeem en zorg ervoor dat het via PXE opstart. Zoals eerder al gezegd zal je dit soms in het BIOS moeten configureren. Let daarbij ook op de opstartvolgorde van de diverse mogelijke boot devices, zoals te zien in afbeelding 5. Vaak moet je tijdens het opstarten een toets indrukken om te starten vanaf het netwerk. Als het goed is zal je zien dat de PXE-laag op zoek gaat naar een DHCP-server om de configuratie op te vragen. Dit kan een paar seconden duren. Hierna zal PXE beginnen met de BINL-laag van Serva binnen te halen en uit te voeren, zoals te zien in afbeelding 6. Dit resulteert in een opstartmenu zoals te zien in afbeelding 7. Druk vervolgens op enter om de bekende Windows installatieprocedure te starten.

Afbeelding 5: let erop dat het systeem eerst vanaf het netwerk opstart. De netwerkcontroller kan een wat onduidelijke naam hebben, zoals te zien in de afbeelding.

Afbeelding 6: als je opstart vanaf de netwerkcontroller gaat het systeem op zoek naar een DHCP server.

Afbeelding 7: het Serva BINL bootmenu geeft je een lijst van op te starten besturingssystemen.

Ubuntu Linux installatie

Voor de netwerkinstallatie van andere besturingssystemen is iets meer moeite nodig. We bespreken de vereiste stappen aan de hand van een Ubuntu Linux installatie. Om te beginnen pakken we ook hiervan het ISO-schijfimage uit naar een map met alleen alfanumerieke tekens en underscores (wij gebruiken ‘ubuntu_14_04'). Deze plaatsen we vervolgens niet in ‘WIA_WDS’ zoals voor Windows, maar in een map met de naam ‘NWA_PXE’ (NWA staat voor Non-Windows Asset). Ook de ‘NWA_PXE’-map dient via het netwerk gedeeld te worden met de naam ‘NWA_PXE_SHARE’.

Vervolgens moeten we de Serva BINL-laag vertellen hoe het Ubuntu kan opstarten. Dit doen we met een ‘ServaAsset.inf’ configuratiebestand. Gelukkig hebben de makers van Serva deze bestanden voor een aantal populaire Linux distributies al voor ons gemaakt. Je kunt ze hier vinden. Kopieer de inhoud voor het 'Ubuntu LTS 14.04' ServaAsset.inf bestand naar een tekstbestandje met dezelfde naam (let op de extensie!) en plaats dit in de 'NWA_PXE' sub-map met de Ubuntu-bestanden ('NWA_PXE\ubuntu_14_04' in ons geval). Op de voorlaatste regel van het inf-bestand vul je in het stukje ‘NFSOPTS=-ouser=serva,pass=avres’ je eigen Windows gebruikersnaam en wachtwoord in. Deze dienen geen komma’s of spaties te bevatten. Als alternatief kan je een ‘serva’-gebruiker met ‘avres’-wachtwoord aanmaken en deze met leestoegang aan de NWA_PXE gedeelde map toevoegen.

Zoals in de instructies in het Ubuntu ServaAsset.inf bestand staat, dien je nog een bestand met extra opstartsoftware te downloaden. Plaats het gedownloade bestand onder de ‘casper’ sub-map van de Ubuntu 'NWA_PXE' map. In diezelfde ‘casper’ map dien je ook het ‘vmlinuz.efi’ bestand te hernoemen naar ‘vmlinuz’.

‘casper’ is de naam van de methode die Ubuntu gebruikt om een ‘live’-systeem op te starten. Dat is een volledige Ubuntu desktopomgeving die je kan opstarten vanaf een medium als een optische drive, zonder deze eerst te installeren op een beschrijfbaar medium. Het hele systeem wordt vanaf het installatiemedium en het werkgeheugen uitgevoerd. Het ‘vmlinuz’-bestand is de daadwerkelijke Linux kernel, oftewel de kern van het besturingssysteem. Deze wordt tijdens het opstarten in het werkgeheugen geladen en uitgevoerd. Naast de kernel worden er nog andere bestanden geladen die het systeem helpen opstarten. Een daarvan is ‘initrd’, de Initial RAM Disk. Het ‘INITRD_N11.GZ’-bestand is een aanvulling hierop, die het systeem helpt opstarten via het netwerk, gebruikmakend van de Serva server.

Herstart ten slotte Serva en laat het te installeren systeem weer via het netwerk opstarten. Je zal zien dat het Serva BINL boot menu je nu ook een Ubuntu-optie geeft.

Conclusie

Een PXE-server is een interessant alternatief voor een USB-stick of optisch installatiemedium om je besturingssysteem te installeren. Zeker wanneer je met enige regelmaat een OS (her)installeert, en/of op veel verschillende systemen besturingssystemen installeert, kan dit een zinvolle manier zijn om je installatiewerk uit handen te nemen. Met de stappen in dit artikel hebben we je laten zien hoe je met behulp van Serva tamelijk eenvoudig een PXE-server kunt opzetten. De volgende stap is natuurlijk om updates en service packs in het proces te integreren, maar dat is iets voor een volgende keer.

0