Solución:
ext4
comprobación del sistema de archivos durante el arranque
Probado en el sistema operativo: 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 reparación automática, pero no forzar un cheque 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
Establecer 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
-
Paso
-F
(fuerzafsck
al reiniciar) argumento parashutdown
:shutdown -rF now
No; ver:
man shutdown
. -
Añadiendo el
/forcefsck
archivo vacío con:touch /forcefsck
Estos scripts parecen usar esto:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.sh
hizo NO trabajar en el reinicio, pero el archivo se eliminó.
Verificada 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 de
init
guiones.
Repito, ¡estas dos opciones NO funcionaron!
Ambos métodos funcionaron
-
conmutadores de arranque del kernel systemd-fsck
Editando el principal
grub
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 un cheque, pero para forzar una corrección también, debe especificar
fsck.repair="preen"
, ofsck.repair="yes"
. -
Utilizando
tune2fs
para establecer el número de montajes del sistema de archivos antes de realizar unafsck
,man tune2fs
tune2fs' info is kept in the file system superblock
-c
switch establece el número de veces que se monta el fs antes de comprobar el fs.sudo tune2fs -c 1 /dev/sda1
Verificar con:
sudo tune2fs -l /dev/sda1
Esta HIZO trabajar según lo 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 opcional fsck.repair=preen
/ fsck.repair=yes
, la línea de comandos del kernel cambia.
Investigación adicional y actualizaciones sobre la respuesta existente
Ahora solo quería comprobar si lo anterior todavía funciona en Sistemas basados en Ubuntu 20.04 LTS (probado directamente en Linux Mint 20 Cinnamon escritorio amd64 y Ubuntu MATE 20.04 escritorio amd64), y descubrí algunas cosas, comencemos con el intervalo de verificación del sistema de archivos (ejecuté todos los comandos como root (como puede notar ~#
delante de los comandos):
Intervalo de verificación del sistema de archivos
~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Check interval'
Check interval: 0 (<none>)
Bueno, esto fue inesperado. Pensé que nos habíamos ocupado de ello, pero afortunadamente se puede arreglar muy fácilmente. Tome nota, el número que toma como argumento es por defecto en días, así que asegúrese de usar 1s (1 segundo) en lugar de solo 1, lo que significaría 1 día (86400 segundos):
~# LC_ALL=C tune2fs -i 1s /dev/nvme0n1p2
tune2fs 1.45.5 (07-Jan-2020)
Setting interval between checks to 1 seconds
Ahora, si repetimos la verificación anterior, obtenemos:
Check interval: 1 (0:00:01)
Esto no significa que el sistema de archivos se revisará cada segundo, por supuesto. Más bien, en efecto, forzará la verificación del sistema de archivos en cada montaje del sistema de archivos. (Como no hay forma de arrancar ningún sistema dos veces en un segundo).
Número máximo de montajes del sistema de archivos antes de la verificación
Configuración predeterminada:
~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Maximum mount count'
Maximum mount count: -1
Esta configuración ajusta la cantidad de montajes necesarios hasta que se comprueba el sistema de archivos. Está bien lo que está escrito en la respuesta original:
~# LC_ALL=C tune2fs -c 1 /dev/nvme0n1p2
tune2fs 1.45.5 (07-Jan-2020)
Setting maximal mount count to 1
Solo asegúrese de no usar 0 o -1, ya que se ignoraría.
Probablemente agregaré más información más adelante … Entonces, sigue revisando (juego de palabras).
Fuentes de información:
-
tune2fs
página man