Odgovori na pogosto zastavljena vprašanja

Q: Poskušam zagnati sistem z zagonske/korenske diskete, pa se ne zgodi nič. Kaj naj storim?
Q: Kako delujejo zagonske diskete za Slackware, Debian oz. RedHat?
Q: Kako naj uporabim diskete z večjo gostoto (> 1440 kB)? Kako naj ugotovim, kakšne diskete (s kakšnimi gostotami) bodo delovale z mojim pogonom?
Q: Kako lahko povečam velikost pomnilniških diskov?
Q: Kako naredim zagonsko ploščo CD?
Q: Kako naredim zagonsko disketo LS-120?
Q: Kako lahko naredim zagonsko disketo z xyz gonilnikom?
Q: Kako posodobim korenske diskete z novimi datotekami?
Q: Kako naj odstranim LILO, da bom za zagon lahko ponovno uporabil DOS?
Q: Kako lahko zaženem, če sem izgubil jedro in zagonsko disketo?
Q: Kako naredim dodatne kopije zagonskih/korenskih disket?
Q: Kako lahko zaženem sistem brez vsakokratnega tipkanja ,,ahaxxxx=nn,nn,nn``?
Q: Ob zagonu se mi izpiše napaka ,,A: cannot execute B``. Zakaj?
Q: Moje jedro ima podprte pomnilniške diske, vendar jih inicializira na 0 kB. Zakaj?

Q: Poskušam zagnati sistem z zagonske/korenske diskete, pa se ne zgodi nič. Kaj naj storim?

Q: Kako delujejo zagonske diskete za Slackware, Debian oz. RedHat?

A: Oglejte si razdelek Kako to delajo profesionalci.

Q: Kako naj uporabim diskete z večjo gostoto (> 1440 kB)? Kako naj ugotovim, kakšne diskete (s kakšnimi gostotami) bodo delovale z mojim pogonom?

A: Oglejte si opombe Alaina Knaffa v razdelku Zmanjšanje velikosti korenskega datotečnega sistema. Njegov odgovor je najbolj kompetenten od vseh poznanih.

Q: Kako lahko povečam velikost pomnilniških diskov?

A: Verjetno bi to moralo biti bolje razloženo v spisu, do takrat pa bo odgovor napisan tu.

Nikar ne poskušajte narediti tega z ukazoma rdev ali ramsize, ne glede na to, kar piše v njuni dokumentaciji. Beseda pomnilniškega diska ne določa več njegove velikosti.

Zapomnite si, da so pomnilniški diski v bistvu dinamični; ko določite njegovo velikost, s tem pravzaprav ne zasežete pomnilnika, s tem samo nastavite mejo, do katere se lahko povečujejo. Tako jih lahko brez posebne zadrege nastavite na kar velike vrednosti (npr. 8 ali celo 16 MB). Pomnilnik RAM se ne porablja, dokler ga dejansko ne potrebujete. Omejitve lahko nastavite na enega izmed naslednjih načinov.

  1. S parametrom ramdisk_size=NNN v ukazni vrstici. Lahko ga vnesete ročno ali z ukazom append="ramdisk_size=NNN" v Lilu.

  2. Če uporabljate LILO, lahko to storite z vnosom v datoteki lilo.conf, npr. ramdisk=8192K.

  3. V jedru spremenite vrednost parametra CONFIG_BLK_DEV_RAM_SIZE in prevedite jedro.

Q: Kako naredim zagonsko ploščo CD?

A: Preberite razdelek Izdelava zagonskih plošč CD.

Q: Kako naredim zagonsko disketo LS-120?

A: Ker avtor nima tovrstnega pogona, je povzel podatke Dava Cinega s projekta Linux Router Project.

LS-120 je disketni pogon IDE. Kompatibilen je z običajnimi 3,5 palčnimi in novimi 120 MB disketami. Polno je podprt od jedra 2.0.31 dalje. Da lahko z njega zaženete sistem, morate imeti BIOS, ki dovoljuje, da se pogon LS-120 obravnava kot pogon 0 (medtem ko se naprave IDE običajno začnejo na 80). Če BIOS tega ne podpira, lahko kupite majhno kartico IDE FloppyMAX podjetja Promise Technologies, ki odpravi to pomanjkljivost.

Zagonski nalagalnik jedra ne mara LS-120 in se obeša. Tudi diskete 2m ga ne marajo in se ne bodo hotele zagnati. Diskete kapacitete med 1,44 in 1,74 MB bodo delovale brez problemov. SYSLINUX deluje s 120 MB disketami od različice 1.32. Če ne potrebujete kompatibilnosti z MS_DOS, namesto uporabe SYSLINUXA raje razdelite disketo in uporabite datotečni sistem ext2 ali minix.

LILO lepo deluje s 120 MB disketami. Tukaj je vzorčna datoteka lilo.conf:

        boot=/dev/hda
        compact
        disk=/dev/hda bios=0
        install=/floppy/boot.b
        map=/floppy/map
        image=/floppy/linux
        label=Linux
        append="load_ramdisk=1"
        initrd=/floppy/root.bin
        ramdisk=8192
V vrstici "disk=/dev/hda bios=0" se skriva trik, kako zagnati z diskete LS-120.

Q: Kako lahko naredim zagonsko disketo z xyz gonilnikom?

A: Najlažji način je, da z najbližjega zrcalnega mesta snamete Slackwarovo jedro. Ta jedra so generična jedra, ki poskušajo zajeti gonilnike za čimvečje število naprav. Če imate torej krmilnik SCSI ali IDE, je veliko možnosti, da je gonilnik zanj že vključen v Slackwarovo jedro.

Pojdite v imenik a1 in izberite jedro s podporo IDE ali SCSI, odvisno od vrste krmilnika, ki ga imate. Oglejte si datoteko xxxxkern.cfg za izbrano jedro, da ugotovite, kateri gonilniki so vključeni v to jedro. Če na tem seznamu najdete napravo, katere gonilnik potrebujete, potem bi s tem jedrom morali uspeti zagnati vaš računalnik. Prenesite si datoteko xxxxkern.tgz in jo prepišite na zagonsko disketo, kot je to opisano v prejšnjih razdelkih o izdelavi zagonskih disket.

Zatem morate z ukazom rdev zImage preveriti korensko napravo v jedru. Če ta ni enaka vaši želeni korenski napravi, jo spremenite z ukazom rdev. Da boste lahko uporabljali korensko disketo, boste morali vtipkati ukaz rdev zImage /dev/fd0.

Nastavitev Slackwarove korenske diskete presega namen tega spisa, zato vam predlagamo, da si ogledate Linux Install Guide (vodnik po namestitvi Linuxa) ali si priskrbite distribucijo Slackware. Oglejte si tudi razdelek ``Viri in povezave'' pri koncu tega spisa.

Q: Kako posodobim korenske diskete z novimi datotekami?

A: Najpreprosteje je prepisati datotečni sistem korenske diskete nazaj na NAPRAVO, ki ste jo uporabljali že v podrazdelku Izdelava datotečnega sistema. Nato datotečni sistem priklopite in opravite želene spremembe. Zapomniti si morate, kje se je vaš korenski datotečni sistem pričel in koliko blokov je zasedel:

        dd if=/dev/fd0 bs=1k skip=ZAČETEK_K_D_S count=ŠT_BLOKOV | gunzip > NAPRAVA
        mount -t ext2 NAPRAVA /mnt
Ko ste izvedli vse želene spremembe, nadaljujte, kot je opisano v podrazdelku Ko je končno vse pripravljeno, in korenski datotečni sistem prenesite nazaj na disketo. Jedra vam ni potrebno prenašati, prav tako vam ni potrebno izračunati nove besede pomnilniškega diska, če se začetni položaj novega datotečnega sistema ni spremenil.

Q: Kako naj odstranim LILO, da bom za zagon lahko ponovno uporabil DOS?

A: Ta tema sicer nima neposredne zveze z zagonskimi disketami, vendar se vprašanje pojavi pogosto. Znotraj Linuxa lahko poženete:

        /sbin/lilo -u

Z ukazom dd lahko tudi na zagonski sektor prepišete rezervno kopijo, ki jo je shranil LILO. Če želite to storiti, si oglejte Lilovo dokumentacijo.

Znotraj Dosa ali Windows lahko poženete Dosov ukaz:

        FDISK /MBR
MBR pomeni Master Boot Record (glavni zagonski zapis). Ta ukaz nadomesti zagonski zapis s čistim Dosovim, ne da bi se pri tem spremenila razdelitvena tabela diska. Nekateri pikolovci se sicer ne strinjajo s to metodo, vendar jo priporoča celo Werner Almesberger, avtor Lila. Je preprosto in deluje.

Q: Kako lahko zaženem, če sem izgubil jedro in zagonsko disketo?

A: Če nimate pri roki zagonske diskete, bo verjetno še najlažje dobiti Slackwarovo jedro, ki podpira vaš diskovni krmilnik (IDE ali SCSI), kot je opisano pri odgovoru na vprašanje ``Kako lahko naredim zagonsko disketo z xyz gonilnikom?''. Tako lahko zaženete računalnik s tem jedrom in zakrpate sistem.

Takšno jedro morebiti ne bo imelo nastavljene korenske naprave na vrsto diska in razdelek, ki ga želite. Npr. Slackwarovo generično jedro za SCSI utegne imeti korensko napravo nastavljeno na /dev/sda2, medtem ko je avtorjev korenski razdelek /dev/sda8. V takšnem primeru je potrebno spremeniti korensko napravo v jedru.

V jedru lahko spremenite korensko napravo in nastavitve pomnilniškega diska tudi, če imate samo jedro in kakšen drug operacijski sistem, npr. DOS.

Ukaz rdev spremeni nastavitve jedra tako, da spremeni vrednosti zlogov na točno določenih mestih v datoteki jedra, to pa lahko storite tudi sami, če le imate na kateremkoli delujočem operacijskem sistemu na voljo urejevalnik v šestnajstiškem številskem sistemu, npr. Norton Utilities Disk Editor za DOS. Tako morate v datoteki jedra preveriti in po potrebi spremeniti vrednosti vrednosti zlogov na naslednjih mestih:

HEX     DEC  OPIS
0x01F8  504  Nižje uteženi zlog besede pomnilniškega diska
0x01F9  505  Višje uteženi zlog besede pomnilniškega diska
0x01FC  508  Nižja številka korenske naprave - gl. spodaj
0X01FD  509  Višja številka korenske naprave - gl. spodaj

Struktura besede pomnilniškega diska je bila opisana v podrazdelku Nastavljanje besede za pomnilniški disk.

Višja in nižja številka naprave mora biti nastavljena na napravo, na katero nameravate pritrditi korenski datotečni sistem. Nekatere uporabne vrednosti so:

NAPRAVA         VIŠJA NIŽJA
/dev/fd0            2     0   prvi disketni pogon
/dev/hda1           3     1   razdelek 1 na prvem pogonu IDE
/dev/sda1           8     1   razdelek 1 na prvem pogonu SCSI
/dev/sda8           8     8   razdelek 8 na prvem pogonu SCSI
Ko ste te vrednosti ustrezno nastavili, zapišite datoteko na disketo bodisi s pripomočkom, kot je Norton Utilities Disk Editor, bodisi s programom rawrite.exe, ki je del vsake distribucije Linuxa. To je dosovski program, ki namesto, da bi pisal v datotečni sistem, zapiše datoteko na ``surovo'' disketo, začenši z zagonskim sektorjem. Če jo zapisujete z Norton Utilities, jo morate zapisati na fizično disketo s pričetkom na začetku diskete.

Q: Kako naredim dodatne kopije zagonskih/korenskih disket?

A: Ker se lahko na magnetni plasti diskete s časom pojavijo napake, bi morali hraniti več izvodov reševalne diskete za vsak primer, če prvotna postane neberljiva.

Najpreprostejša izdelava kopije katerekoli diskete, vključno z zagonskimi in pomožnimi diskatami, je z ukazom dd, ki prepiše vsebino prvotne diskete na trdi disk, nato pa z istim ukazom to prepišemo na novo disketo. Disket vam ni potrebno pritrjevati (in naj jih tudi ne bi), saj ukaz dd uporablja surov (neposreden, brez datotečnega sistema) vmesnik do naprav.

Za prepis prvotne diskete vnesite ukaz:

        dd if=IME_NAPRAVE of=IME_DATOTEKE
kjer IME_NAPRAVE predstavlja napravo disketnega pogona, IME_DATOTEKE pa je ime izhodne datoteke na trdem disku. Z izpustitvijo izbire count bo dd prepisal celotno disketo (tudi 2880 blokov pri visoki gostoti)

Da prepišete nastalo sliko diskete na novo disketo, vstavite disketo v pogon in vtipkajte obraten ukaz:

        dd if=IME_DATOTEKE of=IME_NAPRAVE

Pri tem smo predpostavili, da imate samo en disketni pogon. Če imate dva pogona iste vrste, lahko neposredno prepišete disketo z ukazom

        dd if=/dev/fd0 of=/dev/fd1

Q: Kako lahko zaženem sistem brez vsakokratnega tipkanja ,,ahaxxxx=nn,nn,nn``?

A: Kjer samozaznava diska ni mogoča, je jedru potrebno podati niz z ustreznimi parametri, kot npr.

        aha152x=0x340,11,3,1
Ta niz s parametri se z uporabo Lila lahko poda na več načinov:

  • Z vnosom v ukazni vrstici ob vsakokratnem zagonu sistema z Lilom. Kakorkoli že, to je dolgočasno.

  • Z uporabo Lilove ključne besede lock, s katero lahko podano ukazno vrstico shranimo kot privzeto in jo bo LILO uporabil ob vsakem nadaljnjem zagonu.

  • Z vrstico append= v Lilovi nastavitveni datoteki. Niz parametrov mora biti med narekovajema.

Primer ukazne vrstice za zgornji niz parametrov bi se glasil

        zImage  aha152x=0x340,11,3,1 root=/dev/sda1 lock

Na ta način bi podali niz parametrov, v jedru nastavili korensko napravo na /dev/sda1 in shranili celotno ukazno vrstico za uporabo ob vseh nadaljnjih zagonih.

Primer stavka APPEND je

        APPEND = ,,aha152x=0x340,11,3,1``

Upoštevajte, da niz parametrov ne sme biti med narekovajema, kadar ga kličemo z ukazne vrstice, ob klicu s stavkom APPEND pa mora stati med narekovajema.

Ne pozabite, da mora jedro vsebovati gonilnik za vrsto diska, ki ga želimo doseči z nizom parametrov. Če gonilnika ni, potem nič ne posluša niza parametrov in boste morali znova prevesti jedro, da bo vsebovalo zahtevani gonilnik. Glede podrobnosti o prevajanju jedra pojdite v imenik /usr/src/linux in preberite datoteko README. Preberite še spisa Linux FAQ in Installation HOWTO (oba sta prevedena v slovenščino). Lahko pa si tudi omislite generično jedro za ustrezen krmilnik diska in ga namestite.

Bralcu močno priporočamo, da še pred poskusi z namestitvijo Lila prebere Lilovo dokumentacijo. Neprevidna uporaba stavka BOOT lahko poškoduje razdelke diska.

Q: Ob zagonu se mi izpiše napaka ,,A: cannot execute B``. Zakaj?

A: Obstaja precej primerov, kjer so imena programov že vprogramirana v različnih pripomočkih. Do tega sicer ne prihaja povsod, da se pa razložiti, zakaj nekateri programi v sistemu očitno ne najdejo izvršilne datoteke, čeprav lahko sami vidite, da obstaja. Ali ima program vprogramirane poti do drugih programov, lahko ugotovite z ukazom strings, čigar izhod prek cevi preusmerite na grep.

Znana primera vprogramiranih imen sta:

  • shutdown ima v nekaterih različicah vprogramiran /etc/reboot, zato se mora reboot obvezno nahajati v imeniku /etc.

  • init je vsaj eni osebi povzročal težave, ker jedro ni moglo najti tega programa (iskalo ga je v drugem imeniku).

Ta problem rešite tako, da bodisi prestavite programe v ustrezne imenike bodisi popravite nastavitvene datoteke (npr. inittab), da bodo kazale na imenike, kjer programi dejansko so. Če ste v dvomih, naj bodo programi v istih imenikih, kot so na trdem disku, ter uporabite isti datoteki inittab in /etc/rc.d, kot ju imate na trdem disku.

Q: Moje jedro ima podprte pomnilniške diske, vendar jih inicializira na 0 kB. Zakaj?

A: Če pride do tega, se bo ob zagonu pojavilo sporočilo jedra:

        Ramdisk driver initialized : 16 ramdisks of 0K size

Vzrok je verjetno to, da je bila ob zagonu s parametri jedra nastavljena velikost pomnilniškega diska na 0. Verjetno ste spregledali parameter v Lilovi nastavitveni datoteki:

    ramdisk= 0

To je bilo dodano v vzorčne Lilove nastavitvene datoteke pri nekaterih starejših distribucijah. Namen je bil "preglasiti" prejšnje nastavitve jedra. Če najdete kakšno takšno vrstico, jo kratkomalo izbrišite.

Če nameravate uporabljati pomnilniške diske velikosti 0, lahko obnašanje sistema postane nepredvidljivo in se lahko pojavijo sporočila "kernel panic".