Página siguiente Página anterior Índice general

15. Catástrofe !

Este capitulo esta dedicado a los momentos de catástrofe, cuando nada sale bien, y cuando uno tiene ganas de votarlo todo por la ventana...

15.1 Imposible de arrancar !

Tu acabas de iniciar tu maquina, y no puedes arrancar. En este caso, lo mejor es utilizar las disquetes de arranque (las de la Slackware en este caso no están mal). Una vez la maquina comienza, tu montas tu partición raíz copias el núcleo en una nueva disquete lanzando : cat /mnt/vmlinuz > /dev/fd0 por ejemplo. Normalmente, esto debe entonces funcionar si tu núcleo es el correcto. Eventualmente, efectúa un :

 
  rdev /vmlinux /dev/hda2 
para especificar al núcleo cual partición es la raíz del sistema de archivos.

15.2 Formato accidental de una partición

Haz formateado por error une partición donde se encontraba tu informe de stage. Bien, no paniques ! Inútil decirte que es imposible hacer un unformat.

La primera solución de recuperación (muy brutal) es la de hacer un strings /dev/hda3 > Recup. No te queda mas que recorrer el archivo y recuperar lo que se pueda.

Una segunda solución es la de utilizar el script Perl (ver http://www-eleves.enst-bretagne.fr/ aubert/perl/) :

 
  # Autor : aubert@titan.enst-bretagne.fr 
  #!/usr/local/bin/perl 
 
  $maxlines = 20; 
 
  @before = (); 
  $syntaxe = "Syntaxe: cgrep.pl termino_a_buscar archivo_a_recorrer\n"; 
 
  $terme = shift(@ARGV) || die $syntaxe; 
  $fichier = shift(@ARGV) || die $syntaxe; 
 
  open(F, $fichier) || die "Cannot read $fichier: $!\n"; 
 
  # Se llena @before hasta su capacidad máxima ($maxlines) 
  while (($_ = <F>) && (scalar(@before) < $maxlines)) 
  { 
    if (/$terme/ o) 
    { 
      print @before; 
      print $_; 
      & print_next_lines; 
    } 
    push(@before, $_); 
  } 
  # El tablero @before contiene una buena cantidad de elementos, así que se  
  # pasa ahora a  una parte en donde @before guarda un tamaño constante 
  while (<F>) 
  { 
    if (/$terme/o) 
    { 
      print @before; 
      print $_; 
      & print_next_lines; 
    } 
    push(@before, $_); 
    shift(@before); 
  } 
 
  close(F); 
  exit 1; 
 
  sub print_next_lines 
  { 
    for ($i = 0; $i < $maxlines; $i++) 
    { 
      print scalar(<F>); 
    } 
    exit 0; 
  } 

15.3 Problemas con el disco duro : super-bloque

Si el super-bloque esta hecho una nada lanzar e2fsck con las siguientes opciones : e2fsck -b 8193 /dev/sda3. Si no funciona , ensaya aumentando el numero de 8192 a cada vez para ensayar de recuperar una copia del super-bloque en buen estado.

Si esto aun no funciona , ensaye de lanzar el comando mke2fs con la opción -S. Atención no lo olvides, sino reformatarás tu partición! Esta opción provoca la regeneración de las copias del super-bloque y de los descriptores del sistema del archivo. No acaba con los archivos existentes.

15.4 Problemas con el disco duro : bloques defectuosos

Si tu disco tiene algunos problemas (sectores defectuosos), puedes recuperar e2fsck en el paquete e2fsprogs versión 1.06 si tu no lo tienes ya. Luego :

15.5 Señal fatal 11

Ciertas maquinas no podrán funcionar convenientemente y producirán entonces de manera mas o menos aleatoria un mensaje (por ejemplo "fatal signal 11") luego bloquearan brutalmente la ejecución del programa activo. La Causa, la mas probable : problema de material (componentes de memoria demasiado lenta, por ejemplo). Ensaya primero que todo de desbloquear el cache procesador, gracias al "SETUP" de la maquina. Y luego disminuir el nivel de PIO del EIDE (no pasar de PIO 3). Leer a este propósito el documento http://www.bitwizard.nl/sig11/.


Página siguiente Página anterior Índice general