... Cannot fsck ...

Post Reply
Message
Author
Lothar

... Cannot fsck ...

#1 Post by Lothar »

Hi,

ich bin noch ein Linux-Newbie und erlebe seit einiger Zeit (keine Ahnung, wie lange genau, weil alles so schnell durchrauscht) beim booten immer wieder die Meldung

*** Error! Cannot fsck because root is not read-only!

Was in den einschlägigen Büchern über 'fsck' hilft mir bei der Interpretation dieser Meldung auch nicht weiter. Vielleicht ist alles ja ganz harmlos, aber wenn mir das einR so sagt, bin ich auch schon zufrieden.

Ich benutze SuSE7.1 mit den kernels 2.2.18 und 2.4.0. Die o.g. Meldung kommt bei beiden kernels.

Danke im voraus.

Lothar

Sebastian Ude

Re: ... Cannot fsck ...

#2 Post by Sebastian Ude »

Also:

Der Kernel mountet das root-Dateisystem zunächst provisorisch (entweder read-only oder im read-write-Modus), da er ja die init aufrufen muss.

In den Initscripts wird dann in der Regel gleich am Anfang die Dateisystemkonsistenz überprüft (fsck), und dann das root-Dateisystem, welches zuvor nur provisorisch vom Kernel gemountet wurde, "sauber" remoutet, d.h. nun wird ein Eintrag in der mtab angelegt, und das Dateisystem im read-write-Modus gemountet, wenn der Kernel es zuvor nur im read-only-Modus gemountet hatte.

Nun weigert sich fsck (aus guten Gründen) strikt, Dateisystemüberprüfungen auf im read-write-Modus gemounteten Dateisystemen durchzuführen.

Sofern deine Distribution in ihren Initscripts fsck aufruft (ist ja bei dir und im Normallfall eigentlich auch immer der Fall), darf das root-Dateisystem also vom Kernel *nie* im read-write-Modus gemountet werden, weil dann der fsck-Aufruf durch die Initscripts mit der Fehlermeldung

"Cannot fsck because root is not read-only!"

oder ähnlich abbricht.


Also, um es noch einmal zusammenzufassen:

Ein sauberer Bootvorgang sieht so aus:

- Kernel mountet root-Dateisystem *read-only* und ruft init auf
- fsck überprüft root-Dateisystem
- root-Dateisystem wird im read-write-Modus sauber remounted

Dein Bootvorgang sieht wahrscheinlich so aus:

- Kernel mountet root-Dateisystem im *read-write*-Modus und ruft init auf
- fsck will root-Dateisystem überprüfen und weigert sich, da es im rw-Modus gemountet ist

Wie stellst du nun also ab, dass der Kernel dein root-Dateisystem unbedingt im read-write-Modus mounten will ?

Ganz einfach.
Schau dir deine /etc/lilo.conf bzw. die Konfigurationsdatei(en) des von dir verwendeten Bootloaders an.

Dort dürftest du eine Zeile mit den an den Kernel übergebenen Bootparametern finden, diese fängt bei lilo mit "append=" an.
In dieser Zeile darf *nicht* 'rw' stehen. Sofern du dort ein 'rw' findest, entferne es, setze (falls du lilo einsetzt) noch einmal ein "lilo" ab (alles als root) und das Problem sollte behoben sein.

Im Falle von lilo kann auch eine Zeile mit dem Inhalt

read-write

der Übetäter sein -> sofern vorhanden, entfernen und "lilo" absetzen.

Lothar

Re: ... Cannot fsck ...

#3 Post by Lothar »

@Sebastian

Danke! Das war eine fundierte Beratung, die auf direktem Weg zur Lösung des Problems geführt hat.

Trotz deiner klar verständlichen Beschreibungen habe ich das Risiko gescheut, 'lilo.conf' direkt zu editieren. Diese Datei enthielt *keine* Zeile "append=...". Dafür stand in der dritten Zeile "read-only", und genau das war seinerzeit der Grund, weshalb ich bei meiner Suche nach der Ursache des fehlgeschlagenen fsck in dieser Richtung nicht weitergeforscht hatte.

Letztlich habe dann ich meinen LILO einfach mittels YaST auf den Ausgangszustand der Erstinstallation zurückkonfiguriert. Damit klappt fsck beim booten wieder! Mir ist immer noch nicht ganz klar, was den dadurch erzeugten neuen 'lilo.conf' von der alten Version hinsichtlich der Funktion unterscheidet, aber dem muss ich halt in einer ruhigen Stunde mal nachgehen.

Nochmals danke!

Lothar

Post Reply