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
-
Übergeben von
-F
(zwingen Siefsck
on reboot) Argument fürshutdown
:shutdown -rF now
Nö; siehe:
man shutdown
. -
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
-
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 , oderfsck.repair="yes"
. -
Mit
Die Informationen vontune2fs
um die Anzahl der Dateisystem-Mounts festzulegen, bevor einfsck
ausgeführt wird ,man tune2fs
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.