En nuestro Curso Gratuito Linux, hoy vamos a aprender a verificar y reparar nuestro sistema de archivos con el comando fsck.
Aunque me moleste decirlo, seria el equivalente al comando chkdsk de Windows, pero a no confundir eh! esto no significa que uno haya sido consecuencia del otro, simplemente lo menciono ya que seguramente si estas siguiendo mis post, es porque estás empezando en el mundo GNU/Linux y probablemente estés mas familiarizado con los comandos de Windows.
Yendo a lo nuestro, antes que nada, debemos tener bien en claro que NO debemos ejecutar este comando en sistemas de archivos que se encuentran «montados».
Chequeo de sistema de archivo en una particion
Para ver todas las particiones disponibles en el sistema, vamos a utilizar el comando parted (lo instalaremos con el comando aptitude install parted)
# parted /dev/sda 'print' Number Start End Size Type File system Flags 1 1049kB 106MB 105MB primary fat16 diag 2 106MB 15.8GB 15.7GB primary ntfs boot 3 15.8GB 266GB 251GB primary ntfs 4 266GB 500GB 234GB extended 5 266GB 466GB 200GB logical ext4 6 467GB 486GB 18.3GB logical ext2 7 487GB 499GB 12.0GB logical fat32 lba
Para verificar un sistema de archivos específico, en nuestro ejemplo sera /dev/sda6, ejecutaremos:
# fsck /dev/sda6 fsck from util-linux 2.20.1 e2fsck 1.42 (29-Nov-2011) /dev/sda6: clean, 95/2240224 files, 3793506/4476416 blocks
Comando fsck para un sistema de archivos específico
Fsck internamente utiliza un comando específico para cada sistema de archivo. Estos comandos los vamos a encontrar en /sbin
# cd /sbin # ls fsck* fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.ext4dev fsck.minix fsck.msdos fsck.nfs fsck.vfat
Fsck nos informará de un error cuando no encuentra un comando específico para un sistema de archivos dado.
Por ejemplo, si ejecutamos fsck en una partición ntfs, vamos a tener como resultado un mensaje de error. Si observamos más arriba vemos que NO tenemos un fsck.ntfs en /sbin
# fsck /dev/sda2 fsck from util-linux 2.20.1 fsck: fsck.ntfs: not found fsck: error 2 while executing fsck.ntfs for /dev/sda2
Ahora, si no podemos ejecutar fsck con sistemas de archivos que están montados, ¿como hacemos?
O bien nos valemos de live-cd como SystemRescueCD donde vamos a poder trabajar sin problemas ya que no vamos a estar montando nuestro disco, o bien podemos valernos de un truco que consiste en cerar un archivo llamado /forcefsck
Vamos a ver como hacerlo en nuestro Debian, para ello, iniciaremos como super usario root
Con el comando touch vamos a generar un archivo vacio con el nombre fsck en la raiz del sistema.
Vamos a comprobar la existencia del archivo con ls
Ahora simplemente vamos a reiniciar nuestro sistema con el comando shutdown -r now
Cuando el sistema arranca nuevamente, ejecutara el comando fsck y veremos el resultado como se aprecia en la imagen anterior.
Existen muchas mas opciones para la ejecución de fsck, para ello basta con tipear man fsck en nuestro Debian para acceder a las páginas del manual.
Mi consejo es que periódicamente hagan un fsck de vuestro disco. Particularmente lo hago una vez por semana, los días viernes creo el archivo así la próxima vez que prenda mi máquina se corre el comando. ¿Cómo hago?, valiendome de cron 🙂
¿Se acuerdan cuando programamos en el post anterior la sincronización automática de la hora?, bueno… vamos a hacer algo similar para esta creación del archivo /forcefsck
Siempre como root en vamos a editar el archivo crontab tipeando crontab -e
De esta manera, a las 11:00 hs todos los días viernes (el 5 corresponde al viernes) se va a crear el archivo y así, la próxima vez que nuestro sistema arranque, se ejecutará automáticamente fsck
Espero que haya sido útil este aporte y por favor, no dejen de compartir!
Eduardo