Ich arbeite mit einem System, bei dem Benutzer nach Belieben mit Datum und Uhrzeit herumspielen können und bei dem Neustarts willkürlich erfolgen können. Dies ist in Ordnung, abgesehen von einer Sache: Wenn es einen großen Zeitsprung nach hinten gibt, wird beim Neustart der folgende Fehler angezeigt:
Checking filesystems
IMAGE2: Superblock last mount time (Tue Mar 1 17:32:48 2011,
now = Thu Feb 24 17:34:29 2011) is in the future.
IMAGE2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
… Und dann bleibt der Start hängen und wartet auf Benutzerkonsolen-Eingaben. Selbst wenn der Konsolenzugriff erfolgt ist, muss ein Root-Kennwort eingegeben werden, um fortzufahren.
Dies ist entschieden weniger als ideal. Gibt es eine Möglichkeit, die Überprüfung zu überspringen oder zu erzwingen, dass sie beim Neustart automatisch ausgeführt wird?
Google hat nur Hilfe bereitgestellt, bei der fsck manuell ausgeführt werden muss, wenn / wenn dies getroffen wird. Dies ist nicht das, wonach ich suche. Manuelles Ausführen von fsck nach dem Einstellen der Zeit funktioniert nicht, da das Dateisystem zu diesem Zeitpunkt noch gemountet ist und nur das vollständige Deaktivieren von fsck nicht optimal ist.
Ich benutze RedHat 6.
Update : Die Lösung, mit der ich derzeit arbeite, ist, fstab zu hacken, um die fsck-Prüfung beim Neustart zu deaktivieren. Ich habe versucht, die letzte Bereitstellungszeit auf den Datenträgern mit zu bearbeiten debugfs
, was für ext3-Laufwerke gut funktioniert, auf ext4 jedoch inkonsistent zu scheitern scheint.
Ich bezweifle, dass es eine Möglichkeit gibt, diese Prüfung zu entfernen, abgesehen von der Änderung des Quellcodes. Alle Fehler von fsck zu ignorieren klingt gefährlich. Was, wenn es ein anderes Problem gab?
Daher schlage ich die folgende Problemumgehung vor: Ändern Sie die Boot-Skripte, um das Systemdatum auf einen späteren Zeitpunkt zu setzen (z. B. 2038-01-18 auf einem 32-Bit-Computer), bevor Sie fsck ausführen, und lesen Sie es von der Hardware zurück Uhr danach (
hwclock --hctosys
mit mehr Optionen je nach Hardware und Verwendung von GMT in der Hardware-Uhr)quelle
Dies hört sich so an, als ob es in einer virtuellen Maschine ausgeführt werden sollte, in der Sie mehr Kontrolle haben (oder einfach zu einem Snapshot zurückkehren können).
quelle
Hier ist eine Lösung, die für mich großartig funktioniert hat:
Erstellen Sie /etc/e2fsck.conf:
Mehr zu diesem Fix hier:
http://stillstup.blogspot.com/2010/02/superblock-last-mount-time-is-in-future.html
quelle