GNU/Linux >> Tutoriels Linux >  >> Linux

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

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

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

Informations de base

/etc/fstab a le fsck ordre 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 en /etc/default/rcS

Cela changera le fsck en réparation automatique, mais pas forcer une vérification fsck.

À partir 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.

À partir 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 par

Paramétrer les éléments suivants

FSCKFIX=yes

dans le fichier

/etc/default/rcS

Vérifiez et notez la dernière vérification de fs :

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

Ces deux options n'ont PAS fonctionné

  1. Passant -F (force fsck au redémarrage) argument à shutdown :

    shutdown -rF now
    

    Non; voir :man shutdown .

  2. Ajout du /forcefsck fichier vide avec :

    touch /forcefsck
    

    Ces scripts semblent utiliser ceci :

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

    n'a PAS fonctionne 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
    

    Ceux-ci semblent être les journaux pour le init scripts.

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

Ces deux méthodes ont fonctionné

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

    Modification du grub principal fichier de configuration :

    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"
    

    Remarque :Ce DID une vérification, mais pour forcer un correctif également, vous devez spécifier fsck.repair="preen" , ou fsck.repair="yes" .

  2. Utiliser tune2fs pour 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 Le 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 FAIT fonctionne comme vérifié avec :

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

Résumé

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


Enquête plus approfondie et mises à jour sur la réponse existante

Je voulais maintenant juste vérifier si ce qui précède fonctionne toujours sur les systèmes basés sur Ubuntu 20.04 LTS (directement testé sur Linux Mint 20 Cinnamon et Ubuntu MATE 20.04 ), et j'ai découvert quelques choses, commençons par l'intervalle de vérification du système de fichiers (j'ai exécuté toutes les commandes en tant que root (comme vous pouvez le remarquer ~# devant les commandes) :

Intervalle de vérification du système de fichiers

~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Check interval'

Check interval:           0 (<none>)

Eh bien, c'était inattendu. Je pensais que nous nous en étions occupés, mais heureusement, cela peut être réparé très facilement. Prenez note, le nombre qu'il prend comme argument est par défaut en jours, alors assurez-vous d'utiliser 1s (1 seconde) au lieu de seulement 1 ce qui signifierait 1 jour (86400 secondes) :

~# LC_ALL=C tune2fs -i 1s /dev/nvme0n1p2

tune2fs 1.45.5 (07-Jan-2020)
Setting interval between checks to 1 seconds

Maintenant, si nous répétons la vérification ci-dessus, nous obtenons :

Check interval:           1 (0:00:01)

Cela ne signifie pas que le système de fichiers sera vérifié toutes les secondes, bien sûr. Au lieu de cela, cela forcera la vérification du système de fichiers à chaque montage de système de fichiers. (Comme il n'y a aucun moyen de démarrer un système deux fois en une seconde.)

Nombre maximal de montages du système de fichiers avant vérification

Paramètre par défaut :

~# LC_ALL=C tune2fs -l /dev/nvme0n1p2 | grep 'Maximum mount count'

Maximum mount count:      -1

Ce paramètre ajuste le nombre de montages nécessaires pour que le système de fichiers soit vérifié. C'est ok ce qui est écrit dans la réponse d'origine :

~# LC_ALL=C tune2fs -c 1 /dev/nvme0n1p2

tune2fs 1.45.5 (07-Jan-2020)
Setting maximal mount count to 1

Assurez-vous simplement de ne pas utiliser 0 ou -1 car cela serait ignoré.

J'ajouterai probablement plus d'informations plus tard... Alors, continuez à vérifier (jeu de mots).

Sources d'informations :

  • tune2fs page de manuel

Linux
  1. 10 exemples de commandes Linux Fsck pour vérifier et réparer le système de fichiers

  2. Comment forcer la vérification du système de fichiers racine à l'aide de fsck lors du redémarrage

  3. Quelle est la différence de rediriger une sortie en utilisant >, &>, >&et 2&> ?

  4. Quelle est la différence entre la section et le segment au format de fichier ELF

  5. Quelles sont les différences entre `chattr +i FILE` et `chmod -w FILE` ?

Qu'est-ce que le noyau Linux et devez-vous mettre à niveau vers le dernier noyau ?

Comment forcer la vérification du système de fichiers "FSCK" sur Ubuntu

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

Que signifie l'attribut "s" dans les autorisations de fichiers ? ?

Qu'est-ce que la fonctionnalité de la communauté ONLYOFFICE et pourquoi devriez-vous l'utiliser ?

Quelles tailles devez-vous allouer à /, /boot, /home et swap