% Linux Installation and Getting Started    -*- TeX -*-
% emergency.tex
% Copyright (c) 1993 by Matt Welsh and Lars Wirzenius
%
% 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{Dejanja v sili}
%\markboth{Sistemsko upravljanje}{Dejanja v sili}

\index{sila!okrevanje od|(}
\index{katastrofe!okrevanje od|(}
V nekaterih primerih se bo sistemski upravitelj soočil s problemom
okrevanja od popolne katastrofe, kot je pozaba korenskega gesla ali
sesutje datotečnih sistemov.  Najboljši nasvet je, \emph{brez panike}.
Vsakdo dela neumne napake -- to je najboljši način za učenje
sistemskega upravljanja: trnova pot.

Linux ni nestabilna različica Unixa.  Pravzaprav sem imel manj
problemov z obešanjem sistema kot pri komercialnih različicah Unixa na
veliko platformah.
% (?) Linux also benefits from a
% strong complement of wizards who can help you out of a bind. (The
% \emph{double entendre} is intended.)

Prvi korak samostojne odprave problema je ugotovitev, kje problem
sploh leži.  Brskajte naokoli in opazujte, kako stvari delujejo.
Velikokrat sistemski upravitelj obupano prosi za pomoč, še preden
sploh ve, v čem je problem.  Opazili boste, da je pravzaprav zelo
lahko samostojno odpraviti težave.  To je pot razsvetlitve in
gurujstva.

Obstaja le nekaj primerov, ko je nujna ponovna namestitev sistema od
samega začetka.  Mnogo novih uporabnikov po nesreči pobriše kakšno
nujno potrebno sistemsko datoteko in takoj posežejo po namestitvenih
disketah.  To ni dobra ideja.  Preden uporabite tako drastične ukrepe,
raziščite problem in poprosite druge za pomoč.  V veliko primerih
lahko obnovite vaš sistem z vzdrževalne diskete.

\subsection{Okrevanje z vzdrževalne diskete}
\label{sec-maint-diskette}
\index{katastrofe!okrevanje od!z vzdrževalno disketo}
\index{nujni primeri!okrevanje od!z vzdrževalno disketo}
\index{zagon!z vzdrževalne diskete}
\index{vzdrževalna disketa}
\index{zagonska disketa}
\index{disketa!zagonska/korenska}
\index{disketa!vzdrževalna}
Eno od nepogrešljivih orodij sistemskega upravitelja je tako imenovana
>>zagonska/korenska disketa<< (angl.\ boot/root floppy disk), disketa,
s katere lahko zaženete popoln sistem Linux, neodvisno od vašega
trdega pogona.  Zagonske/korenske diskete so pravzaprav zelo preproste
-- na disketi naredite korenski datotečni sistem, prepišete nanj vse
potrebne pripomočke, namestite LILO in zagonsko jedro na disketo.
Druga tehnika je uporaba ene diskete za jedro in druge za korenski
datotečni sistem.  V vsakem primeru, rezultat je enak: sistem Linux
poganjate popolnoma iz disketne enote.

Kanonični primer zagonske/korenske diskete sta zagonski disketi za
Slackware.  Ti disketi vsebujeta zagonsko jedro in korenski datotečni
sistem, vse na disketi.  Njun namen je namestitev distribucije
Slackware, a prideta prav tudi ob vzdrževanju sistema.

Drug primer vzdrževalne diskete je zagonska/korenska disketa H.\ J.\
Luja, dostopna iz imenika \texttt{/pub/Linux/GCC/rootdisk} na
\texttt{metalab.unc.edu}.  Če ste častihlepni, lahko naredite svojo
lastno.  V večini primerov pa so že narejene zagonske/korenske diskete
veliko preprostejše za uporabo in bodo verjetno tudi popolnejše.

Uporaba zagonske/korenske diskete je zelo preprosta.  Zaženite disketo
na vašem sistemu in se prijavite kot \texttt{root} (navadno brez
gesla).  Za dostop do datotek na trdem pogonu boste morali ročno
priklopiti datotečne sisteme.  Na primer, ukaz
\begin{tscreen}
\# \emph{mount -t ext2 /dev/hda2 /mnt}
\end{tscreen}
bo priklopil datotečni sistem ext2fs na \texttt{/dev/hda2} pod
\texttt{/mnt}.  Ne pozabite, da je zdaj imenik \texttt{/} sama
zagonska/korenska disketa; datotečne sisteme trdega pogona morate
priklopiti pod kak imenik, če želite dostopati do datotek.  Torej je
\texttt{/etc/passwd} na vašem trdem pogonu zdaj
\texttt{/mnt/etc/passwd}, če ste priklopili vaš običajni korenski
datotečni sistem na \texttt{/mnt}. 

\subsection{Poprava korenskega gesla}
\index{geslo!poprava korenskega}
\index{root!poprava njegovega gesla}
Presenetljivo -- če pozabite vaše korensko geslo, to sploh ni problem.
Zaženite zagonsko/korensko disketo, priklopite korenski datotečni
sistem na \texttt{/mnt} in izpraznite polje za geslo uporabnika
\texttt{root} v datoteki \texttt{/mnt/etc/passwd}, kot v tem primeru:
\begin{tscreen}
root::0:0:root:/:/bin/sh
\end{tscreen}
Zdaj \texttt{root} nima gesla.  Ko boste ponovno zagnali sistem s
trdega pogona, bi morali biti sposobni prijave kot \texttt{root} in
ponovne nastavitve gesla z uporabo ukaza \texttt{passwd}.

Kaj niste veseli, da ste se naučili uporabe urejevalnika \texttt{vi}?
Verjetno na vaši zagonski/korenski disketi ne bodo dostopni
urejevalniki, kot je Emacs, toda \texttt{vi} bi moral biti.

\subsection{Sesuti datotečni sistemi}
\index{datotečni sistem!popravilo}
\index{e2fsck@\texttt{e2fsck}}
\index{fsck@\texttt{fsck}}
Če nekako sesujete datotečne sisteme, lahko poženete pripomoček
\texttt{e2fsck} ali ustrezno obliko pripomočka \texttt{fsck} za vaš
tip datotečnega sistema.  (Glejte
stran~\pageref{sec-checking-file-system}.)  V večini primerov je
najvarneje popraviti vse poškodovane podatke na trdem disku z diskete.

%% When checking your file systems from floppy, it's best for the
%% file systems to not be mounted. 

\index{superblok!definicija}
\index{superblok!popravilo}
Pogost vzrok okvare datotečnega sistema je poškodovan superblok.
\textbf{Superblok} (angl.\ super block) je >>glava<< datotečnega
sistema, ki vsebuje informacije o njegovem statusu, velikosti, prostih
blokih in tako naprej.  Če poškodujete superblok (na primer, z
nenamernim pisanjem podatkov neposredno v particijsko tabelo
datotečnega sistema), sistem verjetno sploh ne bo prepoznal
datotečnega sistema.  Poskus priklopa datotečnega sistema bo
neuspešen in \texttt{e2fsck} ne bo mogel odpraviti problema.

Na srečo datotečni sistem ext2fs shranjuje kopije superbloka na mejah
>>skupin blokov<< na pogonu, navadno na vsakih 8~K blokov.  Pripomočku
\texttt{e2fsck} lahko naročite, naj uporabi kopijo superbloka z
ukazom, kot je
\begin{tscreen}
\# \emph{e2fsck -b 8193} \cparam{particija}
\end{tscreen} 
kjer je \textsl{particija} particija, na kateri počiva datotečni
sistem.  Izbira \texttt{-b 8193} pove \texttt{e2fsck}, naj uporablja
kopijo superbloka, shranjeno na bloku številka 8193 v datotečnem
sistemu.

\subsection{Obnova izgubljenih datotek}
\index{datoteke!obnova}
Če pomotoma pobrišete pomembno datoteko na vašem sistemu, ni nobenega
načina, da jo >>povrnete<<.  Včasih pa lahko prepišete ustrezne
datoteke z diskete na vaš trdi pogon.  Če, na primer, zbrišete
\texttt{/bin/login}, ki vam omogoča prijavo, preprosto zaženite sistem
z zagonske/korenske diskete, priklopite korenski datotečni sistem na
\texttt{/mnt} in uporabite ukaz
\begin{tscreen}
\# \emph{cp -a /bin/login /mnt/bin/login}
\end{tscreen}
Izbira \texttt{-a} naroči \texttt{cp}, da ohrani dovoljenja datotek,
ki jih prepisuje.

Seveda, če datoteke, ki ste jih zbrisali, niso potrebne sistemske
datoteke, ki imajo ustreznice na zagonski/korenski disketi, potem
nimate sreče.  Če redno delate varnostne kopije, jih lahko obnovite iz
njih.

\subsection{Sesute knjižnice}
\index{knjižnice!poprava pokvarjenih}
Če pomotoma sesujete vaše knjižnice ali simbolne povezave v imeniku
\texttt{/lib}, ukazi, ki so odvisni od teh knjižnic, zagotovo ne bodo
več delovali (glejte stran~\pageref{sec-upgrade-libs}).
Najpreprostejša rešitev je, da zaženete sistem z vaše
zagonske/korenske diskete, priklopite vaš korenski datotečni sistem in
popravite knjižnice v imeniku \texttt{/mnt/lib}.
Stran~\pageref{sec-upgrade-libs} opisuje, kako namestiti sprotne
knjižnice (angl.\ run time libraries) in njihove simbolne povezave.

\index{sila!okrevanje od|)}
\index{katastrofe!okrevanje od|)}
