% 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".
%
% Este fichero es de distribuci\'on libre, pero debe mantenerse esta 
% informaci\'on de Copyright en todas las copias, y debe distribuirse solo como
% parte de "Instalaci\'on y Primeros Pasos en Linux". El uso de este fichero esta
% cubierto por el Copyright del documento completo, en el fichero "copyright.tex"
% Copyright (c) 1995 por Gerardo Izquierdo para la versi\'on al Castellano
% $Log: emergency.tex,v $
% Revision 0.5.0.1  1996/02/10 23:45:12  rcamus
% Primera beta publica
%
%

\section{Qu\'e Hacer En Una Emergencia}

\index{emergencias!recuperaci\'on de|(}
\index{desastres!recuperaci\'on de|(}
En algunas ocasiones, el administrador de sistemas se encuentra con el 
problema de recuperarse de un desastre completo, como puede ser el 
olvidarse la palabra clave del usuario ra\'\i z, o el enfrentarse 
con sistemas de ficheros da\~nados. El mejor 
consejo es, {\em obrar sin p\'anico.} Todo el mundo comete errores 
est\'upidos ---\'esta es la mejor forma de aprender sobre 
administraci\'on de sistemas: la forma dif\'\i cil.

Linux no es una versi\'on inestable de UNIX. De hecho, he tenido menos problemas
con cuelgues de sistemas Linux que con versiones comerciales de UNIX en 
muchas plataformas. Linux tambi\'en se beneficia de un fuerte complemento de 
asistentes que pueden ayudar a salir del agujero.

El primer paso al investigar cualquier problema es intentar arreglarlo 
uno mismo. Hurgue alrededor, vea c\'omo funcionan las cosas. Demasiadas 
veces, un administrador de sistemas pondr\'a un mensaje desesperado 
rogando ayuda antes de investigar el problema. Muchas de las veces, 
encontrar\'a que arreglar problemas por uno mismo es realmente muy 
f\'acil. Este es el camino que debe seguir para convertirse en un gur\'u.

Hay pocos casos en los que sea necesario reinstalar el sistema desde cero.
Muchos nuevos usuarios borran accidentalmente alg\'un fichero esencial del 
sistema, e inmediatamente acuden a los discos de instalaci\'on. Esta no 
es una buena idea. Antes de tomar medidas dr\'asticas como esa, 
investigar el problema y preguntar a otros ayudar\'a a solucionar las 
cosas. En pr\'acticamente todos los casos, podr\'a recuperar el sistema 
desde un disquete de mantenimiento.

\subsection{Recuperaci\'on utilizando un disquete de mantenimiento}
\label{sec-maint-diskette}
\index{desastres!recuperaci\'on de!con disquete de mantenimiento}
\index{emergencias!recuperaci\'on de!con disquete de mantenimiento}
\index{arrancando!de un disquete de mantenimiento}
\index{disquete de mantenimiento}
\index{disquete de arranque}
\index{disquette!arranque/ra\'\i z}
\index{disquette!de mantenimiento}
Una herramienta indispensable para el administrador de sistemas es el 
llamado ``disco arranque/ra\'\i z'' (``boot/root disk'') ---un disquete 
desde el que se puede arrancar un sistema Linux completo, independiente 
del disco duro. Los discos de arranque/ra\'\i z son realmente muy simples 
---se crea un sistema de ficheros ra\'\i z en el disquete, se ponen todas 
las utilidades necesarias en \'el y se instala LILO y un n\'ucleo 
arrancable en el disquete. Otra t\'ecnica es usar un disquete para el 
n\'ucleo y otro para el sistema de ficheros ra\'\i z. En cualquier caso, 
el resultado es el mismo: Ejecutar un sistema Linux completamente desde 
disquete.

El ejemplo m\'as claro de un disco de arranque/ra\'\i z son los discos de 
arranque Slackware\footnote{V\'ease la 
secci\'on~\ref{sec-getting-internet} para la informaci\'on sobre c\'omo 
obtener \'esta desde Internet. Para este procedimiento, no se necesita 
obtener la versi\'on completa de Slackware ---solo los disquetes de 
arranque y ra\'\i z.}. Estos disquetes contienen un n\'ucleo arrancable y 
un sistema de ficheros ra\'\i z, todo en disquete. Est\'an dise\~nados 
para usarse en la instalaci\'on de la distribuci\'on Slackware, pero 
vienen muy bien cuando hay que hacer mantenimiento del sistema.

El disco de arranque/ra\'\i z de H.J Lu, disponible en 
{\tt /pub/Linux/GCC/rootdisk} en {\tt sunsite.unc.edu}, es otro ejemplo de 
este tipo de discos de mantenimiento. O, si se es ambicioso, se puede crear
uno su propio disco. En muchos casos, sin embargo, la utilizaci\'on de un 
disco de arranque/ra\'\i z prefabricado es mucho m\'as simple y 
probablemente ser\'a m\'as completo.

La utilizaci\'on de un disco de arranque/ra\'\i z es muy simple. Tan 
s\'olo arranque
el sistema con el disco, y haga login como {\tt root} (normalmente sin 
password). Para poder acceder a los ficheros del disco duro, se necesitar\'a 
montar el sistema de ficheros a mano. Por ejemplo, el comando
\begin{tscreen}
\# {\em mount -t ext2 /dev/hda2 /mnt}
\end{tscreen}
montar\'a un sistema de ficheros ext2fs existente en {\tt /dev/hda2} bajo
{\tt /mnt}. Recuerde que {\tt /} es ahora el propio disco de arranque/ra\'\i z;
se necesitar\'a montar los sistemas de ficheros de su disco duro bajo alg\'un
directorio para poder acceder a los ficheros. Por lo tanto, el fichero {\tt 
/etc/passwd} de su disco duro es ahora {\tt /mnt/etc/passwd} si se 
mont\'o el sistema de ficheros ra\'\i z bajo {\tt /mnt}.

\subsection{Arreglando la password de root}
\index{password!arreglando la de root}
\index{root!arreglando la password de}
Si se olvida de la password de root, no hay problema. S\'olo hay que
arrancar del disco de arranque/ra\'\i z, montar su sistema de ficheros ra\'\i z
en {\tt /mnt}, y eliminar el campo de password de {\tt /root} en
{\tt /mnt/etc/passwd}, como por ejemplo:
\begin{tscreen}
root::0:0:root:/:/bin/sh
\end{tscreen}
Ahora {\tt root} no tiene password; al rearrancar desde el disco duro 
deber\'\i a ser capaz de hacer login como {\tt root} y poner la password
que desee utilizando {\tt passwd}.

?`No le gust\'o el haber aprendido a utilizar {\tt vi}? En su disco de 
arranque/ra\'\i z probablemente no estar\'an disponibles otros editores como 
pueda ser Emacs, pero {\tt vi} deber\'\i a estarlo.

\subsection{Arreglando sistemas de ficheros corrompidos}
\index{sistemas de ficheros!arreglando corrompidos}
\index{e2fsck@{\tt e2fsck}}
\index{fsck@{\tt fsck}}
Si se corrompiese de alguna forma el sistema de ficheros, se puede ejecutar
{\tt e2fsck} (si se usa el sistema de ficheros ext2fs, por supuesto) para
corregir desde disquete cualquier dato da\~nado en el sistema de ficheros.
Otros tipos de sistemas de ficheros utilizan diferentes formas de comando 
{\tt fsck}; v\'ease la Secci\'on~\ref{sec-manage-fs} para m\'as detalles.

Cuando se comprueba el sistema de ficheros desde disquete, es mejor que
no est\'e montado.

\index{super bloque!definici\'on}
\index{super bloque!corrompido, arreglo}
Una causa com\'un de da\~no en un sistema de ficheros es la corrupci\'on del 
super bloque. 
El {\em super bloque\/} es la ``cabecera'' del sistema de ficheros que 
contiene informaci\'on acerca del estado del sistema de ficheros, tama\~no, 
bloques libres, y dem\'as. Si se corrompe el super bloque (por ejemplo,
escribiendo accidentalmente datos directamente a la partici\'on del sistema 
de ficheros), el sistema no puede reconocer nada del sistema de ficheros.
Cualquier intento de montar el sistema de ficheros fallar\'a y {\tt e2fsck} no
ser\'a capaz de arreglar el problema.

Felizmente, el tipo de sistema de ficheros {\em ext2fs} salva copias del
super bloque en los l\'\i mites de ``grupos de bloques'' en el disco 
---normalmente cada 8K bloques. Para poder decirle al {\tt e2fsck} que 
utilice una copia del super bloque, se puede utilizar un comando tal que
\begin{tscreen}
\# {\em e2fsck -b 8193 \cparam{partici\'on}}
\end{tscreen} 
donde \cparam{partici\'on} es la partici\'on en la que reside el sistema de 
ficheros. La opci\'on {\tt -b 8193} le dice al {\tt e2fsck} que utilice la copia
del super bloque almacenada en el bloque 8193 del sistema de ficheros.

\subsection{Recuperando ficheros perdidos}
\index{ficheros!recuperaci\'on}
Si accidentalmente se borrasen ficheros importantes del sistema no 
habr\'\i a
forma de ``desborrarlos''. Sin embargo, se pueden copiar los ficheros
relevantes desde el disquete al disco duro. Por ejemplo, si se hubiese borrado
{\tt /bin/login} de su sistema (que le permite hacer login), simplemente
arranque del disquete de arranque/ra\'\i z, monte el sistema de ficheros ra\'\i z
en {\tt /mnt}, y use el comando
\begin{tscreen}
\# {\em cp -a /bin/login /mnt/bin/login}
\end{tscreen}
La opci\'on {\tt -a} le dice a {\tt cp} que conserve los permisos en los
ficheros que se est\'an copiando.

Por supuesto, si los ficheros que se borraron no fueses ficheros esenciales 
del sistema que tengan contrapartidas en el disquete de arranque/ra\'\i z, se
habr\'a acabado la suerte. Si se hicieron copias de seguridad, siempre se
podr\'a recuperar de ellas.

\subsection{Arreglando librer\'\i as corrompidas}
\index{librer\'\i as!arreglando corrompidas}
Si accidentalmente se llegasen a corromper las librer\'\i as de enlaces 
simb\'olicos en {\tt /lib}, es m\'as que seguro que comandos que dependan de 
estas librer\'\i as no vuelvan a funcionar (V\'ease la 
secci\'on~\ref{sec-upgrade-libs}). La soluci\'on m\'as simple es arrancar 
del disquete de arranque/ra\'\i z, montar el sistema de ficheros ra\'\i z 
y arreglar las librer\'\i as en {\tt /mnt/lib}.

\index{emergencias!recuperaci\'on de|)}
\index{desastres!recuperaci\'on de|)}
