ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root
of
op een sunsite mirror in de buurt.
(c) 1996 Andreas Kostyrka (e9207884@student.tuwien.ac.at of andreas@ag.or.at)
Tenzij anders aangegeven, vallen HOWTO-documenten onder het copyright van hun respectieve auteurs. Linux HOWTO documenten mogen geheel of gedeeltelijk worden gereproduceerd en gedistribueerd, via elk fysiek of elektronisch medium, zolang deze copyright-melding op alle kopieën behouden blijft. Commerciële herdistributie is toegestaan en wordt aangemoedigd; de auteur zou echter graag van dergelijk distributies op de hoogte worden gebracht.
Alle vertalingen, afgeleide werken, of verzamelde werken aangaande enige Linux HOWTO-documenten moeten zijn voorzien van deze copyright-melding. Dat wil zeggen dat je geen afgeleide werken van een HOWTO mag produceren en aanvullende beperkingen op de distributie ervan mag opleggen. Uitzonderingen op deze regels kunnen onder bepaalde voorwaarden worden toegestaan; neem alsjeblieft contact op met de Linux HOWTO coördinator via het hieronder aangegeven adres.
In 't kort, we willen verspreiding van deze informatie via zoveel mogelijk kanalen bevorderen. We willen echter dat het copyright op de HOWTO-documenten behouden blijft, en zouden graag op de hoogte worden gesteld van alle plannen om de HOWTO's te herdistribueren.
Als je vragen hebt, neem dan alsjeblieft contact op met Andreas Kostyrka
<mailto:andreas@ag.or.at
>, de auteur van deze mini-HOWTO, of
Tim Bynum, de Linux HOWTO coördinator, via email
<mailto:linux-howto@sunsite.unc.edu
>.
apenwarr@foxnet.net
> (hoe zonder LILO
te booten)<ofer@hadar.co.il>
(een betere mini-howto over het instellen van een werkstation zonder disk
geleverd).<leutloff@sundancer.tng.oche.de>
(info over netboot geleverd).Over het algemeen gesproken komen de volgende problemen bij een werkstation om de hoek kijken:
De huidige implementatie van NFSROOT in de Linux kernel (op 't moment 1.3.7x) geeft de volgende mogelijke ``oplossingen'':
/tftpboot/<IP-adres van de machine>
).Voor je begint met het instellen van een omgeving zonder disk, zal je een beslissing moeten nemen of je via LILO óf LOADLIN zal gaan booten. Het voordeel hiervan is flexibliteit, het nadeel is snelheid. Een Linux kernel zonder LILO booten is sneller. Dit kan wel of geen overweging zijn.
RARP ondersteuning in de kernel van de server zal vermoedelijk wel een goed idee zijn. Je moet het hebben als je zonder kernelparameters wilt booten. Aan de andere kant helpt het je niet als de client zich niet op hetzelfde subnet bevindt als de server.
De kernel voor het werkstation heeft minimaal het volgende meegecompileerd nodig:
Als het werkstation zonder kernelparameters zal worden geboot, moet je
ook het rootdevice instellen op 0:255. Doe dit door het aanmaken van een
dummy apparaatbestand met mknod /dev/nfsroot b 0 255
. Nadat je
een dergelijk apparaatbestand hebt aangemaakt, kun je het rootdevice van de
kernel-image instellen met rdev <kernel-image> /dev/nfsroot
.
Waarschuwing: ondanks dat deze instructies voor je zouden kunnen werken,
zijn ze in geen enkele betekenis zinvol in een produktie-omgeving.
Zie de NSF-Root-Client mini-howto van Ofer Maor
<ofer@hadar.co.il>
voor een betere manier om een rootbestandssysteem voor de clients in te stellen.
Nadat je hebt besloten waar de root-structuur te plaatsen, maak je het aan
met (b.v.) mkdir -p <directory>
en
tar cClf / - | tar xpCf <directory> -
.
Als je de kernel zonder LILO boot, dan moet de rootdir
/tftpboot/<IP-adres>
zijn. Als je dit niet prettig vindt,
kun je het wijzigen in de Makefile in de kernel-sources, zoek naar een
regel als:
NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\""
Als je dit wijzigt, moet je de kernel opnieuw compileren.
Trim nu de niet benodigde bestanden, en controleer de /etc/rc.d scripts. Een aantal belangrijke punten:
Exporteer de rootdir naar het werkstation. Zie exports(5)
. Zeer
waarschijnlijk moet je de nfsd/mountd na deze wijziging opnieuw starten.
Onder RedHat kan dit eenvoudig worden bewerkstelligd door het typen van
/etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start
.
Stel RARP ergens op het net in. Als je zonder nfsroot parameter boot, moet de RARP-server de NFS-server zijn. Gewoonlijk zal dit de NFS-server worden. Om dit te kunnen doen, moet je een kernel draaien met ondersteuning voor RARP.
Voer het uit (en installeer het ergens in /etc/rc.d
op de
server!):
/sbin/rarp -s <ip-addr> <hardware-addr>
hier is
het IP-adres van het werkstation en
het Ethernet-adres van de netwerkkaart van het werkstation.
voorbeeld: /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12
Je kunt in plaats van het IP-adres ook een symbolische naam gebruiken, zolang de server maar achter het IP-adres kan komen. (/etc/hosts of DNS lookups)
Voor een BOOTP setup moet je /etc/bootptab
wijzigen. Raadpleeg
alsjeblieft de manpages van bootpd(8) en bootptab(5).
Ik weet het hardware-adres niet! Hoe kom ik daar achter?
/sbin/arp -a
Aangezien ik iets dergelijks zelf nog niet hebt gebruikt, kan ik je
slechts de volgende tips geven
(Christian Leutloff <leutloff@sundancer.tng.oche.de>
was zo
vriendelijk):
netboot
packet van Gero Kuhlmann, dat voorziet
in bootroms voor Linux en verdere informatie.
netboot
is beschikbaar vanaf de lokale Linux mirror, of als het
Debian package (netboot-0.4
).Als je het rootbestandssysteem met de juiste naam gezien de standaard
benaming hebt geëxporteerd en je NFS-server ook de
RARP-server is,
(wat impliceert dat de boxen zich op hetzelfde subnet bevinden),
dan kun je de kernel gewoon booten door een cat
naar een disk.
(Je moet het rootdevice in de kernel op 0:255 instelen).
Hierbij wordt verondersteld dat de rootdirectory op de server
/tftpboot/
IP-adres is
(deze waarde kan bij het compileren van de kernel worden gewijzigd).
Geef de kernel bij het booten alle benodigde parameters en voeg toe
nfsroot=<server-ip-addr>:</path/to/mount>
;
hier is server-ip-addr het IP-adres van je NFS-server, en
/path/to/mount het path naar de rootdirectory.
Tips:
lock
''
feature: Tik gewoonweg éénmaal de juiste parameters in en
voeg er ``lock
'' aan toe. Laat de volgende keer bij het booten de tijd
van LILO verstrijken.append=
feature in lilo.conf
gebruiken.Geef in aanvulling op nfsroot
een
nfsaddrs=<wst-IP>:<srv-IP>:<gw-IP>:<netm-IP>:<hostname>
commandoregelargument voor de kernel. De kernel zal eth0
met de opgegeven parameters instellen:
IP-adres van de computer
IP-adres van de NFS-server
gateway
netmask
computernaam
Een bekend probleem met /sbin/init, dat bij (tenminste) een aantal huidige distributies wordt geleverd, is dat /sbin/init dynamisch is gelinkt. Dus je moet voor de client in een juiste /lib setup voorzien. Wat eenvoudig is te doen is /sbin/init (voor de client) proberen te vervangen door een statisch gelinkt ``Hello World'' programma. Op deze manier weet je of het iets fundamenteels is, of ``gewoon'' een probleem dat te maken heeft met het dynamische linken.
Als je bij het booten een aantal onjuist weergegeven meldingen krijgt over tty's, dan zou je vanaf de client in de /dev directory MAKEDEV uit kunnen voeren. Er gaan geruchten dat dit met bepaalde server os'sen die gebruik maken van 64-bit dev nummers niet werkt. Mocht dit je overkomen, mail me dan alsjeblieft met welk os je problemen ervaart. Een mogelijke oplossing is het aanmaken van een kleine /dev ramdisk aan het begin van het bootproces en het iedere keer herinstalleren van de device nodes.
ftp://sunsite.unc.edu/system/Network/admin/bootpc.v045.tgz
Met initrd (welk in Linux 2.0 is opgenomen), zou het mogelijk moeten
zijn het voor stations zonder harddisk heel aardig werkend te krijgen.
initrd is eigenlijk altijd een geavanceerde optie voor meer aangepaste setups.