martes, 21 de abril de 2009

FSCK (File System Consistency checK)

FSCK (File System Consistency checK):
Es una utilidad de Linux que se utiliza ante alguna inconsistencia del sistema de archivos para corregir los posibles errores en el sistema. Fsck se ejecuta automáticamente al inicio del sistema ante alguna anomalía, pero también puede ser utilizada manualmente por el administrador del sistema para forzar un chequeo.
Para verificar un sistema de archivos es muy aconsejable hacerlo mientras éste está desmontado.La sintaxis básica de esta utilidad es:
fsck [-opciones]  /dev/hdX  ( o sdX) donde debemos sustituir [-opciones] por el parámetro que queramos usar y hdX ( sdX) por el nombre de la partición que queramos verificar.

Las opciones básicas son:

-a confirmar automáticamente. No recomendado.
-c comprobar bloques en el disco.
-f forzar el chequeo aunque todo parezca ok.
-v (verbose) despliega más información.
-r Modo interactivo. Espera nuestra respuesta.
-y asume yes de respuesta.

Para saber mas sobre este comando puedes abrir una terminal y escribir: man fsck ( o man e2fsck ) y pulsa enter. Fsck significa “file system consistency check” ( y el comando e2fsck es similar, pero para usarlo si la partición es del tipo ext2 ). ( fsck es para particiones de tipo ext3 ).

-------------------------------------------------

Uso automático de fsck en el inicio del sistema: El comando fsck se ejecuta automáticamente en el inicio del sistema, cada 20 inicios,  sobre la-s partición-es que se indique en el archivo /etc/fstab.

En dicho archivo al final de la linea de cada partición hay una opción "pass": Este campo le sirve al comando fsck para identificar los sistemas de ficheros cuya consistencia hay que comprobar en el siguiente reinicio, y el orden en el que hay que efectuar esa comprobación. Si su valor es 0 o falta el programa fsck asume que no es necesario comprobar el sistema de ficheros asociado a la línea en /etc/fstab , y el sistema no realizara nunca ninguna pasada para comprobar la integridad del dispositivo físico ( normalmente ponemos 0 en el cdrom, dvd, disquet, pendrive y partición swap), y por ello es recomendable tenerlo en activado en las particiones : para la partición / usamos 1 , y 2 para el resto de las particiones: el sistema realizara una pasada cada X desmontadas ( en Guadalinex creo que es cada 20 reinicios del sistema ) o si el dispositivo ha sido desmontado incorrectamente para comprobar su integridad.

-Podemos cambiar el número de reinicios al cabo de los que se hará un fsck automático, ejecutando en la terminal un comando similar a:
$> sudo tune2fs -c 25 /dev/partición
En este caso 25 es el número de reinicios.

-Si queremos cambiar el fsck automático, en función no del número de reinicios, sino del tiempo pasado desde la última vez que se hizo el fsck,  ejecutamos en la terminal un comando similar a:
sudo tune2fs -i 1w /dev/partición
El parámetro 1w es una semana,  10d para diez días,  6m  para seis mes.
Ejemplos
sudo tune2fs -i 3m /dev/sda1 (cada 3 meses)
sudo tune2fs -i 2w /dev/hda3 (cada 2 semanas)
sudo tune2fs -i 8d /dev/sda1 (cada 8 días)

----------------------------------------

Uso manual de fsck por el administrador del sistema:

Para ejecutar el comando debemos arrancar el sistema en el modo "recovery mode" -> desmontar las particiones** : tanto / como  /home  ( o solo la partición raiz /  si /home no es una partición, sino un directorio dependiente de / ) -> ejecutar fsck

1- Para saber que particiones hay en el sistema, se ejecuta el comando fdisk -l ( desde recovery mode no hace falta poner sudo porque ya estas con permisos de root; desde la sesión normal si que habría que poner: sudo fdisk -l )  el cual te dice el sdaX y el sdaY: es decir lista las tablas de particiones: las particiones son usualmente de uno de los siguientes tipos:

/dev/hda    /dev/hdb   ( /dev/hd[a-h]   para   discos   IDE,  ) , o
/dev/sda     /dev/sdb   ( /dev/sd[a-p]    para  discos  SCSI, ) , o
/dev/ed[a-d] para discos ESDI, o
/dev/xd[ab] para discos XT).

2- Una vez hemos sabido cual es la partición-es donde esta el sistema,  ( para verificar un sistema de archivos es muy aconsejable hacerlo mientras éste está desmontado**), si por ejemplo la partición raiz / esta en /dev/sda1 y  la partición /home en /dev/sda2  las desmonto con  sudo umount /dev/sda1 y sudo umount /dev/sda2

3- Ejecuto el comando sudo fsck -c -y /dev/sda1 /dev/sda2 Se tardan un poco, pero te dejan los discos y el sistema super finos

** Como la partición / , donde esta el sistema, no se puede desmontar estando activa, para desmontarla hay que iniciar el pc desde un cd live, y desde él desmontar dicha partición y ejecutar el comando fsck sobre ella. Para ejecutar el fsck sobre la partición /home, si ésta es una partición separada de la / , si que se puede hacer desde el sistema iniciado en el recovery-mode. Es decir:

fsck sobre particiones que no sean del sistema (pendrives, discos duros externos, particiones con datos compartidos con Windows, partición de Windows, etc) : hacerlo desde recovery-mode:
fsck sobre la partición / : hacerlo desde un cd live
fsck sobre la partición /home: hacerlo desde recovery-mode

--------------------------------------------

A partir de la página: http://vidanix.com/ws/2007/10/12/como-configurar-el-fsck-para-que-no-escanee-errores-cuando-iniciamos-nuestra-maquina/ se puede llegar a esta otra: https://wiki.ubuntu.com/AutoFsck desde la que te puedes bajar ese programa: Autofsck

Una vez instalado el programa, para acceder a él y cambiar la configuración hay que ejecutar el comando siguiente en la terminal: sudo /usr/bin/autofsck --menu para ejecutarlo con permisos de root.

--------------------------------------------
Añadido/Editado:
Para reparar particiones ntfs:
Primero debemos instalar ntfs-3g (para montar discos ntfs) y ntfsprogs (utilidades para ntfs).
Luego en la terminal ejecutar: man ntfsfix para saber mas sobre ese comando.

A continuación ejecutamos desde un terminal:
ntfsfix /dev/sdX

Nos reparará la partición. Luego la montamos con:
mount -t ntfs-3g /dev/sdX /media/windows/

Sustituye sdX por la partición real en la que tengas la partición ntfs ( sda , sda1, etc )

Leído en http://dev-rockcesar.blogspot.com.es/2012/04/reparar-disco-con-fsck-y-ntfsfix.html
Yo no lo he probado.

16 comentarios:

  1. I Lost Thirty Póunds in Only a Monthjueves, mayo 07, 2009 1:16:00 a. m.

    Hi, good post. I have been wondering about this topic,so thanks for writing. I'll likely be subscribing to your posts. Keep up the good work

    ResponderEliminar
  2. gracias me funciono a la perfeccion con un paso :) viva ubuntu

    ResponderEliminar
  3. Excelente con este articulo pude recuperar la informacion de uno de mis equipos y era vital, muchas gracias por compartir

    ResponderEliminar
  4. una pregunta para ke desmonto las particiones desmonto las particione???
    no puedo ejecutar de una vez el comando el comando sudo fsck -c -y /dev/sda1 /dev/sda2???

    ResponderEliminar
  5. Para ejecutar el comando fsck sobre una partición, ésta tiene que estar previamente desmontada.

    ResponderEliminar
  6. Hola, Muchas Gracias por esta explicación, mi fedora se acaba de romper y gracias a tu post lo he restaurado =)

    Saludos

    ResponderEliminar
  7. Gracias de verdad, fue de gran utilidad este tutorial, y con tu permiso le haré replica en mi blog.

    ResponderEliminar
  8. GRACIAS, solo es una palabra, pero no tengo otra forma de mostrar agradecimiento por la ayuda y el tiempo dedicado.

    ResponderEliminar
  9. woooooow por fin encuentro alguien que explica de una forma decente, te lo agradezco.
    Saludos

    ResponderEliminar
  10. Excelente 100% le felicito por su iniciativa de hacer de este mundo libre, sin mezquindad de conocimientos. GNU LINUX es lo mejor, todo el mundo tiene que empezar a dar aunque sea el primer paso hacia la libertad y quitarnos las cadenas de MS. Con personas como usted al frente de esta batalla venceremos.

    ResponderEliminar
  11. El parámetro -c sólo existe para e2fsck, no en fsck, no sirve para particiones FAT32. No sé cómo hacer lo mismo con particiones FAT, cómo eventualmente usar badblocks. ¿testdrive? ¿smartmontools?

    ResponderEliminar
    Respuestas
    1. Lee este artículo: http://askubuntu.com/questions/147228/how-to-repair-a-corrupted-fat32-file-system

      Primero debes instalar dosfstools:

      sudo apt-get install dosfstools

      El comando para reparar es:

      sudo dosfsck -t -a /dev/sdb1

      Eliminar
  12. Quise decir "testdisk", Partition scanner and disk recovery tool.

    ResponderEliminar
    Respuestas
    1. testdisk es para recuperar información de discos con sectores dañados, formateo o algún daño lógico. Los daños físicos son más difíciles de recuperar.

      Puedes encontrar más información sobre testdisk en:

      http://dev-rockcesar.blogspot.com/2012/04/recuperando-particiones-perdidas-con.html

      Eliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.