Če ste začetniki, se pripravljene zagonske diskete pogosto ne bodo hotele zagnati v prvih nekaj poskusih. Splošni pristop k pripravi korenske diskete je zbrati komponente iz obstoječega sistema ter zatem poskusiti zagnati sistem vsaj do točke, kjer se na konzoli začno prikazovati sporočila. Ko je enkrat mogoče brati sporočila, je pol bitke že za vami, ker lahko vidite, zaradi česa se pritožuje, in lahko tako odpravljate posamezne probleme, dokler sistem ne teče gladko. Če se sistem kratkomalo obesi brez obrazložitve, je ponavadi težko ugotoviti vzrok. Priporočen postopek za raziskovanje problemov, kjer sistem ne izpisuje sporočil, je naslednji:
Morda se bo pojavilo sporočilo, podobno naslednjemu:
Kernel panic: VFS: Unable to mount root fs on XX:YY |
Če se pojavi precej sporočil podobnih naslednjemu:
end_request: I/O error, dev 01:00 (ramdisk), sector NNN |
Ramdisk driver initialized : 16 ramdisks of 4096K size |
Preverite, ali so na korenski disketi dejansko tisti imeniki, ki bi morali biti tam. Ni se težko zmotiti in jih prepisovati na napačni stopnji, tako da na koncu na korenski disketi dobite nekaj podobnega /rootdisk/bin namesto /bin.
Prepričajte se, da obstaja datoteka /lib/libc.so z enako povezavo, kot se pojavi v imeniku /lib na trdem disku.
Preverite, da vse simbolične povezave v imeniku /dev obstajajo tudi v korenskem datotečnem sistemu diskete. To velja za povezave do naprav, ki ste jih vključili na korensko disketo. V precej primerih so še posebej potrebne povezave na /dev/console.
Poglejte, ali ste dodali datoteke /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram in /dev/kmem.
Preverite nastavitve jedra. Podpora za vsa sredstva, ki so potrebna do prijave, mora biti vgrajena v jedro, ne v modulih! To velja zlasti za podporo pomnilniškim diskom in datotečnemu sistemu ext2.
Prepričajte se, da so nastavitve za korensko napravo jedra ter pomnilniški disk pravilne.
Ko ste obdelali te splošne vidike, je treba preveriti še nekaj določenih datotek:
Prepričajte se, da je datoteka init vključena kot /sbin/init ali /bin/init. Prepričajte se, da je izvršljiva.
Poženite ukaz ldd init da ugotovite, od katerih knjižnic je init odvisen. Ponavadi je to samo knjižnica libc.so, vendar vseeno raje preverite. Prepričajte se, da ste vključili potrebne knjižnice in nalagalnike.
Prepričajte se, da imate pravi nalagalnik za knjižnice -- ld.so za a.out oz. ld-linux.so za ELF.
V datoteki /etc/inittab na zagonski disketi preverite klice programa getty (ali kakšne zamenjave zanj, npr. agetty, mgetty ali getty_ps). Dvakrat jih preverite v primerjavi z inittabom na trdem disku. Poglejte priročniško stran uporabljenega programa, da se prepričate, ali imajo smisel. Datoteka inittab verjetno predstavlja najzapletenejši del, ker sta njena skladnja in vsebina odvisni od programa init in od narave sistema. Edini način, da se je lotite, je branje priročniških strani za init in inittab ter da do potankosti ugotovite, kaj vaš sistem počne ob zagonu. Preverite, ali /etc/inittab vsebuje vnos za inicializacijo sistema. Ta vnos bi moral vsebovati ukaz za izvršitev skripta za to nalogo in ta skript vsekakor mora obstajati.
Podobno, kot ste storili pri ukazu init, poženite ldd še na ukazu getty, da vidite, katere knjižnice potrebuje in da preverite, ali so te knjižnice in nalagalniki vključeni v korenski datotečni sistem.
Prepričajte se, da ne manjka lupinski program (npr. bash ali ash), ki je sposoben izvesti vse zagonske skripte rc.
Če imate na reševalni disketi datoteko /etc/ld.so.cache, jo naredite znova.
Če se init zažene, vendar dobite sporočilo, podobno naslednjemu:
Id xxx respawning too fast: disabled for 5 minutes |
Če dobite vnosnik za prijavo in vnesete veljavno uporabniško ime, sistem pa vas takoj spet vpraša po uporabniškem imenu, je lahko problem s PAM ali NSS. Oglejte si podrazdelek Podpora za PAM in NSS. Lahko pa uporabljate senčna gesla (angl. shadow) in ste pozabili prepisati /etc/shadow na korensko disketo.
Če poskusite pognati neko izvršljivo datoteko na reševalni disketi, npr. df, in dobite sporočilo v slogu "df: not found", preverite dvoje: (1.) ali je imenik z izvršljivimi datotekami naveden v spremenljivki PATH, in (2.) ali imate knjižnice (in nalagalnike), ki jih program potrebuje.