GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo hacer para forzar la verificación del sistema de archivos raíz (y, opcionalmente, una solución) en el arranque?

Ayer, una de nuestras computadoras bajó a grub shell o, sinceramente, no estoy seguro de qué shell era cuando encendimos la máquina.

Mostró que no puede montar el sistema de archivos raíz o algo por el estilo, debido a las inconsistencias.

Corrí, creo:

fsck -fy /dev/sda2

Se reinició y el problema desapareció.

Aquí viene la parte de la pregunta:

Ya tengo en el crontab de su root:

@reboot /home/ruzena/Development/bash/fs-check.sh

mientras que el script contiene:

#!/bin/bash
touch /forcefsck

Pensando en ello, no sé por qué creé un archivo de script para un comando tan corto, pero de todos modos...

Además, en el archivo:

/etc/default/rcS

He definido:

FSCKFIX=yes

Así que no lo entiendo. ¿Cómo podría surgir la situación?

¿Qué debo hacer para forzar la comprobación del sistema de archivos raíz (y, opcionalmente, una corrección) en el arranque?

¿O estas dos cosas son lo máximo que puedo hacer?

SO: Linux Mint 18.x Canela de 64 bits.

fstab :

cat /etc/fstab | grep ext4

muestra:

UUID=a121371e-eb12-43a0-a5ae-11af58ad09f4    /    ext4    errors=remount-ro    0    1

grub :

fsck.mode=force

ya fue agregado al grub configuración.

Respuesta aceptada:

ext4 verificación del sistema de archivos durante el arranque

Probado en OS:Linux Mint 18.x en una máquina virtual

Información básica

/etc/fstab tiene el fsck orden como la última (sexta) columna, por ejemplo:

<file system>    <mount point>    <type>    <options>    <dump>    <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1

FSCKFIX=yes variable en /etc/default/rcS

Esto cambiará el fsck a corrección automática, pero no forzar una comprobación de fsck.

De man rcS :

FSCKFIX
    When  the  root  and all other file systems are checked, fsck is
    invoked with the -a option which means "autorepair".   If  there
    are  major  inconsistencies then the fsck process will bail out.
    The system will print a  message  asking  the  administrator  to
    repair  the  file  system manually and will present a root shell
    prompt (actually a sulogin prompt) on the console.  Setting this
    option  to  yes  causes  the fsck commands to be run with the -y
    option instead of the -a option.  This will tell fsck always  to
    repair the file systems without asking for permission.

De man tune2fs

If you are using journaling on your filesystem, your filesystem
will never be marked dirty, so it will not normally be checked.

Empezar con

Configuración de lo siguiente

FSCKFIX=yes

en el archivo

/etc/default/rcS

Verifique y anote la última vez que se verificó fs:

sudo tune2fs -l /dev/sda1 | grep "Last checked"

Estas dos opciones NO funcionaron

  1. Pasando -F (forzar fsck al reiniciar) argumento para shutdown :

    shutdown -rF now
    

    No; ver:man shutdown .

  2. Agregar el /forcefsck archivo vacío con:

    touch /forcefsck
    

    Estos scripts parecen usar esto:

    /etc/init.d/checkfs.sh
    /etc/init.d/checkroot.sh
    

    NO funciona al reiniciar, pero el archivo se eliminó.

    Verificado por:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    sudo less /var/log/fsck/checkfs
    sudo less /var/log/fsck/checkroot
    

    Estos parecen ser los registros para el init guiones.

Repito, ¡estas dos opciones NO funcionaron!

Relacionado:¿Puede una Macbook arrancar dualmente Snow Leopard y Lion?

Ambos métodos SÍ funcionaron

  1. conmutadores de arranque del kernel systemd-fsck

    Editando el grub principal archivo de configuración:

    sudoedit /etc/default/grub
    
    GRUB_CMDLINE_LINUX="fsck.mode=force"
    
    sudo update-grub
    sudo reboot
    

    Esto hizo una verificación del sistema de archivos como se verificó con:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

    Nota:Este HIZO una verificación, pero para forzar una solución también, debe especificar fsck.repair="preen" o fsck.repair="yes" .

  2. Uso de tune2fs para establecer el número de montajes del sistema de archivos antes de hacer un fsck , man tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c interruptor establece el número de veces para montar el fs antes de comprobar el fs.

    sudo tune2fs -c 1 /dev/sda1
    

    Verifique con:

    sudo tune2fs -l /dev/sda1
    

    Este HIZO trabajo como verificado con:

    sudo tune2fs -l /dev/sda1 | grep "Last checked"
    

Resumen

Para forzar un fsck en cada arranque en Linux Mint 18.x, use tune2fs o fsck.mode=force , con fsck.repair=preen opcional / fsck.repair=yes , la línea de comando del kernel cambia.


Linux
  1. Linux:¿cómo cambiar la contraseña de root olvidada?

  2. Comprobar y reparar errores del sistema de archivos con el comando fsck en Linux

  3. 10 ejemplos de comandos Fsck de Linux para verificar y reparar el sistema de archivos

  4. Cómo forzar la verificación del sistema de archivos raíz usando fsck durante el reinicio

  5. ¿Cómo puedo verificar la integridad de un archivo avi y repararlo automáticamente en Linux?

Cómo verificar el nivel de ejecución en Linux

Cómo verificar/reparar el sistema de archivos de Linux en el arranque

Cómo comprobar y reparar un sistema de archivos en RHEL Linux

Cómo forzar la verificación del sistema de archivos "FSCK" en Ubuntu

Cómo verificar el historial de reinicio del sistema y el tiempo de inicio en Linux

Cómo montar y ver un archivo ISO como raíz y usuario normal en Linux