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 Siefsckon reboot) Argument fürshutdown:shutdown -rF nowNö; siehe:
man shutdown. -
Hinzufügen von
/forcefsckleere Datei mit:touch /forcefsckDiese Skripte scheinen dies zu verwenden:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.shtat 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/checkrootDies scheinen die Protokolle für
initzu 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-
grubKonfigurationsdatei:sudoedit /etc/default/grubGRUB_CMDLINE_LINUX="fsck.mode=force"sudo update-grub sudo rebootDies 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 vontune2fsum die Anzahl der Dateisystem-Mounts festzulegen, bevor einfsckausgeführt wird ,man tune2fstune2fs' info is kept in the file system superblock-cswitch legt fest, wie oft das fs gemountet werden soll, bevor das fs geprüft wird.sudo tune2fs -c 1 /dev/sda1Bestätigen Sie mit:
sudo tune2fs -l /dev/sda1Dieses 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.