LILO bootet nicht nach Update bei einer mit reiserfs formatierten Rootpartition

Supportdatenbank (fhassel_lilo_reiserfs)
Bezieht sich auf

SuSE Linux: Versionen ab 7.2

Symptom

Sie haben ein Update von einer SuSE Version früher als 7.2 auf eine aktuelle Version durchgeführt. Das installierte System läßt sich jedoch nach einem Reboot nicht mehr starten. Stattdessen erhalten Sie eine Fehlermeldung wie diese:
Kernel panic: VFS: Unable to mount root fs on 03:03
Ihre Rootpartition ist mit reiserfs formatiert.

Ursache

Reiserfs-Unterstützung ist seit der SuSE Linux Version 7.2 nicht mehr im Kernel einkompiliert, sondern wird als Modul geladen. Das Dateisystem kann während des Bootvorgangs nicht mehr ohne weiteres eingebunden werden.

Lösung

Binden Sie das Modul reiserfs in die INITRD (initial ramdisk) ein.

Hintergrund: Durch das Benutzen einer initial ramdisk, in der das reiserfs Modul eingebunden ist, wird beim Booten gleich nach dem Starten des Kernels das Modul geladen, noch bevor das Root-Dateisystem gemountet wird.

Gehen Sie wie folgt vor:

Bis einschließlich SuSE Linux Version 7.3

Booten Sie Ihr installiertes System mithilfe der Installations-CD. Um das Modul reiserfs in die initrd einzubinden, tragen Sie entweder das Modul direkt die in diese Datei /etc/rc.config (Variable INITRD_MODULES) ein und rufen anschliessend in einer root-Shell das Skript
mk_initrd
auf, oder Sie starten dazu YaST (1). Wechseln Sie in YaST in den Dialog

  1. Suchen Sie nach der Variable INITRD_MODULES (z. B. mit der Suchfunktion, Taste F4).
  2. Überprüfen Sie mit der Taste F3, ob hier der Eintrag reiserfs besteht. Falls nicht, fügen Sie ihn hinzu (mit einem Leerzeichen als Abstandhalter zu evtl. bestehenden Einträgen).
  3. Mit F10 verlassen Sie diese Maske. Beenden Sie auch YaST.

Rufen Sie danach das Script auf, mit dem die initrd neu erstellt wird. Geben Sie in eine root-Shell bitte folgendes ein:

mk_initrd
Lesen Sie weiter im Abschnitt Alle Versionen.

Ab SuSE Linux Version 8.0

Ab SuSE Linux 8.0 befindet sich der Eintrag für die INITRD in der Datei /etc/sysconfig/kernel. Entweder tragen Sie das Modul reiserfs direkt die in diese Datei (Variable INITRD_MODULES) ein und rufen anschliessend in einer root-Shell das Skript
mk_initrd
auf, oder Sie benutzen dazu YaST2. Starten Sie zu diesem Zweck das YaST2 Kontrollzentrum und wechseln in den folgenden Dialog:

  1. Wählen Sie Suche und geben Sie in die Suchmaske INITRD_MODULES ein.
  2. Falls im folgenden Feld mehr als ein Treffer angezeigt wird, wählen Sie bitte INITRD_MODULES aus.
  3. Überprüfen Sie ob hier der Eintrag reiserfs besteht. Falls nicht, fügen Sie ihn hinzu (mit einem Leerzeichen als Abstandhalter zu evtl. bestehenden Einträgen).
  4. Wählen Sie Speichern und bestätigen Sie die Sicherheitsabfrage mit einem Klick auf OK.

Nun können Sie YaST2 verlassen. Rufen Sie danach das Script auf, mit dem die initrd neu erstellt wird:
mk_initrd

Alle Versionen

Waren für die initrd noch keine Module definiert, so müssen Sie nun noch in der Konfigurationsdatei des Bootloaders LILO eine Anpassung vornehmen. Öffnen Sie dazu die Datei /etc/lilo.conf mit einem Editor Ihrer Wahl und suchen Sie den folgenden Abschnitt (je nach SuSE Version können die Bezeichnungen der Einträge variieren):
image = /boot/vmlinuz
  root = /dev/ ...
  label = linux

image = /boot/vmlinuz.suse
  root = /dev/ ...
  label = suse
  optional
Ändern Sie diese Zeilen wie folgt um:
image = /boot/vmlinuz
  root = /dev/ ...
  initrd = /boot/initrd          # diese Zeile bitte nachtragen
  label = linux

image = /boot/vmlinuz.suse
  root = /dev/ ...
  initrd = /boot/initrd.suse     # diese Zeile bitte nachtragen
  label = suse
  optional
Danach muß der Bootloader LILO noch aktualisiert werden. Dies geschieht durch den Aufruf
lilo
(Falls Sie via Lilo-Bootdiskette booten, legen Sie diese Diskette bitte vor dem Aufruf in das Laufwerk ein).

Weitere Informationen zur initrd finden Sie im Kapitel "Booten mit der 'initial ramdisk'" in Ihrem Referenz-Handbuch (ab SuSE 8.0 im Administrationshandbuch). Ebenso finden Sie an dieser Stelle weitere Informationen zum Bootloader Lilo.


Siehe auch:
o Booten mit der initial ramdisk
o Bootkonzept ab SuSE Linux 6.3
o LOADLIN bootet nicht bei einer mit reiserfs formatierten Rootpartition

Stichwörter: LILO, REISERFS, BOOT, BOOTEN, 7.2

Kategorien: LILO

SDB-fhassel_lilo_reiserfs, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 02. Jul 2001
SuSE Linux AG - Zuletzt generiert: 31. Jan 2003 von fhassel (sdb_gen 1.40.0)