LILO Does Not Boot with a reiserfs-Formatted Root Partition after an Update

Support knowledgebase (fhassel_lilo_reiserfs)
Applies to

SuSE Linux: Version 7.2
This article refers to an older version of SuSE Linux. Some of the information in this article may be outdated. Also, some links may not be valid.

Symptom

You have updated your system from a SuSE Linux version prior to 7.2. to a current version. However, the installed system no longer starts after a reboot. Instead, an error message similar to the following is displayed:
Kernel panic: VFS: Unable to mount root fs on 03:03
Your root partition has been formatted using reiserfs.

Cause:

From SuSE Linux version 7.2 on, reiserfs support is no longer included in the kernel. It is loaded as a module. For this reason, the file system cannot be mounted during the boot process.

Solution:

Integrate the module reiserfs into the INITRD (initial ramdisk).

Background: By using an initial ramdisk in which the module reiserfs is included, the module is loaded during the boot process immediately after starting the kernel, even before the root file system is mounted.

Procedure:

Up to SuSE Linux Version 7.3

Boot your installed system with the installation CD. To integrate the reiserfs module in the initrd, either directly insert the module in the file /etc/rc.config (variable INITRD_MODULES) then execute the following script in a root shell:
mk_initrd
or you can start YaST (1) and select the dialogs

  1. Search for the variable INITRD_MODULES (for example, by using the search function, key F4).
  2. Use F3 to verify if the entry reiserfs is already available. If not, append this entry separating it with a blank from already existing entries.
  3. Leave the dialog with F10 and finish YaST.

Then invoke the script that creates a new initrd. This can be done by entering in a root shell:

mk_initrd
Skip to the section All versions.

From SuSE Linux Version 8.0

From SuSE Linux 8.0 on, the INITRD entry can be found in the file /etc/sysconfig/kernel. Either directly insert the module reiserfs in this file (variable INITRD_MODULES) then execute the following script in a root shell
mk_initrd
or use YaST2. For this purpose, start YaST2 Control Center and change to the dialogs:

  1. Select Search and enter INITRD_MODULES in the search mask.
  2. If more than one result is displayed, select INITRD_MODULES.
  3. Check if the entry reiserfs is already available. If not, append this entry, separating it with a blank from existing entries.
  4. Select Save and answer the confirmation question with OK.

Now leave YaST2 and subsequently execute the script that creates a new initrd:
mk_initrd

All Versions

If there are no modules yet defined for initrd, modify LILO's configuration file. To do this, open the file /etc/lilo.conf with an editor of your choice and search for the following section (it may vary depending on the SuSE version):
image = /boot/vmlinuz
  root = /dev/ ...
  label = linux

image = /boot/vmlinuz.suse
  root = /dev/ ...
  label = suse
  optional
Change these lines to:
image = /boot/vmlinuz
  root = /dev/ ...
  initrd = /boot/initrd          # insert this line
  label = linux

image = /boot/vmlinuz.suse
  root = /dev/ ...
  initrd = /boot/initrd.suse     # insert this line
  label = suse
  optional
Then update the boot loader LILO by executing
lilo
(If you boot via a LILO boot floppy, make sure the floppy disk has been previously inserted).

For further information on initrd, refer to the Chapter "Booting with the 'initial ramdisk'" in your reference manual or administration guide. This manual also includes some information about the boot loader LILO.


See also:
o Booting with the initial ramdisk
o LOADLIN Does Not Boot with a reiserfs-Formatted Root Partition

Keywords: LILO, REISERFS, BOOT, 7.2

Categories: LILO

SDB-fhassel_lilo_reiserfs, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 03. Jul 2001
SuSE Linux AG - Last generated: 23. Jun 2003 by fhassel (sdb_gen 1.40.0)