Naprej Nazaj Kazalo

4. Datotečni sistemi, diski in pogoni

4.1 Kako naj prepričam Linux, da bo delal z mojim diskom?

Če je vaš disk tipa IDE ali EIDE, preberite datoteko /usr/src/linux/drivers/block/README.ide (vključena je v izvorno kodo jedra Linuxa), ki vsebuje veliko uporabnih nasvetov o diskih IDE. Veliko sodobnih krmilnikov tipa IDE dela preslikavo med ,,fizičnimi`` in ,,logičnimi`` cilindri/glavami/sektorji.

Do diskov SCSI dostopate s pomočjo linearnih bločnih številk. BIOS si izmisli nekaj ,,logičnih`` podatkov o cilindrih/glavah/sektorjih, da lahko disk deluje v DOS-u.

BIOS, združljiv z IBM PC, navadno ne bo mogel dostopati do particij, večjih od 1024 logičnih cilindrov in bo v najboljšem primeru naredil zaganjanje Linuxa s programom LILO na takšnih particijah problematično.

Vseeno lahko takšne particije uporabite v Linuxu ali kakšnem drugem operacijskem sistemu, ki neposredno dostopajo do krmilnika.

Priporočeno je narediti vsaj eno particijo za Linux v celoti pod omejitvijo 1024 cilindrov in zaganjati sistem z nje. Ostale particije bodo potem delovale v redu.

Videti je, da je nekaj težav tudi z novejšimi pogoni Ultra-DMA. Podrobnosti ne vem, a postajajo zelo pogost problem na namestitvenih prireditvah, ki jih prireja skupina SVLUG. Nič čudnega, če lahko dobite 8 do 12 Gb pogone za 200 ali 300 US$.

[Jim Dennis]

4.2 Kako lahko vrnem pobrisane datoteke (undelete)?

V splošnem je to zelo težko storiti na kateremkoli Unixu zaradi njihove večopravilne narave. Nekateri sicer razvijajo vračanje datotek na datotečnem sistemu ext2fs, a ne veselite se prezgodaj.

Obstaja nekaj programskih paketov, ki namestijo nove ukaze za brisanje in kopiranje. Z novimi ukazi se izbrisana datoteka prenese v poseben imenik - ,,koš za smeti``. Od tam jo lahko vrnete, dokler se koš avtomatično ne izprazni (s procesom, ki teče v ozadju).

Namesto tega lahko preiskujete surovo diskovno napravo (raw disk device), ki vsebuje problematični datotečni sistem. To je težko delo. Za kaj takega morate biti izkušen uporabnik in povrhu še root. Vendar je to mogoče. Poženite grep na surovi diskovni napravi, denimo:

grep -b 'bookmarks' /dev/hda
Če podatki niso bili prepisani, bi jih morali biti sposobni obnoviti z urejevalnikom besedil.

[Dave Cinege]

4.3 Kako lahko naredim rezervne kopije?

Kopijo hierarhije imenikov ali popolnega datotečnega sistema na katerikoli nosilec lahko naredite s programoma GNU Tar ali cpio, standarnima pripomočkoma Unixa za te namene. Trenutno se zdi Tar bolj uporabljan, vključuje pa tudi izbire v ukazni vrstici za izdelavo stisnjenih, inkrementalnih rezervnih kopij ter kopij z več nosilci. Dokumentacija v obliki GNU Texinfo vsebuje vse informacije.

Na Usenetu precej omenjajo tudi prosti program Amanda, katerega spletna stran je na naslovu http://www.amanda.org/.

Obstaja tudi več komercialnih pripomočkov za izdelavo rezervnih kopij. Pogosto so vključeni v komercialne distribucije.

4.4 Kako lahko particiji (nedestruktivno) spremenim velikost?

V MS-DOS-u uporabite program FIPS.EXE, vključen v večino distribucij Linuxa.

Nekaterim komercialnim distribucijam so priloženi tudi njihovi posebni programi za spreminjanje velikosti particij.

4.5 Ali obstaja defragmenter za ext2fs ipd.?

Da. Obstaja program defrag, defragmenter za datotečna sistema ext2 in minix za Linux in za starejši datotečni sistem tipa ext. Dostopen je na ftp://metalab.unc.edu/pub/Linux/system/filesystems/defrag-0.70.tar.gz.

Uporabniki datotečnega sistema ext2 lahko verjetno shajajo tudi brez defrag-a, saj vsebuje ext2 dodatno kodo, ki preprečuje fragmentiranje diska tudi na zelo zasedenih diskih.

4.6 Kako formatiram disketo in naredim na njej datotečni sistem?

Običajno 3,5-palčno disketo velike gostote formatirate takole:

$ fdformat /dev/fd0H1440
$ mkfs -t ext2 -m 0 /dev/fd0H1440 1440

Za diskete velikosti 5,25 palca uporabite fd0h1200 in 1200 namesto 1440. Če je disketa v pogonu ,,B``, pišite fd1 namesto fd0.

Izbira ,,-m 0`` ukaže programu mkfs.ext2 naj ne rezervira prostora na disku za superuporabnika - navadno je zadnjih 10% rezerviranih za root-a.

Prvi ukaz izvede nizko-nivojsko formatiranje. Drugi ukaz ustvari prazen datotečni sistem. Disketo lahko mountate podobno kot particijo trdega diska in preprosto kopirate/premikate datoteke s cp, mv ipd.

Pravila za imenovanje naprav so v splošnem ista v vseh Unixih. Najdete jih v vodniku Installation and Getting Started Guide, ki ga je napisal Matt Welsh. (Glejte poglavje ,,Kje lahko dobim HOWTO-je in ostalo dokumentacijo?``.) Bolj podroben in tehničen opis je v dokumentu Linux Allocated Devices, avtorja H. Petra Anvina, < hpa@zytor.com>. Ta spis je na voljo v obliki za LaTeX in ASCII v distribuciji izvorne kode jedra (verjetno v imeniku /usr/src/kernel/Documentation) kot devices.tex in devices.txt.

4.7 Ali Linux podpira navidezne datotečne sisteme kot je RAID?

Novejša jedra Linuxa podpirajo programski RAID in bodo delovala z diskovnimi krmilniki RAID.

Samodejni priklapljalnik (angl. automounter) za particije NFS je del večine distribucij Linuxa.

Poleg tega obstaja veliko projektov, povezanih z navideznimi datotečnimi sistemi. Eden izmed njih, Linux Logical Volume Manager, se nahaja na http://linux.msede.com/lvm/.

4.8 Ali Linux podpira enkripcijo datotečnega sistema?

Da. Eden teh datotečnih sistemov, ppdd, se arhivira na http://pweb.de.uu.net/flexsys.mtk/.

4.9 Dobivam grda sporočila o inodih, blokih in podobno

Morda imate pokvarjen datotečni sistem. Okvara je najbrž nastala zato, ker niste pravilno pripravili Linuxa na izklop (z ukazom shutdown) preden ste izklopili ali resetirali računalnik. Najnovejši program shutdown dobite na primer v paketu util-linux, ki je arhiviran na sunsite in tsx-11.

Če imate srečo, bo program fsck (ali e2fsck ali xfsck, kakor se pač že imenuje, če nimate avtomatskega fsck-ja) lahko popravil vaš datotečni sistem. Če nimate sreče, je datotečni sistem uničen in ga boste morali reinicializirati s programom mkfs (ali mke2fs ali mkxfs itd.) in prepisati podatke z varnostnih kopij.

NB: Ne poskusite preverjati datotečnega sistema, ki je priklopljen v načinu za branje/pisanje - to se nanaša tudi na korensko particijo, če ob zagonu ne vidite napisa

VFS: mounted root ... read-only

4.10 Moje izmenjalno področje (swap) ne deluje.

Ko zaganjate računalnik (ali ročno vključujete izmenjalno področje), morate videti sporočilo

Adding Swap: NNNNk swap-space

Če sploh ne vidite nobenega sporočila, vam verjetno manjka ukaz

swapon -av
(ukaz, ki vključi izmenjevalno funkcijo) v datoteki /etc/rc.local ali /etc/rc.d/* (sistemski štartni skripti), ali ste pozabili vpisati prave podatke v /etc/fstab, na primer:
/dev/hda2    none    swap    sw

Lahko se vam prikaže sporočilo

Unable to find swap-space signature

To pomeni, da ste pozabili pognati mkswap. Za podrobnosti glejte man mkswap; deluje zelo podobno kot mkfs.

Ukaz free poleg količine prostega pomnilnika izpiše tudi:

             total       used       free
Swap:        10188       2960       7228

[Andy Jefferson]

Za podrobna navodila, kako nastaviti izmenjalno področje, glejte Installation-HOWTO.

4.11 Kako odstranim LILO, da bo moj sistem spet zaganjal DOS?

Program lilo (ne celotni paket LILO) uporablja izbiro -u v ukazni vrstici za odmestitev zagonskega nalagalnika LILO. Podati morate tudi ime naprave na katero ste namestili LILO, na primer:

lilo -u /dev/hda
To na disk zapiše izvorni glavni zagonski sektor, kakršen je bil pred uporabo paketa LILO. Najde ga v datoteki /boot/boot.0300. Če ste LILO namestili na particijo kot sekundarni zagonski nalagalnik, denimo na /dev/hda1, lilo ponovno namesti izvorni zagonski sektor iz datoteke /boot/boot.0301. Za podrobnosti poglejte stran referenčnega priročnika o lilo. Hvala Villyju Kruseju, da me je opomnil osvežiti ta odgovor.

Če imate zgodnjo različico paketa LILO, boste morali uporabiti nedokumentirani dosovski (MS-DOS 5.0 ali poznejši, ali OS/2) ukaz FDISK /MBR. To bo obnovilo standardni glavni dosovski zagonski zapis (angl. Master Boot Record). Če imate DR-DOS 6.0, pojdite v FDISK na običajen način in potem izberite izbiro za prepis glavnega zagonskega zapisa (,,Re-write Master Boot Record``).

Če nimate MS-DOS-a ali DR-DOS-a, morate uporabiti zagonski sektor, ki ga je LILO shranil, ko ste ga prvič inštalirali. Saj ste shranili to datoteko, kajne? Verjetno se imenuje boot.0301 ali kaj podobnega. Napišite

dd if=boot.0301 of=/dev/hda bs=445 count=1
(ali /dev/sda, če uporabljate disk SCSI). To lahko tudi pobriše tudi vašo particijsko tabelo, zato pozor! Če ste obupani, lahko uporabite
dd if=/dev/zero of=/dev/hda bs=512 count=1

To bo povsem pobrisalo vašo particijsko tabelo in zagonski sektor; potem lahko še enkrat formatirate disk z vašim priljubljenim programom. Toda to bo naredilo tudi vsebino vašega diska nedostopno - če niste strokovnjak, boste izgubili vse podatke.

Upoštevajte, da DOS-ov MBR zažene tisto (in le tisto!) particijo, ki je označena kot "aktivna". Morda boste morali uporabiti fdisk za prižiganje in ugašanje zastavic aktivnosti na vaših particijah. (Prevajalčeva opomba: Uporabite fdisk, da se boste povsem prepričali, da je dosovska particija res aktivna, preden storite karkoli iz tega poglavja. Zgodilo se mi je že, da je bila particija z Linuxom aktivna, LILO odstranjen iz MBR, računalnik pa ni zagnal nobenega sistema.)

4.12 Zakaj ne morem uporabljati programa fdformat, razen, ko sem root?

Sistemske klice za formatiranje diskete lahko izvedete le kot root, ne glede na morebitna drugačna dovoljenja za naprave /dev/fd0*. Če želite, da bo katerikoli uporabnik lahko formatiral disketo, poskusite dobiti program fdformat2. Ta se izogne omejitvam tako, da teče s setuid kot root.

4.13 Moje particije ext2fs se preverjajo ob vsakem zagonu

Glejte razdelek ,,EXT2-fs: warning: mounting unchecked filesystem.``.

4.14 Moj korenski datotečni sistem lahko le berem!

Še enkrat ga priklopite. Če je datoteka /etc/fstab pravilna, preprosto priklopite takole:

mount -n -o remount /

Če je /etc/fstab napačna, morate podati ime naprave in verjetno tudi njen tip, npr.:

mount -n -o remount -t ext2 /dev/hda2 /

Če vas zanima, kako ste zašli v trenutno stanje, preberite razdelek ,,EXT2-fs: warning: mounting unchecked filesystem.``.

4.15 Imam veliko datoteko /proc/kcore! Jo lahko pobrišem?

V resnici nobena od datotek v imeniku /proc ne počiva v njem - to so le ,,navidezne`` datoteke, ki jih naredi jedro, da vam da informacijo o sistemu. Zato tudi nobena od tamkajšnjih datotek ne zaseda prostora na disku.

/proc/kcore je ,,vzdevek`` pomnilnika v vašem računalniku. Velikost te datoteke je enaka kot velikost vašega RAM-a in če jo berete kot datoteko, bere jedro vsebino pomnilnika.

4.16 AHA1542C ne dela z Linuxom

Izbira v BIOS-u za dovolitev diskov z več kot 1024 cilindri je potrebna le za odpravo pomanjkljivosti PC-kompatibilnega BIOS-a in mora biti v Linuxu izklopljena. Starejša jedra Linuxa morajo imeti izklopljene vse izbire ,,naprednega BIOS-a`` - vse, razen tiste o pregledovanju vodila za zaganjalne naprave (bus scanning for bootable devices).

4.17 Kje lahko najdem datotečni sistem z dnevniki?

Datotečni sistem z dnevniki (angl. journalling file system), imenovan ,,Reiserfs``, so pravkar izdali v preizkušnjo. Pravijo, da naredi Linux celo hitrejši od Linuxa z nameščenim datotečnim sistemom Ext2.

Vsi podatki so dostopni prek http://devlinux.org/namesys.


Naprej Nazaj Kazalo