Č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 Linuxovo particijo v celoti pod omejitvijo 1024 cilindrov in zaganjati sistem z nje. Ostale particije bodo potem delovale v redu.
Izgleda, 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]
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, jih bi morali biti sposobni obnoviti z urejevalnikom besedil.
[Dave Cinege]
V MS-DOS-u uporabite program FIPS.EXE
, vključen v večino
distribucij Linuxa.
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.
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 dokument 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
.
Mogoče imate pokvarjen datotečni sistem. Okvara je najbrž nastala zato,
ker niste pravilno pripravili Linux 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 mountan 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
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/*
(sistemske štartne skripte), 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 dokument
Installation-HOWTO
.
Ko uporabljate DOS (MS-DOS 5.0 ali poznejši, ali OS/2), napišite nedokumentiran
ukaz FDISK /MBR
. Č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 Linuxova particija aktivna, LILO odstranjen iz MBR, računalnik pa ni zagnal
nobenega sistema.)
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.
Glejte razdelek ,,EXT2-fs: warning: mounting unchecked filesystem.``.
Še enkrat ga mountajte. Če je datoteka /etc/fstab
pravilna,
preprosto mountajte 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.``.
/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.
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 Linuxova jedra morajo imeti izklopljene vse izbire ,,naprednega BIOS-a`` -- vse, razen tiste o pregledovanju vodila za zaganjalne naprave (bus scanning for bootable devices).