NFS-Root Mini-Howto Andreas Kostyrka, andreas@ag.or.at V8, 8 Aygoustoy 1997 Ayto to mini-HOWTO prospa8ei na ejhghsei pws na sthsoyme enan Linux workstation (ws) xwris diskoys-disketes (diskless), poy kanei mount ta root filesystems toy mesw toy NFS. Ka8e newterh ekdosh aytou toy mini-Howto 8a brisketai panta sto ftp://sun- site.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root , h ston plhsiestero se sas mirror toy SunSite. ______________________________________________________________________ Table of Contents 1. Copyright 1.1 Poioi syneiseferan 2. Genikh 8ewrhsh 3. Ry8miseis ston server 3.1 Kanontas compile stoys pyrhnes 3.2 Dhmioyrgia toy root filesystem 3.2.1 Antigrafontas to filesystem 3.2.2 Allages sto root filesystem 3.2.3 Kanontas export to filesystem 3.2.4 Ru8mish toy RARP 3.2.5 Ru8mish toy BOOTP 3.2.6 Briskontas tis hardware diey8unseis twn kartwn 4. Bootarontas ton workstation 4.1 Xrhsimopoiwntas mia boot eprom 4.2 Xrhsimopoiwntas mia disketa sketoy pyrhna 4.3 Xrhsimopoiwntas enan bootloader & to 4.4 Xrhsimopoiwntas enan bootloader xwris to 5. Gnwsta problhmata 5.1 To /sbin/init den jekinaei. 5.2 Problhmata me to /dev . 6. Alla 8emata ______________________________________________________________________ 1. Copyright (c) 1996 Andreas Kostyrka (e9207884@student.tuwien.ac.at , h andreas@ag.or.at) Ektos ki an ekfrastei diaforetika, ta keimena Linux HOWTO einai katoxyrwmena apo toys antistoixoys syggrafeis toys. Ta keimena ayta epitrepetai n' anaparax8oun kai na dianemh8oun oloklhra h kata merh, me opoiodhpote mhxaniko h hlektroniko meson, oso ayth edw h shmeiwsh gia to copyright diathreitai epanw se ka8e antigrafo. H emporikh dianomh epitrepetai kai en8arrunetai. Wstoso, o syggrafeas epi8ymei na eidopoieitai gia opoiadhpote tetoia dianomh. Oles oi metafraseis, paragwges ergasies, h syllogikes ergasies poy perilambanoyn opoiodhpote keimeno Linux HOWTO, prepei na kaluptontai apo aythn edw th shmeiwsh peri copyright. Dhladh, den epitrepetai na paragete mia ergasia basismenh s' ena HOWTO, kai na epiballete epipros8etoys periorismous sth dianomh ths. Ejaireseis stoys parapanw oroys mporoun na epitrapoun ypo orismenes proupo8eseis. Parakaloume na er8ete s' epafh me ton syntonisth twn Linux HOWTO, sth dieu8ynsh poy yparxei parakatw. Se syntomia : Epi8ymoume na prow8hsoyme tis plhrofories poy periexontai sthn ergasia ayth, me oso to dynaton perissotera mesa. Wstoso, epishs epi8ymoume na krathsoyme to copyright twn keimenwn HOWTO, kai 8a 8elame na eidopoioumaste gia opoiadhpote sxedia dianomhs twn HOWTOs. Ean exete apories, parakaloume na er8ete s' epafh me ton Andreas Kostyrka , ton syggrafea aytou edw toy mini- HOWTO, h ton Tim Bynum, ton syntonisth twn Linux HOWTO's, sth dieu8ynsh mesw email. 1.1. Poioi syneiseferan · Avery Pennarun (pws na bootaroyme xwris LILO) · Ofer Maor (edwse ena kalutero mini howto epanw sto pws na sthnoyme diskless workstations.) · Christian Leutloff (edwse plhrofories sxetikes me to netboot.) 2. Genikh 8ewrhsh Genika, yparxoyn ta parakatw problhmata gia enan ws : · Prepei na brei th dikh toy dieu8ynsh IP, kai - an xreiastei - tis ypoloipes ry8miseis toy Ethernet. · Prepei na gnwrizei to NFS-server kai to mount path gia to root filesystem toy. H twrinh ylopoihsh toy NFSROOT ston pyrhna toy Linux (ekdosh 1.3.7x) epitrepei tis akoloy8es luseis : · H dieu8ynsh IP mporei na bre8ei apo to RARP, h h plhrhs ru8mish toy Ethernet mporei na perastei ston pyrhna mesw parametrwn (toy pyrhna), apo to LILO , h to LOADLIN. · To mounting path toy NFS mporei na perastei me parametroys toy Ean den ginei etsi, o pyrhnas ypo8etei oti to RARP-server einai epishs NFS-server, kai xrhsimopoiei to default compiled mesa toy path. (H trexoysa default timh ston pyrhna einai h : /tftpboot/<IP-dieu8ynsh toy HY>.) · Oi ry8miseis toy client aneyriskontai apo to BOOTP. Prin arxisete na sthnete ena diskless periballon, prepei n' apofasisete an 8a bootarete me to LILO , h to LOADLIN. To pleonekthma einai h eyelijia, to meionekthma einai h taxuthta. Einai taxutero na bootaroyme enan pyrhna toy Linux xwris to LILO , alla ayto mporei na mas apasxolhsei, mporei kai oxi. 3. Ry8miseis ston server 3.1. Kanontas compile stoys pyrhnes Pi8anotata h yposthrijh toy RARP mesa ston pyrhna toy server na einai mia kalh idea. Prepei na thn symperilabete, an einai na bootarete xwris parametroys pyrhna. Apo thn allh pleyra, den prokeitai na sas boh8hsei, an o client den brisketai sto idio ypodiktyo (subnet) me ton server. O pyrhnas gia ton ws xreiazetai to akoloy8o elaxisto sunolo dynatothtwn compiled mesa toy : · To NFS-filesystem . (Den xreiazetai na exei compiled mesa toy thn yposthrijh gia ext2 , ena module einai arketo.) · To "Root on NFS" prepei na einai energopoihmeno. · Ton Ethernet driver ths kartas diktuoy toy ws. · Analoga me tis anagkes sas, pi8anon na prepei na perilabete yposthrijh gia RARP , h BOOTBP gia to NFS-Root. (M' ayto ennow tis erwthseis poy kanoyme meta thn erwthsh gia to NFS sto make config.) An o ws 8a bootarei xwris parametroys toy pyrhna, prepei epishs na 8esete to root device ws 0:255. Kante to ayto dhmioyrgwntas ena ceutiko (dummy) arxeio device, dinontas : mknod /dev/nfsroot b 0 255. Afou ftiajete ayto to arxeio, mporeite na 8esete to root device toy image toy pyrhna, me : rdev <kernel-image> /dev/nfsroot. 3.2. Dhmioyrgia toy root filesystem 3.2.1. Antigrafontas to filesystem Proeidopoihsh : An kai aytes edw oi odhgies pi8anotata 8a doylecoyn sto diko sas susthma, den einai ka8oloy aytonohtes gia opoiodhpote periballon. Gia kaluteroys tropoys na sthsete ena root filesystem gia toys clients, diabaste to NFS-Root-Client mini howto toy Ofer Maor . Afou apofasisete pou 8a balete to root tree, dhmioyrghste to me (px) : mkdir -p <directory> kai : tar cClf / - | tar xpCf <directory> -. An bootarete ton pyrhna sas xwris LILO, tote to rootdir prepei na einai : /tftpboot/<IP-address>. An den sas aresei, mporeite na to allajete apo mesa apo to epanw-epanw Makefile sta sources toy pyrhna. Yajte gia mia grammh san ayth : NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\"" An allajete ayth thn grammh, prepei na janakanete compile ton pyrhna. 3.2.2. Allages sto root filesystem Twra afaireste ta axrhsta arxeia, kai elegjte ta scripts toy /etc/rc.d . Merika shmantika shmeia : · Ena, h ru8mish toy eth0. O ws synh8ws exei ena ry8mismeno (toylaxiston merikws) eth0. To na ry8misete th dieu8ynsh IP toy ws epanw sth dieu8ynsh IP toy server, den einai kati ejypno. (Alla synebh ston syggrafea kata th diarkeia mias apo tis prwimes prospa8eies toy.) · Ena allo shmeio prosoxhs, einai to /etc/fstab toy ws. Prepei na ry8mistei gia nfs filesystems. · PROEIDOPOIHSH : Mhn sygxeete ta root filesystems toy server kai toy ws. (Eixa hdh rijei ena rc.inet1 panw ston server, kai aporousa giati o server den douleye.) 3.2.3. Kanontas export to filesystem Kante export to root dir pros ton ws. Diabaste thn entolh : exports(5). Pi8anotata 8a prepei na epanekkinhsete to nfsd/mountd meta ap' ayth thn allagh. Me to RedHat ayto ginetai eukola, dinontas : /etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start . 3.2.4. Ru8mish toy RARP Ry8miste to RARP kapoy epanw sto diktyo. An bootarete xwris parametro nfsroot, o server toy RARP prepei na einai kai o server toy NFS . (Synh8ws einai.) Gia na to epituxete ayto, prepei na trejete enan pyrhna me yposthrijh RARP . Gia na to kanete, dwste (kai egkatasthste to kapoy mesa sto /etc/rc.d toy server!) : /sbin/rarp -s <ip-addr> <hardware-addr> opoy : ip-addr einai h dieu8ynsh IP toy ws, kai hardware-addr einai h dieu8ynsh Ethernet ths kartas diktuoy toy ws. paradeigma : /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12 Mporeite epishs na xrhsimopoihsete ena symboliko onoma anti ths dieu8ynshs IP, oso o server einai ikanos na briskei th dieu8ynsh ayth. (Me cajimo sto /etc/hosts , h sto DNS .) 3.2.5. Ru8mish toy BOOTP Gia th ru8mish toy BOOTP prepei na dior8wsete to /etc/bootptab. Parakalw, symboyleyteite tis man selides bootpd(8) kai bootptab(5) . 3.2.6. Briskontas tis hardware diey8unseis twn kartwn Den jerw poia einai h hardware dieu8ynsh! Pws thn briskw; · Bootarete th disketa poy ftiajate, kai perimenete th grammh diagnwstikwn, opoy anagnwrizetai h karta diktuoy. Synh8ws periexei 6 dekaejadika bytes, kai ayth (prepei na) einai h hardware dieu8ynsh ths kartas. · Bootarete ton ws me kapoio allo leitoyrgiko, poy perilambanei dynatothta TCP/IP . Tote kante ping ston ws apo ton server. Yajte sthn cache toy ARP, dinontas : /sbin/arp -a 4. Bootarontas ton workstation 4.1. Xrhsimopoiwntas mia boot eprom Mia poy proswpika den exw akomh xrhsimopoihsei ena tetoio 8hrio, mporw na sas dwsw monaxa tis akoloy8es ypodeijeis (xarh ston Christian Leutloff ) : · Den mporeite na xrhsimopoihsete "synh8ismenes" bootroms. · Yparxei ena programma netboot , apo ton Gero Kuhlmann, poy ftiaxnei bootroms gia Linux, kai dinei perissoteres plhrofories. To netboot einai dia8esimo apo ton plhsiestero mirror toy Linux, h san programma mesa sth distribution toy Debian (netboot-0.4). · Diabaste prosektika thn tekmhriwsh ths boot eprom sas. · Pi8anotata prepei na energopoihsete to tftpd ston server, alla ayto ejartatai apo ton tropo, me ton opoio h boot eprom sas fortwnei ton pyrhna. · Ka8e plhroforia gia pwlhtes boot eproms gia to Linux, opws tis perigracame parapanw, einai eyprosdekth - ka8ws den exei o ka8enas prosbash se eprom programmer :( (eidika sthn Eyrwph, opoy zw). Tis plhrofories 8a tis perilabw edw meta. 4.2. Xrhsimopoiwntas mia disketa sketoy pyrhna An exete kanei export to root filesystem me to swsto onoma gia thn default onomasia, kai o NFS server sas einai taytoxrona kai RARP server (poy shmainei oti oi HY briskontai sto idio ypodiktyo), tote mporeite apla na bootarete ton pyrhna me cating se mia disketa. (Prepei na 8esete to root device toy pyrhna ws 0:255.) Ayto proupo8etei oti to root directory ston server einai /tftpboot/IP- Address (ayth h timh mporei n' allajei, otan kanoyme compile ton pyrhna). 4.3. Xrhsimopoiwntas enan bootloader & to RARP Dwste ston pyrhna oles tis aparaithtes parametroys kata thn ekkinhsh, kai pros8este : nfsroot=<server-ip-addr>:</path/to/mount> , opoy : server-ip-addr einai h dieu8ynsh IP toy NFS-server sas, kai /path/to/mount einai to path pros to root directory. Ypodeijeis : · Otan xrhsimopoieite to LILO , skef8eite na xrhsimopoihsete thn idiothta "lock" : Apla plhktrologhste mia fora oles tis swstes parametroys, kai pros8este "lock" . Thn epomenh fora poy 8a bootarete, afhste to LILO na ftasei se timeout. · Otan ftiaxnete mia disketa gia enan sygkekrimeno ws, mporeite epishs na xrhsimopoihsete thn idiothta append= sto lilo.conf . 4.4. Xrhsimopoiwntas enan bootloader xwris to RARP Mazi me to nfsroot , dwste ena orisma pyrhna sth grammh entolwn : nfsaddrs=<wst-IP>:<srv-IP>:<gw-IP>:<netm-IP>:<hostname> . O pyrhnas 8a ry8misei to eth0 me tis dedomenes parametroys : wst-IP Dieu8ynsh IP toy HY srv-IP Dieu8ynsh IP toy NFS-server gw-IP gateway netm-IP netmask hostname onoma ypologisth 5. Gnwsta problhmata 5.1. To /sbin/init den jekinaei. Ena polu synh8ismeno problhma me to /sbin/init einai oti (toylaxiston) merikes apo tis prosfates distributions exoyn to /sbin/init linked dynamika. Synepws, prepei na dwsete swsth ru8mish /lib gia ton client. Kati eukolo poy mporoume na dokimasoyme, einai n' antikatasthsoyme to /sbin/init (toy client) me ena statika linked programma "Hello World". M' ayton ton tropo 8a jerete an prokeitai gia kati pio 8emeliwdes apo apla ena problhma me to dynamiko linking. 5.2. Problhmata me to /dev . An kata thn ekkinhsh pairnete kapoia mperdemena mhnumata gia ta ttys, tote 8a eprepe na trejete ena MAKEDEV apo ton client sto /dev directory. Yparxoyn fhmes oti ayto den doyleuei me kapoia LS poy xrhsimopoioun 64-bit ari8mous dev. An sas tuxei kati tetoio, parakalw steilte moy e-mail gia poio LS prokeitai. Mia pi8anh lush einai na ftiajete nwris sth diadikasia ekkinhshs ena mikro /dev ramdisc, kai na epanegka8istate ta device nodes ka8e fora. 6. Alla 8emata · Yparxei ena BOOTP programma : ftp://sunsite.unc.edu/system/Network/admin/bootpc.v045.tgz Me ton initrd (poy periexetai sto Linux 2.0), 8a mporousame na to kanoyme na doylecei arketa omorfa. Sthn pragmatikothta, o initrd einai panta mia proxwrhmenh lush gia pio leptomereis ry8miseis. · Gia ekkinhseis basismenes monaxa sto bootpd, ayto pi8anotata den xreiazetai, mia poy to Linux 2.0 periexei epishs kai thn dynatothta na xrhsimopoioume to BOOTP anti toy RARP. (Akribestera, mporoume na kanoyme compile kai ta duo ston pyrhna, kai kerdizei opoio apokrinetai taxutera.) · Sto directory ths tekmhriwshs toy source toy kernel, yparxei ena arxeio poy periexei tekmhriwsh gia to NFS-Root. · Yparxei ki ena patch poy trigyrnaei, poy mas epitrepei na kanoyme swapping epanw sto NFS. Moy to steilane (kata th diarkeia mias periodoy, opoy eixa pollh doyleia), alla katafera na xasw to e- mail. :( Pi8anotata 8a to breite sto http://www.linuxhq.com/ , sto tmhma me ta "anepishma" patches. · To public PGP kleidi moy mporeite na to breite kanontas finger sh dieu8ynsh andreas@ag.or.at . To apotupwma einai : F1 F7 43 D5 07 C4 6C 87 BF 6B 33 A2 2C EE 5A F9.