% Linux Installation and Getting Started    -*- TeX -*-
% filesystem.tex 
% Copyright (c) 1992, 1993 by Matt Welsh <mdw@metalab.unc.edu>
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by the 
% copyright for the entire document, in the file "copyright.tex".
%
% Copyright (c) 1998 by Specialized Systems Consultants Inc. 
% <ligs@ssc.com>

\section{Upravljanje datotečnih sistemov}\label{sec-manage-fs}
%\markboth{Sistemsko upravljanje}{Upravljanje datotečnih sistemov}

Še eno opravilo za upravitelja sistema je skrb za datotečne sisteme.
Večino tega sestavljajo periodična preverjanja datotečnih sistemov, da
ne vsebujejo napak ali pokvarjenih datotek.  Veliko sistemov Linux
tudi samodejno preverja datotečne sisteme v času zagona.

\subsection{Priklop datotečnih sistemov}

Preden je datotečni sistem dostopen, mora biti \textbf{priklopljen} na
imenik.  Na primer, če imate datotečni sistem na disketi, ga morate
priklopiti pod imenikom, kot je \texttt{/mnt}, če želite dostopati do
datotek na disketi (glejte stran~\pageref{sec-floppy}).  Po priklopu
datotečnega sistema se vse datoteke datotečnega sistema prikažejo v
tem imeniku.  Po odklopu datotečnega sistema bo imenik (v tem primeru
\texttt{/mnt}) prazen.

Enako velja tudi za datotečne sisteme na trdem disku.  Sistem
samodejno priklopi datotečne sisteme na vašem trdem disku v času
zagona.  Tako imenovani >>korenski datotečni sistem<< se priklopi na
imenik \texttt{/}.  Če imate poseben datotečni sistem za
\texttt{/usr}, se priklopi na \texttt{/usr}.  Če imate le korenski
datotečni sistem, bodo vse datoteke (vključno s tistimi iz
\texttt{/usr}) obstajale na tem datotečnem sistemu.

Ukaza \texttt{mount} in \texttt{umount} (ne \emph{unmount}) se
uporabljata za priklop in odklop datotečnih sistemov.  Ukaz
\begin{tscreen}
mount -av
\end{tscreen}
se samodejno požene iz izvedljivega skripta \texttt{/etc/rc} v času
zagona ali iz skripta \texttt{/etc/rc.d/boot} (glejte
stran~\pageref{sec-rc}) na nekaterih sistemih Linux.  Datoteka
\texttt{/etc/fstab} priskrbi informacije o datotečnih sistemih in
točkah priklopa.  Primer datoteke \texttt{/etc/fstab} je
\label{example-sysadm-fstab}
\begin{tscreen}
\begin{verbatim}
# naprava       imenik        tip      izbire
/dev/hda2       /             ext2     defaults
/dev/hda3       /usr          ext2     defaults
/dev/hda4       none          swap     sw
/proc           /proc         proc     none
\end{verbatim}
\end{tscreen}

Prvo polje, \emph{naprava}, je ime particije za priklop.  Drugo polje
je točka priklopa.  Tretje polje je tip datotečnega sistema kot
\texttt{ext2} (za ext2fs) ali \texttt{minix} (za datotečne sisteme
vrste Minix)\index{Minix}.  Tabela~\ref{table-fs-types} našteva
različne tipe datotečnih sistemov, ki se lahko priklopijo v
Linux.\footnote{Ta tabela je bila osvežena za jedro 2.0.33.}  Morda
vsi ti tipi datotečnih sistemov ne bodo dostopni na vašem sistemu, ker
mora biti v jedro prevedena podpora zanje.  Glejte
stran~\pageref{sec-sysadm-upgrade} za informacije o gradnji jedra.
\begin{table}[ht]\begin{center}
\small\begin{tabular}{lll}
\hline
Datotečni sistem        & Ime tipa       & Komentar \\
\hline
Second Extended  & \texttt{ext2}    & Najpogostejši datotečni sistem Linuxa.\\
Extended         & \texttt{ext}     & Nasledil ga je \texttt{ext2}.\\
Minix  	         & \texttt{minix}   & Originalni datotečni
       sistem Minixa; redko uporabljan.\\
Xia              & \texttt{xia}     & Kot \texttt{ext2}, a redko uporabljan.\\
UMSDOS 	         & \texttt{umsdos}  & Uporabljan za namestitev Linuxa
       na particijo MS-DOS.\\
MS-DOS 	         & \texttt{msdos}   & Uporabljan za dostop do datotek
       MS-DOS-a.\\
\texttt{/proc}   & \texttt{proc}    & Ponuja informacije o procesih
       za \texttt{ps} itd.\\
ISO 9660         & \texttt{iso9660} & Format, ki ga uporablja večina
       CD-ROM-ov.\\
Xenix  	         & \texttt{xenix}   & Uporabljan za dostop do datotek Xenixa.\\
System V         & \texttt{sysv}    & Uporabljan za dostop do datotek na
        različicah System V za x86.\\
Coherent         & \texttt{coherent}& Uporabljan za dostop do datotek
        Coherenta.\\
HPFS             & \texttt{hpfs}    & Le bralni dostop do particij
        HPFS (DoubleSpace).\\
\end{tabular}\normalsize\rm
\caption{Tipi datotečnih sistemov za Linux}
\label{table-fs-types}
\end{center}\end{table}

Zadnje polje v datoteki \texttt{fstab} so izbire za priklop z
\texttt{mount}.  To je običajno nastavljeno na privzeto vrednost,
\texttt{defaults}.

Izmenjalne particije so vključene v datoteko \texttt{/etc/fstab}.  Kot
imenik za priklop imajo navedeno vrednost \texttt{none}, za tip pa
\texttt{swap}.  Ukaz \texttt{swapon -a}, ki se izvede iz
\texttt{/etc/rc} ali \texttt{/etc/init.d/boot}, se uporablja za vklop
izmenjevanja na vseh izmenjalnih napravah, ki so naštete v
\texttt{/etc/fstab}.

Datoteka \texttt{/etc/fstab} vsebuje poseben vnos za datotečni sistem
\texttt{/proc}.  Kot je opisano na strani~\pageref{sec-processes}, se
datotečni sistem \texttt{/proc} uporablja za shranjevanje informacije
o sistemskih procesih, dostopnem pomnilniku in tako naprej.  Če
datotečni sistem \texttt{/proc} ni priklopljen, ukazi, kot je
\texttt{ps}, ne bodo delovali.

\blackdiamond
Ukaz \texttt{mount} lahko uporablja le root.  To zagotavlja varnost
sistema.  Saj ne želite, da običajni uporabniki priklapljajo in
odklapljajo datotečne sisteme ob vsakem preblisku.  Obstaja precej
dostopnih programskih paketov, ki dovoljujejo nekorenskim uporabnikom
priklapljanje in odklapljanje datotečnih sistemov, posebej disket, ne
da bi bila prizadeta varnost sistema.

Ukaz \texttt{mount -av} pravzaprav priklopi vse datotečne sisteme,
razen korenskega (v zgornji tabeli, \texttt{/dev/hda2}).  Korenski
datotečni sistem samodejno priklopi že jedro v času zagona.

Namesto uporabe \texttt{mount -av} lahko priklopite datotečni sistem
na roke.  Ukaz
\begin{tscreen}
\# \emph{mount -t ext2 /dev/hda3 /usr}
\end{tscreen}
je ekvivalenten priklopu datotečnega sistema z vnosom za
\texttt{/dev/hda3} v zgornji zgledni datoteki \texttt{/etc/fstab}.

%% In general, you should never have to mount or unmount file systems by hand.
%% The \texttt{mount -av} command in \texttt{/etc/rc} takes care of mounting
%% the file systems at boot time.
%% File systems are automatically unmounted by the \texttt{shutdown} or 
%% \texttt{halt} commands before bringing the system down. 
%% \index{file systems!mounting|)}

\subsection{Imena gonilnikov naprav}
\label{device-driver-names}
Poleg imen particij, naštetih v datoteki \texttt{/etc/fstab}, Linux
prepoznava številne fiksne in odstranljive naprave.  Razvrščene so po
tipu, vmesniku in vrstnem redu, kot so nameščene.  Na primer, prvi
trdi disk vašega sistema, če je to IDE ali starejši trdi disk MFM, je
nadzorovan z gonilnikom naprave, na katero kaže \texttt{/dev/hda}.
Prva particija trdega diska je \texttt{/dev/hda1}, druga particija je
\texttt{/dev/hda2}, tretja particija je \texttt{/dev/hda3} in tako
naprej.  Prva particija drugega pogona IDE je pogosto
\texttt{/dev/hdb1}, druga particija \texttt{/dev/hdb2} in tako dalje.
Shema poimenovanja za najbolj pogosto nameščene diske IDE za
arhitekturo Intel, stroje z vodili ISA in PCI je podana v
tabeli~\ref{table-ide-device-drivers}.
\begin{table}[ht]\begin{center}
\small\begin{tabular}{ll}
\hline
Gonilnik naprave  & Disk \\
\hline
\texttt{/dev/hda}	& Nadrejeni disk IDE, primarno vodilo IDE.\\
\texttt{/dev/hdb}	& Podrejeni disk IDE, primarno vodilo IDE.\\
\texttt{/dev/hdc}	& Nadrejeni disk IDE, sekundarno vodilo IDE.\\
\texttt{/dev/hdd}	& Podrejeni disk IDE, sekundarno vodilo IDE.\\
\end{tabular}\normalsize
\caption{Imena gonilnikov naprav IDE}
\label{table-ide-device-drivers}
\end{center}\end{table}

Ta imena naprav uporabljajo tudi pogoni CD-ROM in tračne enote, ki
uporabljajo razširjeni vmesnik pogona IDE/ATAPI.

Mnogi stroji, vključno z osebnimi računalniškimi delovnimi postajami
zgornjega razreda in stroji, ki tečejo na procesorju Alpha izdelovalca
Digital Equipment Corporation, pa uporabljajo vmesnik SCSI (angl.\
Small Computer System Interface, sistemski vmesnik za male
računalnike).  Poimenovalni dogovori za naprave SCSI se zaradi večje
prožnosti naslavljanja SCSI nekako razlikujejo od zgornjih.  Prvi trdi
disk SCSI na sistemu je \texttt{/dev/sda}, drugi disk SCSI je
\texttt{/dev/sdb} in tako naprej.  Seznam pogostih naprav SCSI je
podan v tabeli~\ref{table-scsi-devices}.

\begin{table}[ht]\begin{center}
\small\begin{tabular}{ll}
\hline
Gonilnik naprave	& Pogon \\
\hline
\texttt{/dev/sda}	& Prvi trdi disk SCSI.\\
\texttt{/dev/sdb}	& Drugi trdi disk SCSI.\\
\texttt{/dev/st0}	& Prvi tračni pogon SCSI.\\
\texttt{/dev/st1}	& Drugi tračni pogon SCSI.\\
\texttt{/dev/scd0}	& Prvi pogon CD-ROM SCSI.\\
\texttt{/dev/scd1}	& Drugi pogon CD-ROM SCSI.\\
\end{tabular}\normalsize
\caption{Gonilniki naprav SCSI}
\label{table-scsi-devices}
\end{center}\end{table}

Upoštevajte, da se CD-ROM-i in tračni pogoni imenujejo drugače kot
trdi diski SCSI.  Odstranljivi mediji SCSI, kot je pogon Iomega Zip,
upoštevajo poimenovalne dogovore za ne-odstranljive pogone SCSI.
Uporaba pogona Zip za izdelovanje varnostnih kopij vaših podatkov je
opisana od strani~\pageref{sec-zip-backup} naprej.

Tokovni tračni pogoni, % (?) streaming tape drives
kot so tisti, ki berejo in pišejo magnetne trakove formatov QIC-02,
QIC-40 in QIC-80, imajo svoj lastni nabor imen naprav, ki so
opisane na strani~\pageref{sec-tape-backups}.

Disketni pogoni uporabljajo spet drugo shemo poimenovanja, ki je
opisana na strani~\pageref{sec-backfloppy}.


\subsection{Preverjanje datotečnih sistemov}\label{sec-checking-file-system}

Navadno je dobro vsake toliko časa pregledati vaše datotečne sisteme,
ali vsebujejo pokvarjene datoteke.  Nekateri sistemi samodejno
preverjajo datotečne sisteme v času zagona (z ustreznimi ukazi v
\texttt{/etc/rc} ali \texttt{/etc/init.d/boot}).

Ukaz za preverjanje datotečnega sistema je odvisen od vrste datotečnega
sistema.  Za datotečne sisteme ext2fs (najpogosteje uporabljano vrsto)
je ta ukaz \texttt{e2fsck}.  Na primer, ukaz
\begin{tscreen}
\# \emph{e2fsck -av /dev/hda2}
\end{tscreen}
preveri datotečni sistem ext2fs na \texttt{/dev/hda2} in samodejno
odpravi vsakršne napake.

Navadno je koristno odklopiti datotečni sistem pred njegovim
preverjanjem, to je celo potrebno, če ga namerava \texttt{e2fsck}
popravljati.  Ukaz
\begin{tscreen}
\# \emph{umount /dev/hda2}
\end{tscreen}
odklopi datotečni sistem na \texttt{/dev/hda2}.  Izjema je korenski
datotečni sistem, ki ga ni mogoče odklopiti.  Za preverjanje
korenskega datotečnega sistema, ko je odklopljen, bi morali uporabiti
vzdrževalno zagonsko/korensko disketo (glejte
stran~\pageref{sec-maint-diskette}).  Datotečnega sistema tudi ne
morete odklopiti, če je katerakoli od datotek, ki jih vsebuje,
>>zasedena<< -- se pravi, če jo uporablja katerikoli tekoči proces.
Na primer, ne morete odklopiti datotečnega sistema, če je na njem
trenutni delovni imenik kateregakoli uporabnika.  Namesto tega boste
prejeli sporočilo o napaki zasedenosti naprave >>\texttt{Device
busy}<<.

Drugi tipi datotečnih sistemov uporabljajo drugačne oblike ukaza
\texttt{e2fsck}, kot sta \texttt{efsck} in \texttt{xfsck}.  Na nekaterih
sistemih lahko preprosto uporabite ukaz \texttt{fsck}, ki samodejno
ugotovi tip datotečnega sistema in izvede ustrezni ukaz.

\blackdiamond
Če \texttt{e2fsck} poroča, da je izvedel popravila na priklopljenem
datotečnem sistemu, \emph{morate} takoj ponovno zagnati računalnik.
Izdati morate ukaz \texttt{shutdown -r} s katerim se izvede ponovni zagon.
To dovoljuje sistemu, da spet uskladi informacije o datotečnem
sistemu, ki ga je \texttt{e2fsck} spremenil.

Datotečnega sistema \texttt{/proc} ni treba nikoli preveriti na
ta način.  \texttt{/proc} je pomnilniški datotečni sistem in ga
neposredno upravlja jedro.
