![Una unidad de disco duro con código binario escrito encima.](https://systempeaker.com/wp-content/uploads/2021/10/hard-drive-with-binary.png)
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 utilizar el fsck
comando 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. En realidad, se debe crear un sistema de archivos antes de poder instalar el sistema operativo en el disco duro. Tiene que haber algo para guardar los archivos del sistema operativo. Por eso, se crea un sistema de archivos a lo largo del procedimiento de instalación.
Los sistemas de archivos son creados por software, escritos por software y leídos por software. Como ya sabrás, todo software complejo tiene errores. Nuestros datos son de vital relevancia para nosotros, por lo que confiamos mucho en los sistemas de archivos y el software que los crea y los utiliza. Si algo sale mal, podemos perder el acceso a partes del sistema de archivos o inclusive 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.
los fsck
El comando le posibilita verificar que sus sistemas de archivos estén en buen estado. Si encuentra algún problema, regularmente además puede solucionarlo por usted.
Realizar las comprobaciones previas al vuelo
Usando fsck
necesita privilegios de sudo. Cualquier comando que pueda llevar a cabo cambios en un sistema de archivos debe tratarse con precaución y restringirse a aquellos que conocen 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 utilizar fsck
debe asegurarse de que lo va a usar en la unidad correcta. Entonces, antes de hacer algo con fsck
, vamos a hacer un poco de acreditación.
Empezaremos con fdisk
y canalizarlo en less
. No estamos solicitando información sobre una partición específica. Usando el -l
opción (lista) fdisk
enumera las tablas de particiones en todos los dispositivos que encuentra en el archivo “/ proc / partitions”, si existe.
sudo fdisk -l | less
Podemos ver las entradas para /dev/sda
y /dev/sdb
. Puede desplazarse por el archivo para ver cualquier otra entrada que pueda existir en su computadora.
Las particiones en /dev/sda
se 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
mando. Usaremos el 'print'
opción para mostrar las tablas de particiones en la ventana del terminal.
sudo parted /dev/sda 'print'
Esta vez obtenemos información adicional, incluido el tipo de sistema de archivos en cada partición.
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 34.4GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 540MB 538MB fat32 EFI System Partition boot, esp 3 540MB 34.4GB 33.8GB ext4
Hay tres unidades en esta computadora de prueba. Estos son los resultados de las otras dos unidades. /dev/sdb
y /dev/sdc
. Tenga en cuenta que estos sistemas de archivos no disponen el campo «Nombre».
sudo parted /dev/sdb 'print'
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 21.5GB 21.5GB primary ext4
sudo parted /dev/sdc 'print'
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdc: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 21.5GB 21.5GB primary ext3
La segunda y la tercera unidades disponen el mismo tamaño y cada una cuenta con una sola partición. Pero el sistema de archivos de la segunda unidad es ext4
y el sistema de archivos de la tercera unidad es el más antiguo ext3
.
Pasamos un identificador de partición a fsck
y comprueba el sistema de archivos de esa partición. Pero no podemos correr fsck
en 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 eso, el sistema de archivos.
Podemos averiguarlo fácilmente usando el df
mando.
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 chequear. Vamos a trabajar en el sistema de archivos en la primera (y única) partición de /dev/sdb
, cual es /dev/sdb1
. Vimos antes que esta es una ext4
sistema de archivos, y está montado en «/ run / mount / dave / sata2».
Usaremos el umount
mando. Tenga en cuenta que no hay «n» en «umount».
sudo umount /run/mount/dave/sata2
Con umount
, La ausencia de malas noticias son buenas noticias. Si regresa silenciosamente al símbolo del sistema, estamos listos para comenzar.
sudo fsck /dev/sdb1
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. Además podemos mirar el código de retorno que fsck
regresó al caparazón.
echo $?
El valor devuelto de cero indica que no hay errores. Los posibles códigos de retorno son:
- 0: Sin errores
- 1: Errores del sistema de archivos corregidos
- 2: El sistema debe reiniciarse
- 4: Errores del sistema de archivos que no se han corregido
- 8: Error operativo
- dieciséis: Error de uso o de sintaxis
- 32: Verificación cancelada por solicitud del usuario
- 128: Error de biblioteca compartida
Pese a que se informa que el sistema de archivos está limpio, podemos forzar que se realice una verificación del sistema de archivos, usando el -f
Opción (forzar).
sudo fsck /dev/sdb1 -f
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 verdaderamente limpio y no se informan errores. Si se encuentran problemas mientras se realizan las pruebas, se le pedirá que permita fsck
solucione el problema o ignore el error.
Cuando haya terminado de probar, debe volver a montar el sistema de archivos. La forma más sencilla de hacer esto es utilizar mount
con el -a
(todos) opción. 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
Tenga en cuenta que no es necesario que se lo diga fsck
qué 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 en /dev/sdc1
, los ext3
sistema de archivos en nuestra PC de prueba, usando exactamente el mismo comando que usamos en /dev/sdb1
, que es un ext4
dividir.
sudo fsck /dev/sdc1 -f
Es factible que no desee sumergirse de forma directa en la reparación del sistema de archivos. Tal vez prefieras mirar antes de saltar. Puedes pedir fsck
no ofrecer arreglar nada y simplemente informar problemas a la ventana de la terminal. los -N
La opción (ejecución en seco) hace exactamente eso:
sudo fsck -N /dev/sdb1
Lo contrario de eso es contar fsck
para no molestarse en preguntar si encuentra algún error, y simplemente seguir adelante y solucionarlo. Para hacer esto, use el -y
(sin avisos) opción.
sudo fsck -y /dev/sdb1
Usando fsck en la partición raíz
No puedes utilizar fsck
en una partición montada, pero para arrancar su computadora, la partición raíz debe estar montada. Entonces, ¿cómo podemos correr? fsck
en la partición raíz? La solución es interrumpir el procedimiento de arranque y ejecutar fsck
en modo de recuperación.
Mientras su computadora se está iniciando, mantenga presionada la tecla «Shift». Si lo ha cronometrado correctamente, no arrancará en Linux. El procedimiento de arranque se detendrá en un menú en blanco y negro. La máquina de prueba utilizada para este post ejecutaba Ubuntu, pero otras distribuciones disponen el mismo tipo de menú, aún cuando puede variar en apariencia. Donde dice «Ubuntu» en las capturas de pantalla, tendrá el nombre de su distribución.
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 próxima pantalla.
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 chequear todos los sistemas de archivos» y presione la tecla «Tab» para mover el resaltado al botón «Aceptar». Presiona «Enter».
Verá una notificación de que la partición raíz se montará junto con cualquier otra partición establecida en su archivo “/ etc / fstab”.
Presione la tecla «Tab» para mover el resaltado al botón «Sí» y presione «Entrar».
Verás fsck
ejecutar en modo interactivo. Si hay problemas, se le pedirá que deje fsck
arreglarlos o ignorarlos. Cuando se hayan verificado los sistemas de archivos, volverá a ver 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 procedimiento 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 un motivo. Conozca el fsck
mando. Si surge la necesidad de usarlo con ira algún día, se alegrará de haberse familiarizado con anticipación.