Eintrag: Lösung für “Superblock last mount time … is in the future.”

27. Mrz. 2010, 13:32 Uhr | Abgelegt in Linux | Ein Kommentar | 2.605x angesehen

Was macht man, wenn man Linux auf einem Embedded-System ohne RTC, Bildschirm und Tastatur installiert, und bei jedem Booten einen e2fsck-Fehler bekommt, und das System steht?

Checking root file system...fsck from util-linux-ng 2.16.1
ROOT: Superblock last mount time (Fri Mar 26 18:53:39 2010,
   now = Sat Jan  1 00:00:14 2000) is in the future.

ROOT: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
   (i.e., without -a or -p options)

Klar, wir haben keine Hardware-Uhr bzw. keine Stützbatterie, es ist “Sat Jan 1 00:00:14 2000″ (14 Sekunden nach Power-On), NTP läuft so früh noch nicht, und beim letzten Herunterfahren war es März 2010.

Die Lösung ist, diesen Fehler (und nur diesen!) einfach zu ignorieren. Dafür in /etc/e2fsck.conf folgendes einfügen:

# See the e2fsck.conf man page for more info

[options]

# allow fsck to run sanely at any point in time #142850
buggy_init_scripts = yes
broken_system_clock = yes

# allow cancel (CTRL-C)
allow_cancellation = true

[problems]

# Superblock last mount time is in the future 
# (PR_0_FUTURE_SB_LAST_MOUNT).
0x000031 = {
    preen_ok = true
    preen_nomessage = true
}

# Superblock last write time is in the future 
# (PR_0_FUTURE_SB_LAST_WRITE).
0x000032 = {
    preen_ok = true
    preen_nomessage = true
}

Hier steht preen_ok = true für “ignorieren” und preen_nomessage = true für “Nicht melden”. 0×000031 bzw. 0×000031 sind aus den e2fsck-Sourcen, oder auch an anderen Stellen im Netz zu finden.

buggy_init_scripts = 1 ist nur für 24h Toleranz zuständig, schadet aber trotzdem nicht.

Um die lästigen und bremsenden “One of the files in /etc/{conf.d,init.d} or /etc/rc.conf has a modification time in the future“-Meldungen noch los zu werden, kann man in /etc/conf.d/local.stop (oder das Pendent der jewiligen Distribution) noch folgendes einfügen

# /etc/conf.d/local.stop

# Zurueck in die Steinzeit - 01.01.2000, 01:00 Uhr!
touch -t 198001010100 /etc/conf.d/*
touch -t 198001010100 /etc/init.d/*
touch -t 198001010100 /etc/rc.conf

um die beanstandeten Dateien dür das nächste Booten auf den 01.01.1980, 01:00 Uhr zu setzen.

Eine Möglich keit ist natürlich auch, Laufzeit-Basierte fsck’s auf dem Dateisystem mit tune2fs -i 0 /dev/sdx komplett auszuschalten,.

Um was es geht?

Ein Alix.2D2 – Board mit Gentoo als Router.

Edit (22.04.2011):

In der Schweiz hat man nachgedacht – das Alix 2d13 z.B. hat eine RTC-Batterie – soeben bestellt.

Ein Kommentar zu 'Lösung für “Superblock last mount time … is in the future.”'

Kommentare zu 'Lösung für “Superblock last mount time … is in the future.”' als RSS oder TrackBack.
  1. #1
    Kommentar von AceX5 am 02.07.2010 um 16:57 Uhr

    Habe genau das gleiche Problem mit meinem alten iBook G4. Die System Clock setzt sich sobald das System stromlos ist auf 1970 zurück. Mittlerweile scheint das Problem jedoch in e2fsprogs 1.41.12 behoben zu sein. Da die Version noch nicht im Portage ist, habe ich es in einem Overlay Repo gebaut. Im Anschluss funktioniert broken_system_clock auch auf meinem System ohne Probleme.

    Aus den Release Notes…
    E2fsck now will completely skip time-based checks if the system clock looks insane or the option broken_system_clock is set in /etc/e2fsck.conf.

    AceX5

Schreibe einen Kommentar

Erlaubte Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


neun + 3 =