Que dois-je faire pour forcer la vérification du système de fichiers racine (et éventuellement un correctif) au démarrage?

10

Hier, un de nos ordinateurs est tombé en grubcoquille ou honnêtement, je ne sais pas de quoi il s'agissait lorsque nous avons allumé la machine.

Il a montré qu'il ne peut pas monter le système de fichiers racine ou quelque chose dans ce sens, en raison d'incohérences.

J'ai couru, je crois:

fsck -fy /dev/sda2

Redémarré et le problème avait disparu.

Voici la partie question:

J'ai déjà dans le crontab de sa racine:

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

tandis que le script contient:

#!/bin/bash
touch /forcefsck

En y réfléchissant, je ne sais pas pourquoi j'ai créé un fichier de script pour une commande aussi courte, mais de toute façon ...

De plus, dans le dossier:

/etc/default/rcS

J'ai défini:

FSCKFIX=yes

Donc je ne comprends pas. Comment la situation pourrait-elle même se produire?


Que dois-je faire pour forcer la vérification du système de fichiers racine (et éventuellement un correctif) au démarrage?

Ou ces deux choses sont-elles le maximum que je peux faire?

Système d' exploitation: Linux Mint 18.x Cinnamon 64 bits.

fstab:

cat /etc/fstab | grep ext4

montre:

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

grub:

fsck.mode=force

a déjà été ajouté à la grubconfiguration.

LinuxSecurityFreak
la source

Réponses:

12

ext4 vérification du système de fichiers lors du démarrage

Testé sur OS: Linux Mint 18.x dans une machine virtuelle

Informations de base

/etc/fstaba l' fsckordre comme dernière (6e) colonne, par exemple:

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

FSCKFIX=yes variable dans /etc/default/rcS

Cela changera le fsck en correction automatique, mais ne forcera pas une vérification 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.

Commencer avec

Réglage des éléments suivants

FSCKFIX=yes

dans le fichier

/etc/default/rcS

Vérifiez et notez la dernière fois que fs a été vérifié:

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

Ces deux options n'ont PAS fonctionné

  1. Passer l' argument -F(forcer fsckau redémarrage) à shutdown:

    shutdown -rF now
    

    Nan; voir: man shutdown.

  2. Ajout du /forcefsckfichier vide avec:

    touch /forcefsck
    

    Ces scripts semblent utiliser ceci:

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

    n'a PAS fonctionné au redémarrage, mais le fichier a été supprimé.

    Vérifié par:

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

    Il semble que ce soient les journaux des initscripts.

Je le répète, ces deux options n'ont PAS fonctionné!


Ces deux méthodes ont fonctionné DID

  1. Commutateurs de démarrage du noyau systemd-fsck

    Modification du grubfichier de configuration principal :

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

    Cela a fait une vérification du système de fichiers comme vérifié avec:

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

    Note: Cette SAVIEZ un chèque, mais pour forcer une solution aussi, vous devez spécifier fsck.repair="preen", ou fsck.repair="yes".

  2. Utilisant tune2fspour définir le nombre de montages du système de fichiers avant de faire un fsck,man tune2fs

    tune2fs' info is kept in the file system superblock
    

    -c commutateur définit le nombre de fois pour monter le fs avant de vérifier le fs.

    sudo tune2fs -c 1 /dev/sda1
    

    Vérifiez avec:

    sudo tune2fs -l /dev/sda1
    

    Ce SAVIEZ travail vérifié avec:

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

Sommaire

Pour forcer un fsckà chaque démarrage sur Linux Mint 18.x, utilisez soit tune2fs, soit fsck.mode=force, avec fsck.repair=preen/ facultatif fsck.repair=yes, les commutateurs de ligne de commande du noyau.

jc__
la source