Sedaj ste verjetno že pripravili jedro in stisnjen korenski datotečni sistem. Če pripravljate zagonsko/korensko disketo, se prepričajte, da je oboje mogoče spraviti na eno disketo. Če pripravljate sistem ločenih zagonske in korenske diskete, se prepričajte, da korenski datotečni sistem morebiti ni predolg, da bi ga spravili na disketo.
Odločite se, ali boste zagnali jedro z zagonske diskete z Lilom. Druga možnost je, da prepišete jedro neposredno na disketo in ga zaženete brez Lila. Prednost uporabe Lila je, da lahko ob zagonu podaste jedru dodatne parametre, ki so lahko nujni, da pripravite strojno opremo k delovanju. Poglejte datoteko /etc/lilo.conf v vašem sistemu. Če obstaja in če vsebuje vrstico, ki se začne z ``append=...'', potem verjetno morate zaganjati z Lilom. Slabost uporabe Lila je, da je priprava jedra zapletenejša in da je potrebnega nekoliko več prostora. Pripraviti boste morali dodaten majhen datotečni sistem, imenovan tudi datotečni sistem jedra, kamor boste prenesli jedro in še nekaj datotek, ki jih potrebuje Lilo.
Če boste pripravili zagonsko disketo z Lilom, berite dalje, če pa boste neposredno prenesli jedro, preskočite na podrazdelek Prenos jedra brez Lila.
Najprej se prepričajte, da imate kolikor toliko novo različico Lila.
Narediti morate kratko nastavitveno datoteko za Lilo. Izgleda naj nekako takole:
boot =/dev/fd0
install =/boot/boot.b
map =/boot/map
read-write
backup =/dev/null
compact
image = JEDRO
label = Bootdisk
root =/dev/fd0 |
Datoteko shranite pod imenom bdlilo.conf.
Sedaj morate narediti majhen datotečni sistem, ki ga bomo poimenovali datotečni sistem jedra, da bomo ločili med njim in korenskim datotečnim sistemom.
Najprej poskusite uganiti, kolikšen naj bo ta datotečni sistem. Določite velikost jedra v blokih (z ukazom ``ls -s JEDRO'') in prištejte še 50 blokov. Približno toliko prostora namreč porabijo i-vozlišča in ostale datoteke. Če želite, lahko natančno izračunate to število, lahko pa privzamete kar 50. Če pripravljate zagon z dveh disket, lahko izberete tudi kakšno večjo številko, ker bo na prvi disketi tako in tako samo jedro. Vrednost DOLŽINA_JEDRA naj bo enaka tej številki.
Vstavitre disketo v pogon (zaradi poenostavitve bomo predpostavili, da je njegova naprava /dev/fd0) in na njej naredite datotečni sistem ext2:
mke2fs -N 24 -m 0 /dev/fd0 DOLŽINA_JEDRA |
mount -o dev /dev/fd0 /mnt
rm -rf /mnt/lost+found
mkdir /mnt/{boot,dev} |
Nato izdelajte datoteki gonilnikov naprav /dev/null in /dev/fd0. Namesto da ugotavljate številke naprav, jih lahko kar prepišete s trdega diska z izbiro -R:
cp -R /dev/{null,fd0} /mnt/dev |
cp /boot/boot.b /mnt/boot |
cp bdlilo.conf JEDRO /mnt |
lilo -v -C bdlilo.conf -r /mnt |
total 361 1 –rw–r––r–– 1 root root 176 Jan 10 07:22 bdlilo.conf 1 drwxr–xr–x 2 root root 1024 Jan 10 07:23 boot/ 1 drwxr–xr–x 2 root root 1024 Jan 10 07:22 dev/ 358 –rw–r––r–– 1 root root 362707 Jan 10 07:23 vmlinuz boot: total 8 4 –rw–r––r–– 1 root root 3708 Jan 10 07:22 boot.b 4 –rw––––––– 1 root root 3584 Jan 10 07:23 map dev: total 0 0 brw–r––––– 1 root root 2, 0 Jan 10 07:22 fd0 0 crw–r––r–– 1 root root 1, 3 Jan 10 07:22 null |
Ne skrbite, če se zgoraj navedene velikosti datotek nekoliko razlikujejo od vaših.
Sedaj pustite disketo v pogonu in preskočite na podrazdelek Nastavljanje besede za pomnilniški disk.
Če ne uporabljate Lila, preneste jedro na zagonsko disketo z ukazom dd:
% dd if=JEDRO of=/dev/fd0 bs=1k
353+1 records in
353+1 records out |
Na koncu nastavimo, da bo korenska naprava sama disketa, in da se bo naložila z dovolilnicami za branje in pisanje:
rdev /dev/fd0 /dev/fd0
rdev -R /dev/fd0 0 |
Znotraj slike jedra se nahaja skupina bitov z imenom beseda pomnilniškega diska (beseda (angl. word) v tem primeru pomeni 16 bitov), ki s še nekaj drugimi možnostmi določa predvsem, kje naj se išče korenski datotečni sistem. To besedo lahko dosežemo in nastavimo z ukazom rdev, posamezni njeni biti pa pomenijo naslednje:
| Bit št. | Opis |
|---|---|
| 0-10 | Odmik do začetka pomnilniškega diska v blokih velikosti 1024 zlogov (bajtov) |
| 11-13 | Neuporabljeni |
| 14 | Zastavica, ali naj se naloži pomnilniški disk |
| 15 | Zastavica, ali naj se pred nalaganjem korenskega datotečnega sistema pojavi pozivnik |
Če je bit št. 15 nastavljen na 1, boste ob zagonu pozvani, da v pogon vstavito naslednjo disketo. To je potrebno v sistemih z ločenima zagonsko in korensko disketo.
Ločimo dva primera v odvisnosti od tega, ali pripravljamo enovito zagonsko/korensko disketo ali pa sistem z dvema (zagonska + korenska) disketama.
Če pripravljate enovito disketo, bo stisnjen korenski datotečni sistem nameščen takoj za jedrom, Tako bo odmik enak številki prvega prostega bloka (ki naj bi bila enaka DOLŽINA_JEDRA). Bit št. 14 nastavimo na 1, bit št. 15 pa na 0. Recimo, da pripravljate enovito zagonsko disketo in da se bo korenski datotečni sistem začel na bloku št. 253 (desetiško). Vrednost besede pomnilniškega diska bo tako 253 (desetiško), bit št. 14 bo nastavljen na 1, bit št. 15 pa na 0. Vrednost besede lahko izračunate, če preprosto seštejete vrednosti v desetiškem številskem sistemu: 253 + (2^14) = 253 + 16384 = 16637. Če vam ni povsem jasno, od kod ta številka, jo vtipkajte v znanstveni kalkulator in pretvorite v dvojiški sistem.
Če pripravljate sistem z dvema zagonskima disketama, se bo korenski datotečni sistem začel na bloku št. 0 druge diskete, odmik bo tako enak 0. Bit št. 14 bo enak 1, bit št. 15 pa ravno tako 1. Desetiška vrednost besede bo tako v tem primeru enaka 2^14 + 2^15 = 49152.
Potem, ko ste izračunali vrednost besede pomnilniškega diska, jo nastavite z ukazom rdev -r. Bodite pozorni, da boste nastavili njeno desetiško vrednost. Če ste se odločili za namestitev jedra z Lilom, naj bo argument za ukaz rdev pot do pritrjenega jedra, npr. /mnt/vmlinuz; če ste jedro prepisali z ukazom dd, namesto tega vnesite ime gonilniške datoteke za disketni pogon (npr., /dev/fd0).
rdev -r JEDRO_ALI_DISKETNI_POGON VREDNOST |
Če ste se odločili za namestitev jedra z Lilom, sedaj odklopite disketo.
![]() | Ne verjemite tega, kar pravi priročniška stran za rdev/ramsize o velikosti pomnilniškega diska. Priročniška stran je zastarela. Od jedra 2.0 dalje (ali nekaj takšnega) beseda pomnilniškega diska nič več ne določa njegove velikosti; namesto tega se beseda interpretira v skladu s tabelo na začetku podrazdelka Nastavljanje besede za pomnilniški disk. Podrobnejšo razlago najdete v dokumentacijski datoteki ramdisk.txt ali na naslovu http://www.linuxhq.com/kernel/v2.4/doc/ramdisk.txt.html. |
V zadnjem koraku je potrebno prenesti še datotečni korenski sistem.
Če bo korenski datotečni sistem nameščen na isto disketo kot jedro, ga prenesite z ukazom dd in izbiro seek, ki določi, koliko blokov je treba preskočiti:
dd if=rootfs.gz of=/dev/fd0 bs=1k seek=DOLŽINA_JEDRA |
Če bo korenski datotečni sistem nameščen na drugo disketo, vzemite prvo disketo iz pogona, vanj vstavite drugo disketo in prenesite nanjo korenski datotečni sistem:
dd if=rootfs.gz of=/dev/fd0 bs=1k |
Čestitke, končali ste!
![]() | Preden zagonsko(i) disketo(i) pospravite za nujne primere, jo/ju vsekakor preizkusite. Če zagon z nje/njiju ne uspe, berite dalje. |