GNU/Linux >> Tutoriels Linux >  >> Linux

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

Hier, un de nos ordinateurs est tombé sur grub shell ou honnêtement, je ne sais pas de quel shell 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, à cause d'incohérences.

J'ai couru, je crois :

fsck -fy /dev/sda2

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

Voici la partie question :

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

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

alors 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…

Plus loin, dans le fichier :

/etc/default/rcS

J'ai défini :

FSCKFIX=yes

Donc je ne comprends pas. Comment la situation a-t-elle pu 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 est-ce que ces deux choses sont le maximum que je peux faire ?

SE : Linux Mint 18.x Cannelle 64 bits.

fstab :

cat /etc/fstab | grep ext4

affiche :

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

grub :

fsck.mode=force

a déjà été ajouté au grub configuration.

Réponse acceptée :

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 dans /etc/default/rcS

Cela changera le fsck en réparation automatique, mais pas forcer 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 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. Passer -F (force fsck au redémarrage) argument de 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é !

En relation:Un Macbook dual boot Snow Leopard et Lion peut-il démarrer ??

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.


Linux
  1. Comment rendre le fichier et le répertoire ineffaçables, même par racine sous Linux

  2. Comment réinitialiser le mot de passe root sur Linux et FreeBSD

  3. Comment vérifier la version du système d'exploitation et de Linux

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

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

Comment vérifier le niveau d'exécution sous Linux

Comment vérifier/réparer le système de fichiers Linux au démarrage

Comment vérifier et réparer un système de fichiers dans RHEL Linux

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

Comment vérifier l'historique de redémarrage du système et l'heure de démarrage sous Linux

Comment monter et afficher le fichier ISO en tant qu'utilisateur root et régulier sous Linux