HOWTO Gentoo Diskless Install
Uit Gentoo Linux Wiki
Inhoud |
[bewerken] Inleiding
Deze HOWTO biedt instructies voor het booten van een Gentoo systeem over het netwerk op een client computer. De beschreven boot procedure vereist een server computer waarop Gentoo is geinstalleerd en kan gebruikt worden om bijvoorbeeld elke schijfloze client te booten die ondersteund is door Gentoo. Zowel de client als de server vereisten bepaalde PXE functionaliteiten De client computer heeft een netwerk kaart nodig dat een besturingssysteem kan opstarten door gebruik te maken van de PXE netwerk boot procedure. De meeste netwerk kaarten ondersteunen deze functie.
De client computer vereist dat de bestanden en data van een server computer geladen worden. De client computer kan een schijfloze machine zijn. Bepaalde gebruiksaspecten zoals de reactiesnelheid van je client computer zullen afhangen van de kwaliteit van je netwerk en de hardware van de client en server computer. De client computer kan een schijf of andere opslagmedia gebruiken om extra rekenkracht te geven maar dit is niet vereist op de client.
Een computer die is ingesteld volgens deze instructies is een volwaardige Gentoo (Linux) machine die toevallig geen fysieke harde schijf heeft die zijn root bestandssysteem bevat. De machine is in staat om lokaal een volledige reeks processen te lopen dat zelfs netwerk servers zoals Apache of Squid, X servers (XFree of XOrg), en X client programma's (KDE of Gnome omgevingen, browsers, enz.) omvat. Vergelijk dat met een thin client van het type dat de Linux Terminal Server Project probeerd aan te pieden: een minimale machine die een x server draait om visuele ondersteuning te bieden aan X client programma's die op een andere machine draaien. De LTSP client is gewoon een X-terminal die al dan niet een schijf bevat.
De server computer moet in staat zijn initiële services aan te bieden aan de client bij het opstartten zoals DHCP en NFS functionaliteit
In de volgende beschrijving is de client "eta" genoemd en de server "sigma". Pas dit aan aan uw voorkeuren. De "sigma" server heeft een statisch IP adres dat 192.168.1.20 is.
De procedure omvat volgende stappen:
- Server opzetten
- Gentoo op de server zetten
- De client booten
- XFree XDMCP aanzetten
- Enjoy ...
[bewerken] Server opzetten
Natuurlijk ga ik hier niet praten over de complete setup van de server. Volg hiervoor de installatie handleiding die voorzien is in de documentatie bestanden op de Gentoo website op http://www.gentoo.org/doc/en/diskless-howto.xml (engelstalig)
[bewerken] Maak de mappen aan
Het eerste dat gedaan moet worden is de mappen aanmaken waar je schijfloze systeem opgeslagen zal worden. Persoonlijk maak ik een map aan, /diskless genaamd, waar ik een map voor elke schijfloze host aanmaak:
# mkdir /diskless # mkdir /diskless/eta
Hier is eta de naam van een van mijn schijfloze computers
Het is een goed idee om voor elke host direct een "boot" map aan te maken:
# mkdir /diskless/eta/boot
[bewerken] DHCP en TFTP setup
De client zal boot informatie verkrijgen door gebruik te maken van DHCP en zal alle benodigde bestanden downloaden met behulp van TFTP. Zo stelt men dit in. Om DHCP draaiende te krijgen kan je kiezen om dhcp of dnsmasq te installeren. Als je op een klein netwerk werkt, kan je dnsmasq al hebben voor (name?) resolution/dhcp. Hieronder kan je zien wat moet veranderd worden aan de config om het PXE-capabel te maken.
Gebruik gewoon één van de volgende commando's, afhankelijk van je keuze:
- USE="netboot" emerge -av dhcp tftp-hpa grub
- USE="netboot" emerge -av dnsmasq tftp-hpa grub en configureer het naar hetgeen je nodig hebt. Voeg dan het volgende toe in /etc/dhcp/dhcpd.conf :
| File: /etc/dhcp/dhcpd.conf |
option domain-name "domain";
default-lease-time 600;
max-lease-time 7200;
ddns-update-style ad-hoc;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.30;
}
option option-150 code 150 = text ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.1.10;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}
|
Dit geeft je een statisch IP adres voor de client en het pad van een PXE boot image, hier pxegrub. Je moet het MAC-adres van de Ethernet kaart van de client en de map waar je de client bestanden zal zetten veranderen met diegene die jij gebruikt.
| File: /etc/dnsmasq.conf (if using dnsmasq instead of dhcpd) |
domain-needed bogus-priv local=/localdomain/ domain=localdomain dhcp-range=192.168.1.10,192.168.1.100,255.255.255.0,6h dhcp-host=00:00:00:00:00:00,192.168.1.10,eta,6h dhcp-boot=/eta/boot/pxegrub,server-hostname,192.168.1.1 |
Hetzelfde als hierboven, statisch IP (en hostname) voor het MAC-adres 00:00:00:00:00:00. Ook de Domainname is gegeven (vervang localdomain!). 'dhcp-range' limiteerd het aantal beschikbare IP's. De laatste lijn specifieerd het pad naar het PXE-config bestand, de server-hostname en het server-ip
Voor TFTP emergede ik "app-admin/tftp-hpa" dat zeer gemakkelijk is in gebruik. In /etc/conf.d/in.tftpd zet ik het volgende:
| File: /etc/conf.d/in.tftpd |
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
|
[bewerken] GRUB Setup
Om PXE boot te voorzien gebruikte ik GRUB. Ik heb dit gedaan omdat ik reeds GRUB gebruik op verscheidene machines en ik er tevreden over ben.
Vanaf GRUB 0.94-r1 (en later) word pxegrub goed geinstalleer. Het staat booten zonder schijf toe en installeerd ale ondersteunde GRUB netwerk drives mee
# cp /usr/lib/grub/pxegrub /diskless/eta/boot/pxegrub
Pas nu het GRUB config bestand aan voor de schijfloze client:
# nano -w /diskless/eta/boot/grub.lst
en zet het volgende erin (pas aan aan uw wensen):
| File: /diskless/eta/boot/grub.lst |
default 0 timeout 30 title=Diskless Gentoo root (nd) kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=192.168.1.20:/diskless/eta |
Voor de nfsroot optie is het IP adres een van de server en de map is diegene waar je schijfloze client files in staan (op de server).
[bewerken] NFS Setup
NFS is vrij gemakkelijk te configureren. Het enige dat je moet doen is een regel toevoegen in het /etc/exports config bestand:
| File: /etc/exports |
# /etc/exports: NFS file systems being exported. See exports(5). /diskless/eta eta(rw,sync,no_root_squash) |
[bewerken] Update je hosts
Iets belangrijk om nu te doen is je /etc/hosts bestand aan te passen aan je eigen situatie. In mijn configuratie heb ik het volgende in dit bestand (ik verving gewoon de domain name):
| File: /etc/hosts |
127.0.0.1 localhost 192.168.1.10 eta.example.com eta 192.168.1.20 sigma.example.com sigma |
[bewerken] Gentoo setup op de server
Ik heb meerdere manieren geprobeerd om het basis systeem van mijn diskless client te installeren maar de enige die echt gewerkt heeft is de volgende:
Herstart de server op een Gentoo Livecd (Ik denk niet dat ik dit moet uitleggen... )
Volg dan de standaard installeer procedure zoals uitgelegd in de Gentoo Install Howto MAAR met de volgende verschillen:
[bewerken] Bestandssysteem Mounten
Wanneer je het bestandssysteem moet mounten, doe dan het volgende (hda3 is de partitie waar je de /diskless map aangemaakt hebt):
# mount /dev/hda3 /mnt/gentoo
Het ziet er zo uit:
# mount 192.168.1.20:/diskless/eta /mnt/gentoo
Doe niets anders..
[bewerken] Stage tarballs en chroot
OPGEPAST ! Wees zeer voorzichtig waar je de stage tarball extract
Ik gebruikte een stage3 tarball omdat ik dit snel in orde wou krijgen:
# cd /mnt/gentoo/diskless/eta/ # tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2 # mount -t proc /proc /mnt/gentoo/diskless/eta/proc # cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf # chroot /mnt/gentoo/diskless/eta/ /bin/bash # env-update # source /etc/profile
Volg nu de gebruikelijke stappen tot de kernel configuratie
[bewerken] Kernel configuratie
Wanneer je "make menuconfig" doet, van je keren configuratie, vergeet dan niet het volgende aan te pasen, samen met de andere aanbevolen aanpassingen in de installatie howto:
- Je netwerk kaart ondersteuning.
- Onder "Networking options" :
| Code: Networking options |
[*] TCP/IP networking [*] IP: kernel level autoconfiguration [*] IP: DHCP support [*] IP: BOOTP support - Onder "File systems --> Network File Systems" : <*> NFS file system support [*] Provide NFSv3 client support [*] Root file system on NFS |
[bewerken] fstab veranderen
Laat het volgende staan:
| File: /etc/fstab |
192.168.1.20:/diskless/eta / nfs defaults 0 0 /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0 proc /proc proc defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 |
[bewerken] Bootloader
Installeer geen bootloader want we hebben er reeds een (pxegrub).
[bewerken] Herstart de server
Beeindig de installatie en herstart de server. Het zou moeten booten zoals anders (als je geen fouten hebt gemaakt). Start DCP, TFTPD en NFS.
[bewerken] Alternatieve methode
Ik heb zojuist en alternatieve methode gevondeon om de client systemen op de server te installeren zonder de server te moeten herstartten. Maak gewoon de gewenste root directory aan, pak de stage tarball en portage zoals gewoonlijk uit in die tree en chroot in deze map. De daaropvolgende procedure is identiek als de bovenstaande.
[bewerken] Start de client
Start nu gewoon de client. Configureer het bios en de netwerk kaart zodat ze PXE gebruiken als eerste boot optie (voor cdrom of diskette).
De netwerk kaart zou een IP adres moeten krijgen van de DHCP en zal de GRUB PXE image downloaden met behulp van TFTP.
Dan zou je een mooie zwart-wit Grub bootmenu moeten zien waar je de kernel die je wenst te booten selecteerd en daarna op Enter drukt.
Als alles in orde is zou de kernel moeten booten, het root filesystem moeten mounten door gebruik te maken van NFS en je de langverwachtte loginprompt moeten aanbieden.
[bewerken] XFree XDMCP aanzetten
OK, nu kan je je schijfloze client gebruiken al was het een normale. Maar de client is een zeer oude machine zoals een PII 350 voor mij, er grafische toepassingen op draaien is een beetje belachelijk, zeker als je een mooie P4 hebt met veel Mhz en geheugen als server.
Dus, ik raad aan distcc en dan Xfree te emergen op de client. Volg daarna de instructies op deze URL op XDMCP op de server te startten: XDMCP-HOWTO
Doe dan op de client:
# X -broadcast
En nu zou je de server display manager login prompt moeten krijgen als scherm... of die van je buur.
Iets waar je rekening mee moet houden is dat alles op de remote server zal draaien, zelfs geluid! Als het niet is wat je wilt, start dan de X server zoals gewoonlijk van de client zodat het zijn eigen hardware gebruikt.
[bewerken] Enjoy ...
Nu heb je een mooie schijfloze desktop dat al zijn programma's op een grote server draait ergens anders.
Als ge gelukkig bent met het resultaat, zoals mij, post dan een bericht hier om me te bedanken.
Indien niet, misschien omdat iets mis gegaan is en mijn howto niet helpt, zoek dan op dit forum voor je het me vraagt. Er zijn nog veel andere schijfloze experimenten en misschien vindt je zo je antwoord.
Als je wilt dat ik iets toevoeg aan deze howto, post dan eveneens een bericht hier
(Dit is een vertaling, berichten moeten gepost worden in het engels)
[bewerken] See Also
Originele Forum Post by Alexandre Georges
http://www.gentoo.org/doc/en/diskless-howto.xml
floppy boot image
http://ltsp.org/
http://etherboot.sourceforge.net/
http://www.disklessworkstations.com/
[bewerken] Feedback
Bemerkingen of complimenten? Gelieve de Overleg sectie te gebruiken.
