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.
Desde 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.
Desde 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 del
init
guiones.
Repito, ¡estas dos opciones NO funcionaron!
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"
. -
Usando
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.
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 y Ubuntu MATE 20.04), 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 comprobació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 eso, pero afortunadamente se puede arreglar muy fácilmente. Tome nota, el número que toma como argumento está predeterminado 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 será revisado cada segundo, por supuesto. Más bien, en efecto forzará la verificación del sistema de archivos en cada montaje del sistema de archivos. (Ya que no hay forma de iniciar un sistema dos veces en un segundo).
Número máximo de montajes del sistema de archivos antes de comprobar
Configuración predeterminada:
~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Maximum mount count'
Maximum mount count: -1
Esta configuración ajusta cuántos montajes se necesitan hasta que se verifica 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