Erinevus lehekülje "Root-over-NFS" redaktsioonide vahel
(→Võrgust käivitatud bootloader pxegrub) |
(→Võrgust käivitatud bootloader pxelinux) |
||
102. rida: | 102. rida: | ||
* pxelinuxi bootloader | * pxelinuxi bootloader | ||
− | * pxelinuxi seadistusfail | + | * pxelinuxi seadistusfail /var/tftpboot/pxelinux.cfg/default |
* nfs kliendi tuum | * nfs kliendi tuum | ||
* nfs kliendi ramdisk | * nfs kliendi ramdisk | ||
+ | |||
+ | kusjuures /var/tftpboot/pxelinux.cfg/default sisaldab | ||
+ | |||
+ | default nfsroot | ||
+ | |||
+ | label nfsroot | ||
+ | kernel vmlinuz-2.6.22-3-686 | ||
+ | append initrd=initrd.img-2.6.22-3-686-tootav root=/dev/nfs \ | ||
+ | nfsroot=192.168.10.251:/data/nfsroot_xen \ | ||
+ | ip=192.168.10.101:192.168.10.254:192.168.10.254:255.255.255.0:emmija:eth0:off | ||
===Märkused=== | ===Märkused=== |
Redaktsioon: 21. märts 2008, kell 23:26
Sisukord
Eesmärk
Soovitavaks tulemuseks on tekitada nn diskless (ingl. k. ilma kõvakettata) arvuti, st millel endal puudub kõvaketas ja kuhu on ühendatud külge NFS serverilt juurfailisüsteem. Muus osas on tegu tavalisel moel töötava arvutiga.
Tutvustus
Üldiselt läbitakse arvuti käivitamisel järgmised etapid
- Katsetades järgemööda BIOSis näidatud boot-seadmeid käivitatakse esimene leitud bootloader
- Bootloaderi abil laaditakse operatsioonisüsteemi tuum
- Vastavalt tuuma käivitamisel kasutatud parameetritele, ühendatakse külge juurfailisüsteem ning käivitatakse operatsioonisüsteem
Tavaliselt leitakse bootloader arvuti ainsalt kõvakettalt, sealt samast laaditakse tuum, ühendatakse külge juurfailisüsteem ning lõpuks käivitatakse operatsioonisüsteem. Võimalik on aga korraldada nii, et osa tegevusi sooritatakse kohalikus arvutis ning osa jaoks pöördutakse võrku:
- PXE (preboot execution environment) on standardne viis, mil moel võrgukaart pöördub DHCP serveri poole, omandab võrguseadistuse ning kopeerib edasi TFTP serveri poole pöördudes võrgust bootloaderi
- bootloader kopeerib võrgust tuuma
- tuuma laadimisel omandatakse uuesti võrguparameetrid ning ühendab võrgust külge juurfailisüsteemi
Kõige praktilisemat huvi pakuvad kaks juhtu
- lokaalselt meedialt käivitatud bootloader - klientarvutil ei ole PXE võimelist võrgukaarti, kuid CD plaadilt või pehmekettalt käivitatakse bootloader, mis kopeerib võrgust tuuma
- võrgust käivitatud bootloader - klientarvutil on PXE võimeline võrgukaart ning süsteem käivitatakse ilma lokaalset meediat tarvitamata
NFS serveri ettevalmistamine
Sõltumata sellest, kas bootloader ja tuum laaditakse võrgust või klientarvuti lokaalselt meedialt, NFS serveril peab asuma juurfailisüsteem. NFS serveri ettevalmistamine koosneb kahest tegevusest
- klientarvuti juurfailisüsteemi ettevalmistamine - selleks sobib nt kasutada Debian GNU/Linuxi programmi debootstrap ning moodustada nö chroot keskkond
- NFS serverprogrammi käivitamine - jagada sobivate ligipääsupiirangutega võrku välja klientarvuti juurfailisüsteem
Kliendi tuuma ettevalmistamine
Sõltumata sellest, kas laaditav tuum kopeeritakse võrgust või kohalikult meedialt peab tuum olema selliste omadustega
- võrgukaardi tugi
- Root-over-NFS tugi
Networking -> Networking options -> IP: kernel level autoconfiguration -> IP: DHCP support File Systems -> Network File Systems -> Root FS on NFS
TFTP serveri ettevalmistamine
Sõltuvalt sellest, kas kasutatakse lokaalselt meedialt või võrgust käivitatud bootloaderit, tuleb võrgust kopeerida vastavalt, kas tuum või bootloader ja tuum. Kasutamiseks sobib atftpd serveri tarkvara. Seadke näiteks tftpd serveri juurfailisüsteemiks kataloog /var/tftpdboot, kuhu tuleb kopeerida bootloader ning tuum.
Lokaalselt meedialt käivitatud bootloader
Grub bootloaderi tarkvarast on võimalik moodustada bootiv CD plaat, mille kasutamise tulemusena arvuti bootitakse üles sellelt plaadilt ning seejärel bootloader kopeerib tftp serverist tuuma. CD valmistamiseks
- Debian GNU/Linuxi operatsioonisüsteemiga jagatav grub ei ole võrguvõimeline ja sellepärast tuleb pakett kompileerida ringi.
- moodustada kataloog /usr/src/iso/grub/boot
- kopeerida sinna fail /lib/grub/i386-pc/stage2_eltorito
- moodustada fail /usr/src/iso/grub/boot/menu.lst sisuga
title nfs_1.200 ifconfig --address=192.168.1.200 --mask=255.255.255.0 --server=192.168.1.254 root (nd) kernel (nd)/vmlinuz-2.6.17.6-amdrtlnforce root=/dev/nfs nfsroot=192.168.1.254:/mnt/hdc1/nfs-root-evangelist \ ip=192.168.1.200:192.168.1.254:192.168.1.254:255.255.255.0:evangelist:eth0:off
ning anda .iso moodustamiseks kataloogis /usr/src käsk
bash$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso
Seejärel kirjutada CD plaat ning sellelt plaadilt klientarvutit bootides jõutakse grub menüüvalikusse, sealt saab vajadusel teha veel parandusi ning lasta grubil kopeerida tftpd serverilt tuum ning see laadida seadistatud parameetritega. Edasi ühendatakse külge NFS serverilt juurfailisüsteem ning käivitatakse operatsioonisüsteem.
Võrgust käivitatud bootloader pxegrub
Bootloaderi võrgust leidmiseks peab võrgus töötama sobivalt ettevalmistatud dhcp server, sobib kasutada ICS dhcp server, kolm viimast rida on võrgust bootimise spetsiifilised
host evangelist.auul { hardware ethernet 00:17:31:b2:77:df; fixed-address 192.168.10.20; option broadcast-address 192.168.10.255; option routers 192.168.10.254; option domain-name-servers 192.168.1.254; option host-name "evangelist"; option domain-name "auul"; next-server 192.168.10.254; option option-150 "(nd)/menu.lst"; filename "pxegrub"; }
Antud juhul saab klient dhcp serverilt teada, et bootloader ning bootloaderi menüüfail tuleb kopeerida tftpd serverist aadressil 192.168.10.254. Fail pxegrub tuleb kopeerida võrguvõimelise grubi paketist ning menu.lst sobivalt ettevalmistada. Edasine tegevus jätkub sarnaselt eelmisele punktile, bootloader laadib tuuma ning seejärel ühendatakse külge juurfailisüsteem ning käivitatakse operatsioonisüsteem.
Võrgust käivitatud bootloader pxelinux
DHCP serveris töötab selline root-over-nfs kliendile vastav sektsioon
host xen-nfsroot.auul { hardware ethernet 00:0e:0c:ba:4b:28; fixed-address 192.168.10.101; option broadcast-address 192.168.10.255; option routers 192.168.10.254; filename "pxelinux.0"; next-server 192.168.10.251; option domain-name-servers 192.168.10.254; }
ning tftpd serveris peab olema neli faili
- pxelinuxi bootloader
- pxelinuxi seadistusfail /var/tftpboot/pxelinux.cfg/default
- nfs kliendi tuum
- nfs kliendi ramdisk
kusjuures /var/tftpboot/pxelinux.cfg/default sisaldab
default nfsroot label nfsroot kernel vmlinuz-2.6.22-3-686 append initrd=initrd.img-2.6.22-3-686-tootav root=/dev/nfs \ nfsroot=192.168.10.251:/data/nfsroot_xen \ ip=192.168.10.101:192.168.10.254:192.168.10.254:255.255.255.0:emmija:eth0:off
Märkused
Käesolevas palas käsitleti bootloaderit Grub, teised populaarsed bootloaderid on pxelinux ning etherboot.
Debian GNU/Linux grub paketi kasutamisel tuleb arvestada, milliste võrgukaartide toetus on olemas
- bash$ apt-get source grub
- redigeerida debian/rules failis nn ./configure suvandeid, näiteks Realteki, Inteli ja 3Com populaarsete võrgukaartide toetuse lisamiseks tekitada juurde sellised read, et kokku on vastav sektsioon
# Add here commands to configure the package. aclocal-1.8 && automake-1.8 && autoconf CC=$(CC) LDFLAGS=$(LDFLAGS) ./configure \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/ \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --disable-auto-linux-mem-opt \ --enable-diskless \ --enable-eepro100 \ --enable-rtl8139 \ --enable-3c90x
- bash$ dpkg-buildpackage -rfakeroot
- mõnel juhul võiks bootloaderi vahele jätta ja lasta otse DCHP serveril PXE'le tuum kätta anda, aga vähemalt minu ühel seesugusel katsel teatas arvuti seepeale, et mälust ei piisanud
TODO: palad teemadel: dhcp, tftp, nfs, debiani pakettide tekitamine, tuuma kompileerimine, debiani paketihaldus, grub, debootstrap