GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Wie erzwinge ich die Überprüfung des Root-Dateisystems (und optional einen Fix) beim Booten?

Gestern fiel einer unserer Computer auf grub Shell oder ehrlich gesagt bin ich mir nicht sicher, welche Shell es war, als wir die Maschine einschalteten.

Es zeigte sich, dass das Root-Dateisystem oder etwas in diesem Sinne aufgrund von Inkonsistenzen nicht gemountet werden kann.

Ich bin gerannt, glaube ich:

fsck -fy /dev/sda2

Neustart und das Problem war weg.

Hier kommt der Fragenteil:

Ich habe bereits in der Crontab ihres Stammverzeichnisses:

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

während das Skript enthält:

#!/bin/bash
touch /forcefsck

Wenn ich darüber nachdenke, weiß ich nicht, warum ich eine Skriptdatei für einen so kurzen Befehl erstellt habe, aber trotzdem …

Weiter in der Datei:

/etc/default/rcS

Ich habe definiert:

FSCKFIX=yes

Also ich verstehe es nicht. Wie konnte die Situation überhaupt entstehen?

Was soll ich tun, um die Überprüfung des Root-Dateisystems (und optional eine Korrektur) beim Booten zu erzwingen?

Oder sind diese beiden Dinge das Maximum, das ich tun kann?

Betriebssystem: Linux Mint 18.x Cinnamon 64-Bit.

fstab :

cat /etc/fstab | grep ext4

zeigt:

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

grub :

fsck.mode=force

wurde bereits zum grub hinzugefügt Konfiguration.

Akzeptierte Antwort:

ext4 Dateisystemprüfung während des Bootens

Getestet auf Betriebssystem:Linux Mint 18.x in einer virtuellen Maschine

Grundlegende Informationen

/etc/fstab hat den fsck order als letzte (6.) Spalte, zum Beispiel:

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

FSCKFIX=yes Variable in /etc/default/rcS

Dadurch wird fsck auf Autofix umgestellt, aber nicht Erzwingen Sie eine fsck-Prüfung.

Von 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.

Von man tune2fs

If you are using journaling on your filesystem, your filesystem
will never be marked dirty, so it will not normally be checked.

Beginnen Sie mit

Folgendes einstellen

FSCKFIX=yes

in der Datei

/etc/default/rcS

Überprüfen und notieren Sie, wann fs zuletzt überprüft wurde:

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

Diese beiden Optionen haben NICHT funktioniert

  1. Übergeben von -F (zwingen Sie fsck on reboot) Argument für shutdown :

    shutdown -rF now
    

    Nö; siehe:man shutdown .

  2. Hinzufügen von /forcefsck leere Datei mit:

    touch /forcefsck
    

    Diese Skripte scheinen dies zu verwenden:

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

    tat NICHT funktioniert beim Neustart, aber die Datei wurde gelöscht.

    Verifiziert von:

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

    Dies scheinen die Protokolle für init zu sein Skripte.

Ich wiederhole, diese beiden Optionen haben NICHT funktioniert!

Verwandte:Kann ein Macbook Snow Leopard und Lion dual booten?

Beide Methoden haben funktioniert

  1. systemd-fsck-Kernel-Boot-Schalter

    Bearbeiten des Haupt-grub Konfigurationsdatei:

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

    Dies hat eine Dateisystemprüfung durchgeführt, wie verifiziert mit:

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

    Hinweis:Diese DID eine Überprüfung, aber um auch eine Korrektur zu erzwingen, müssen Sie fsck.repair="preen" angeben , oder fsck.repair="yes" .

  2. Mit tune2fs um die Anzahl der Dateisystem-Mounts festzulegen, bevor ein fsck ausgeführt wird , man tune2fs

    Die Informationen von
    tune2fs' info is kept in the file system superblock
    

    -c switch legt fest, wie oft das fs gemountet werden soll, bevor das fs geprüft wird.

    sudo tune2fs -c 1 /dev/sda1
    

    Bestätigen Sie mit:

    sudo tune2fs -l /dev/sda1
    

    Dieses HAT funktioniert wie verifiziert mit:

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

Zusammenfassung

Um ein fsck zu erzwingen Verwenden Sie bei jedem Start unter Linux Mint 18.x entweder tune2fs , oder fsck.mode=force , mit optionalem fsck.repair=preen / fsck.repair=yes , wechselt die Kernel-Befehlszeile.


Linux
  1. So machen Sie Dateien und Verzeichnisse unlöschbar, sogar von Root in Linux

  2. So setzen Sie das Root-Passwort unter Linux und FreeBSD zurück

  3. So überprüfen Sie die Betriebssystem- und Linux-Version

  4. Inodes und das Linux-Dateisystem

  5. Linux – Wie ändere ich das vergessene Root-Passwort?

So überprüfen Sie den Runlevel unter Linux

So überprüfen/reparieren Sie das Linux-Dateisystem beim Booten

So überprüfen und reparieren Sie ein Dateisystem in RHEL Linux

So erzwingen Sie die „FSCK“-Dateisystemprüfung auf Ubuntu

So überprüfen Sie den Systemneustartverlauf und die Startzeit in Linux

So mounten und zeigen Sie die ISO-Datei als Root und normaler Benutzer in Linux an