2010-08-15
Guide

Så här fungerar Netboot i Leopard Server

För en tid sedan gick jag och blev med server. Igen. Denna gång var det en Xserve G5 Cluster Node (en text kommer även om denna maskin lite senare) och givetvis var inte förutsättningarna de bästa.

Maskinen har ingen inbyggd optisk enhet. Jag har ingen DVD-rom-spelare med FireWire-anslutning, och mina två kvarvarande PPC-maskiner (en 1.6GHz PowerMac G5 och en iMac G4) kan ingen av dem hjälpa till då G5:ans inbyggda DVD-spelare lagt av och G4:an visserligen har en DVD-spelare men istället har för lite minne.

Så vad gör man då? Jo, man tittar på att boota och installera maskinen, som fått det kärleksfulla smeknamnet “bojsänket”, över nätet medelst Netboot. Netboot i all sin enkelhet ju rätt smidigt att jobba med, om det inte vore för att Apple i sedvanlig ordning tycks ha glömt att de innan Snow Leopard sålde ett operativsystem som kallades “Leopard”. Mac OS X Server 10.5 även kallat om någon i Cupertino glömt det.

Apple vore ju inte Apple om det inte vore för att de gör det så svårt det bara går att fortsätta hålla de äldre, och fortfarande väl fungerande, Xserve G5-maskinerna vid liv. Att montera upp en Xserve G5:s hårddisk i target mode över Firewire och sedan installera operativsystemet den vägen går endast om du har en äldre PPC-baserad Mac som uppfyller kraven för att installera Mac OS X Server 10.5. I och med övergången till Intel-plattformen har Apple helt sonika struntat i att göra det enkelt att via en Target Mode-installation, eller till en hårddisk som sedan monteras in i- eller ansluts till servern, installera en äldre version av operativsystemet och samtidigt tala om vilken arkitektur som den ska köra.

In på scenen kliver således Netboot. Netboot-servern i Snow Leopard Server stödja båda arkitekturerna, PPC och Intel, samt OS-versioner som sträcker sig ända tillbaka till MacOS9-tiden, men att skapa en Netboot-image med verktyget som följer med Server Admin 10.6 är en annan femma, åtminstone om du vill göra det av en version av Mac OS X eller Mac OS X Server som är äldre än 10.6.

Det här började som en övning för att jag själv ville labba med Netboot lite mer, och växte sedan till en artikel här på Macpro en stekhet Augustinatt. Råden här fungerar på samma sätt, oavsett om du arbetar med Snow Leopard eller Tiger. Håll till godo!

Hur fungerar Netboot?

Netboot är en salig samling av gammalt och, tja, mer gammalt. Men det gamla är också oerhört beprövat, inget snack om annat. I grunden finns ett protokoll utvecklat av Apple kallat BSDP (Boot Server Discovery Protocol) som i sin tur bygger på DHCP-protokollet. En klient som vill Netboot:a broadcastar ut detta över nätverket och får tillbaka information om IP-adress, default gateway, subnätmask, och vilken server som kan skicka på en image över nätverket.

Därefter tar BootP-protokollet vid. Med detta snackar Netboot-servern med klienten och förklarar vad som finns att hämta ned från Netboot-servern.Om rätt bootimage finns för rätt maskin (arkitektur, modelltyp, och så vidare) tycker klienten allt är kosher och använder nu det uråldriga protokollet TFTP (Trivial File Transfer Protocol) för att helt sonika skicka över den delen av din image-fil som startar upp operativsystemet (se tabell till höger för information om vilka filer samt vad de innehåller.

Bilden hämtad från sidan 19 i dokumentationen “System Imaging and Software Update Server Admin Guide”). För de som använt äldre Sun Microsystems-maskiner är TFTP säkerligen bekant, i synnerhet med tanke på att det Apple gör med Netboot har Sun Microsystems gjort i över 20 år (för att starta upp en maskin över nätet skrev man helt sonika “boot net” och sen tog TFTP hand om resten).

Efter detta är det dags att skicka över resten av imagefilen och då gör man det via NFS. Netboot-tjänsten skapar i samband med att du installerar den i Snow Leopard Server också en SharePoint och delar ut den via NFS med korrekt rättigheter inlagda.

Skapa en bootimage för Leopard Server

Lösningen är kanske solklar, men samtidigt är det lite ironiskt att det krävs version 10.5 av Server Admin-paketet, och därmed version 10.5 av Mac OS X eller Mac OS X Server, för att kunna skapa ett Netinstall- eller Netboot-paket av Mac OS X eller Mac OS X Server 10.5. Kör man med version 10.6 av Server Admin-paketet och därmed på en Snow Leopard eller Snow Leopard Server kan man faktiskt genom att mecka lite med det Automator-script som System Image Utility sedan Leopard-versionen av densamma baseras på få den att ta en Leopard-installations-DVD, eller en image av densamma, men processen att skapa Netinstall-paketet startas aldrig och du får heller inget felmeddelande:

För med rätt version av System Image Utility för rätt operativsystem som ska paketeras, så fungerar det ypperligt:

Svara på ett par frågor och sedan sätter paketskapandet igång:

Konfigurera och starta Netboot-tjänsten

Sin vana trogen har Apple i Server Admin gjort det enkelt att starta Netboot-tjänsten. Först tar vi oss en titt på Info-sidan för tjänsten:

Som synes är Netboot även i Snow Leopard Server förberedd för att boota allt från gamla OS9 upp till dagens versioner av Mac OS X.
En titt på konfigurationssidan visar ytterligare information som är värdefull att konfiguera. Gör du inte rätt här kommer inte Netboot-tjänsten att fungera:

Det första som är av stor vikt är att du talar om vilket nätverkskort i din Netboot-server som ska hantera Netboot-förfrågningar. Detta nätverkskort måste sitta på samma fysiska nätverk som de klienter du vill servera Netboot- och Netinstall-images, och helst också på samma subnät.

Det andra du ska välja är var dina images ligger och var klientdata ska lagras. Det senare är om du använder Netboot för att starta upp Mac:ar från en sådan image istället för att använda den inbyggda hårddisken i respektive Mac. Användarnas hemkataloger monteras upp via AFP till din server där hemkatalogerna lagras, men klientmaskinerna måste också kunna spara information och det görs alltså i mappen för Client Data.

Var ligger då dessa data? Ännu ett bra exempel på var Apple inte klart och tydligt pekar ut var respektive katalog ligger på hårddisken på servern.
En titt under /Library/Netboot direkt i roten på din bootvolym på din server visar att här finns två kataloger:

Katalogen NetBootClients0 är alltså katalogen där Client Data lagras. Katalogen NetBootSP0 är ett förkortat namn som ska utläsas NetBoot
SharePoint 0. Under NetBootSP0 placerar du sedan dina images.

En image-katalog har alltid filändelsen .nbi (NetBootImage). I katalogen finner du allt som Netboot-servern behöver för att skicka ut din image till en eller flera maskiner på nätet.

Ganska självförklarande. När du placerat image-katalogen i /Library/Netboot/NetBootSP0 så dyker den också upp automatiskt i Netboot-serverns administationsgränssnitt:

Genom att dubbelklicka på titelraden för din installationsimage får du upp en synnerligen användbar dialogruta, som också är minst sagt självförklarande.
I mitt fall har jag explicit senare valt att just denna image ska installeras på en Xserve G4, Xserve G5 och en PowerMac G5 då det är de tre maskiner jag har hemma för testinstallationer och liknande när det gäller Leopard-server.

Därefter är det “bara” att få din Mac att boota från installationsfilen över nätverket. Bilden ovan visar en PowerMac G5 som hittat Netbootservern och den image som ska installeras. En Xserve G5 utan skärm eller tangentbord kan tvingas in i Netboot-läge via att använda knapparna på frontpanelen, medan en PowerMac G5 kan fås dit genom att hålla inne OPT (alt)-tangenten när man startar systemet. Givetvis går det också att välja Netboot-servern som uppstartsenhet i System Preferences.

När en Mac bootar upp och får en Netboot/NetInstall-image överskickad kan du se rader som dessa i loggfilen för Netboot-servern:

Aug 15 14:25:10 mini bootpd[47852]: ACK sent 10.0.1.17 pktsize 300
Aug 15 14:25:30 mini bootpd[47852]: BSDP DISCOVER [en0] 1,0:d:93:9c:9b:3a arch=ppc sysid=RackMac3,1
Aug 15 14:25:30 mini bootpd[47852]: DHCP DISCOVER [en0]: 1,0:d:93:9c:9b:3a
Aug 15 14:25:30 mini bootpd[47852]: OFFER sent 10.0.1.61 pktsize 300
Aug 15 14:25:35 mini bootpd[47852]: DHCP REQUEST [en0]: 1,0:d:93:9c:9b:3a
Aug 15 14:25:35 mini bootpd[47852]: ACK sent 10.0.1.61 pktsize 300
Aug 15 14:25:40 mini bootpd[47852]: DHCP INFORM [en0]: 1,0:d:93:9c:9b:3a
Aug 15 14:25:48 mini bootpd[47852]: BSDP INFORM [en0] 1,0:d:93:9c:9b:3a arch=ppc sysid=RackMac3,1
Aug 15 14:25:48 mini bootpd[47852]: NetBoot: [1,0:d:93:9c:9b:3a] BSDP ACK[SELECT] sent 10.0.1.61 pktsize 390
Aug 15 14:25:48 mini bootpd[47852]: DHCP INFORM [en0]: 1,0:d:93:9c:9b:3a
Aug 15 14:25:48 mini bootpd[47852]: ACK sent 10.0.1.61 pktsize 300

En koll i Connections respektive Clients-fliken i ServerAdmin visar också att servern har anslutit sig till Netboot-servern:

Som synes i loggen fick servern IP-adressen 10.0.1.61 av NetBoot-serverns DSDP-tjänst (DHCP med lite socker på) och det är nu dags att starta Mac OS X Server Assistant.

Notera dock att även här har Apple i sin visdom valt att exkludera versioner under Snow Leopard i Mac OS X Server Assistant (som från och med version 10.6 av Server Admin-paketet startas innifrån Server Admin och inte finns som ett separat program).

För att detta ska fungera på min XServe G5 Cluster Node-server så krävs alltså att Server Admin för Leopard Server körs, och det kan endast köras på Leopard eller Leopard Server (10.5-serien för samtliga).

Välj att du ska installera en ny server och om ditt nät fungerar som det skall så dyker den server du ska installera upp i listan.

Välj servern, och klicka “Continue”. Du kommer nu att få mata in ett lösenord. Mac OS X Server Assistant kommer troligen att tala om för dig vilket lösenord du ska leta efter. I fallet Xserve G5 Cluster Node är det de åtta första tecknen i serienumret som är lösenordet, i andra fall är det siffrorna 1-8 men det varierar alltså kraftigt från server till server. Kolla i handboken för just den maskin du ska installera för mer information.

Efter att du valt hårddisk och formatterat denna (om det krävs) så startar installationen.

Som synes tuffar det på bra över ett Gigabit Ethernet-nätverk, även om det givetvis hade gått snabbare att installera från skiva. Processorbelastningen är inte högre än normalt, bortsett från en peak när installationsimagen ska puttas över nätverket till servern som ska installeras.

Överlag är det däremot nätverkstrafiken som kan knäcka en NetBoot-server. m du planerar att använda NetBoot i större skala rekommenderar jag, och Apple, att du sätter upp en separat server för ändamålet och ser till att du har Gigabit Ethernet till samtliga maskiner som ska använda denna funktion. Min enkla installation av en server pikade vid strax över 30 MB/s och ta det
gånger tio så ser du snabbt vartåt det barkar.

Summering, övrigt

NetBoot-servern är väldigt användbar om man tar sig förbi de små hinder som Apple sett till att vi har att tampas med, i synnerhet om man vill använda sig av äldre Mac:ar och deras versioner av Mac OS X. Men det går, och det fungerar.

Härnäst tänker jag även experimentera med att skicka på en gammal iMac version 10.4 av Mac OS X över NetInstall, samt att testa NetBoot-funktionen på en Mac utan hårddisk. Räkna hur som helst med att jag kommer att återkomma till detta ämne vad tiden lider.

Ett tips: Om man inte vill eller kan använda OS X Server går det också utmärkt att bygga en egen Netboot-server på en vanlig OS X-klient. Mer meckande men funktionen är den samma.


Macpro är annonsfri för att göra din läsupplevelse bättre.
Läs mer här

© 2004 - 2017 Joacim Melin