Cómo usar el comando fsck en Linux

Una unidad de disco duro con código binario escrito encima.
Pixza Studio / Shutterstock

Todos nuestros datos importantes se encuentran en un sistema de archivos de un tipo u otro, y es probable que surjan problemas con el sistema de archivos. En Linux, podemos usar el fsckcomando para buscar y corregir errores del sistema de archivos.

Los sistemas de archivos son software

Los sistemas de archivos son uno de los componentes más críticos de una computadora. Sin un sistema de archivos, la computadora no puede almacenar ningún dato en un disco duro, ya sea un disco mecánico giratorio o un disco de estado sólido . De hecho, se debe crear un sistema de archivos antes de poder instalar el sistema operativo en el disco duro. Tiene que haber algo para almacenar los archivos del sistema operativo. Por lo tanto, se crea un sistema de archivos durante el proceso de instalación.

Los sistemas de archivos son  creados por software , escritos por software y leídos por software. Como sabes, todo software complejo tiene errores. Nuestros datos son de vital importancia para nosotros, por lo que confiamos mucho en los sistemas de archivos y el software que los crea y los usa. Si algo sale mal, podemos perder el acceso a partes del sistema de archivos o incluso a una partición completa.

Los  sistemas de archivos de registro por diario modernos  son mejores para manejar los problemas que pueden ser causados ​​por una pérdida repentina de energía o un bloqueo del sistema. Son robustos, pero no invencibles. Si sus  tablas internas se codifican  , pueden perder la pista de dónde reside cada archivo en la unidad, qué tamaño tiene, qué nombre tiene y qué permisos de archivo están establecidos en ellos.

El fsckcomando le permite verificar que sus sistemas de archivos estén en buen estado. Si encuentra algún problema, normalmente también puede solucionarlo por usted.

Realizar las comprobaciones previas al vuelo

El uso fsckrequiere privilegios de sudo . Cualquier comando que pueda realizar cambios en un sistema de archivos debe tratarse con precaución y restringirse a aquellos que saben lo que están haciendo.

Los pilotos no se suben a un avión, lo ponen en marcha y vuelan hacia el azul pálido de allí. Realizan comprobaciones previas al vuelo. Hay mucho en juego para hacer lo contrario. Es un buen hábito para desarrollar. Antes de usarlo fsck, debe asegurarse de que lo usará en la unidad correcta. Entonces, antes de hacer algo con fsck, vamos a hacer un poco de reconocimiento.

Empezaremos fdisky lo introduciremos less. No estamos solicitando información sobre una partición específica. Al usar la -lopción (lista), se fdiskenumeran las tablas de particiones en todos los dispositivos que encuentra en el archivo “/ proc / partitions”, si existe.

sudo fdisk -l | menos

Podemos ver las entradas de /dev/sday /dev/sdb. Puede desplazarse por el archivo para ver cualquier otra entrada que pueda existir en su computadora.

Relacionado:  Novedades de iOS 14.6 y iPadOS 14.6

Observe la salida en la ventana del terminal.

Las particiones en /dev/sdase enumeran como /dev/sda1, /dev/sda2, y /dev/sda3. Entonces tenemos tres particiones en la primera unidad. Podemos ver un poco más de información usando el parted comando. Usaremos la 'print'opción para mostrar las tablas de particiones en la ventana del terminal.

sudo parted / dev / sda 'imprimir'

Obtenga información sobre tablas de particiones

Esta vez obtenemos información adicional, incluido el tipo de sistema de archivos en cada partición.

Modelo: DISCO DURO ATA VBOX (scsi) 
Disco / dev / sda: 34,4 GB 
Tamaño del sector (lógico / físico): 512B / 512B 
Tabla de particiones: gpt 
Banderas de disco:

Número Inicio Fin Tamaño Nombre del sistema de archivos Banderas 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 Arranque de partición del sistema EFI, esp 
3540 MB 34,4 GB 33,8 GB ext4

Hay tres unidades en esta computadora de prueba. Estos son los resultados de las otras dos unidades  /dev/sdby /dev/sdc. Tenga en cuenta que estos sistemas de archivos no tienen el campo «Nombre».

sudo parted / dev / sdb 'imprimir'
Modelo: DISCO DURO ATA VBOX (scsi) 
Disco / dev / sdb: 21,5 GB 
Tamaño del sector (lógico / físico): 512B / 512B 
Tabla de particiones: msdos 
Banderas de disco:

Número Inicio Fin Tamaño Tipo Sistema de archivos Banderas 
1 1049kB 21.5GB 21.5GB primario ext4
sudo parted / dev / sdc 'imprimir'
Modelo: DISCO DURO ATA VBOX (scsi) 
Disco / dev / sdc: 21,5 GB 
Tamaño del sector (lógico / físico): 512B / 512B 
Tabla de particiones: msdos 
Banderas de disco:

Número Inicio Fin Tamaño Tipo Sistema de archivos Banderas
1 1049kB 21.5GB 21.5GB primario ext3

La segunda y la tercera unidades tienen el mismo tamaño y cada una tiene una sola partición. Pero el sistema de archivos de la segunda unidad sí lo es ext4y el sistema de archivos de la tercera unidad es el más antiguo ext3.

Pasamos un identificador de partición a fscky verifica el sistema de archivos en esa partición. Pero no podemos ejecutar fscken un sistema de archivos montado. Necesitamos desmontar la unidad. Para hacer eso, necesitamos saber el punto de montaje en el que está montada la partición y, por lo tanto, el sistema de archivos.

Podemos averiguarlo fácilmente usando el dfcomando.

df / dev / sdb1
df / dev / sdc1

Usando el comando fsck

Tenemos toda la información que necesitamos. Lo primero que haremos es desmontar el sistema de archivos que vamos a comprobar. Vamos a trabajar en el sistema de archivos en la primera (y única) partición de /dev/sdb, que es /dev/sdb1. Vimos anteriormente que este es un ext4sistema de archivos y está montado en «/ run / mount / dave / sata2».

Relacionado:  Cómo encontrar valores con ÍNDICE en Microsoft Excel

Usaremos el umountcomando. Tenga en cuenta que no hay «n» en «umount».

sudo umount / ejecutar / mount / dave / sata2

Utilice el comando umount para desmontar el sistema de archivos.

Con umount, ninguna noticia es una buena noticia. Si regresa silenciosamente al símbolo del sistema, estamos listos para comenzar.

sudo fsck / dev / sdb1

Utilice el comando fsck para verificar el estado del sistema de archivos.

Se informa que este sistema de archivos está limpio. Eso significa que el sistema de archivos informa que no tiene errores ni problemas. No se realiza automáticamente una verificación más profunda del sistema de archivos. También podemos mirar el código de retorno que fsckregresó al shell.

echo $?

El valor devuelto de cero indica que no hay errores. Los posibles códigos de retorno son:

  • : sin errores
  • 1 : errores del sistema de archivos corregidos
  • 2 : el sistema debe reiniciarse
  • 4 : errores del sistema de archivos que no se corrigen
  • 8 : error operativo
  • 16 : Error de uso o sintaxis
  • 32 : Verificación cancelada por solicitud del usuario
  • 128 : error de biblioteca compartida

A pesar de que se informa que el sistema de archivos está limpio, podemos forzar que se realice una verificación del sistema de archivos mediante la -fopción (forzar).

sudo fsck / dev / sdb1 -f

Forzar una verificación del sistema de archivos usando la opción forzar en un comando fsck

Esta vez, la comprobación tarda más en completarse, pero realiza una prueba más exhaustiva del sistema de archivos. Nuestro sistema de archivos estaba realmente limpio y no se informan errores. Si se encuentran problemas mientras se realizan las pruebas, se le pedirá que permita fscksolucionar el problema o ignorar el error.

Cuando haya terminado de probar, debe volver a montar el sistema de archivos. La forma más sencilla de hacer esto es usar mountcon la -aopción (todos). Esto comprueba en “/ etc / fstab” la lista de sistemas de archivos y se asegura de que estén todos montados tal como lo harían después de un arranque normal.

sudo mount -a

Vuelva a montar el sistema de archivos usando el comando mount

Tenga en cuenta que no necesitamos decir fsckqué tipo de sistema de archivos hay en una partición; la utilidad lo determina examinando el sistema de archivos. Eso significa que podemos forzar una verificación del sistema de archivos /dev/sdc1, el ext3sistema de archivos en nuestra PC de prueba, usando exactamente el mismo comando que usamos /dev/sdb1, que es una ext4partición.

sudo fsck / dev / sdc1 -f

Use el comando fsck para forzar una verificación del sistema de archivos

Es posible que no desee sumergirse directamente en la reparación del sistema de archivos. Quizás prefieras mirar antes de saltar. Puede pedir que fsckno se ofrezca a arreglar nada y solo informar los problemas en la ventana de la terminal. La -Nopción (ejecución en seco) hace precisamente eso:

sudo fsck -N / dev / sdb1

Antes de reparar un sistema de archivos, realice una prueba

Lo opuesto a eso es decirle fsckque no se moleste en preguntar si encuentra algún error, y simplemente seguir adelante y solucionarlo. Para hacer esto, use la -yopción (sin avisos).

sudo fsck -y / dev / sdb1

Usando fsck en la partición raíz

No puede usar fscken una partición montada, pero para arrancar su computadora, la partición raíz debe estar montada. Entonces, ¿cómo podemos ejecutar fscken la partición raíz? La respuesta es interrumpir el proceso de arranque y ejecutarlo fscken modo de recuperación.

Relacionado:  Cómo verificar qué sitios web pueden acceder a su ubicación en Safari

Mientras su computadora se está iniciando, mantenga presionada la tecla «Shift». Si lo ha cronometrado correctamente, no arrancará en Linux. El proceso de arranque se detendrá en un menú en blanco y negro. La máquina de prueba utilizada para este artículo ejecutaba Ubuntu, pero otras distribuciones tienen el mismo tipo de menú, aunque puede variar en apariencia. Donde dice «Ubuntu» en las capturas de pantalla, tendrá el nombre de su distribución.

Menú de recuperación con el elemento del menú de opciones avanzadas seleccionado

Mueva la barra resaltada con las teclas «Flecha arriba» y «Flecha abajo» para que se seleccione el elemento de menú «Opciones avanzadas para Ubuntu». Presiona «Enter» para pasar a la siguiente pantalla.

Menú de recuperación con el elemento de menú "modo de recuperación" seleccionado

Seleccione la opción que termina con «(modo de recuperación)». En nuestro ejemplo, es «Ubuntu, con Linux 5.11.0-20-genérico (modo de recuperación)». Presione la tecla «Enter».

Verás el menú de recuperación. Seleccione «fsck comprobar todos los sistemas de archivos» y presione la tecla «Tab» para mover el resaltado al botón «Aceptar». Presiona «Enter».

Menú de recuperación con fsck seleccionado

Verá una notificación de que la partición raíz se montará junto con cualquier otra partición definida en su archivo “/ etc / fstab” .

Seleccione sí para iniciar fsck en modo interactivo

Presione la tecla «Tab» para mover el resaltado al botón «Sí» y presione «Entrar».

Verás fsckcorrer en modo interactivo. Si hay problemas, se le pedirá que los fscksolucione o que los ignore. Cuando se hayan verificado los sistemas de archivos, verá nuevamente el menú de recuperación.

Seleccione la opción «reanudar», presione la tecla «Tab» para mover el resaltado al botón «Aceptar» y presione «Entrar». El proceso de arranque se reanudará y arrancará en Linux.

El inicio del modo de recuperación puede afectar a algunos controladores, por lo que es una buena práctica reiniciar una vez más, tan pronto como inicie Linux. Esto asegura que su computadora esté funcionando de manera estándar.

Cuando las cosas van mal

Las redes de seguridad están ahí por una razón. Conozca el fsckcomando. Si surge la necesidad de usarlo con ira algún día, se alegrará de haberse familiarizado con anticipación.