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
-
Pasando
-F
(forzarfsck
al reiniciar) argumento parashutdown
:shutdown -rF now
No; ver:
man shutdown
. -
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
-
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"
ofsck.repair="yes"
. -
Uso de
tune2fs
para establecer el número de montajes del sistema de archivos antes de hacer unfsck
,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.