LOADLIN Does Not Boot with a reiserfs-Formatted Root Partition

Support knowledgebase (fhassel_loadlin-reiserfs)
Applies to

SuSE Linux: Versions since 7.2

Symptom:

You have formatted your root partition with reiserfs. After the installation, the installed system cannot be booted. Instead, an error message similar to the following is displayed:
Kernel panic: VFS: Unable to mount root fs on 03:03
You do not use LILO as your boot manager, but boot via Windows using LOADLIN instead. This error often occurs after updating from a version prior to 7.2 to a current version.

Cause:

Since SuSE Linux Version 7.2, the reiserfs support is no longer compiled in the kernel. It is loaded as module.

Solution:

Integrate initrd (initial ramdisk) into the boot loader configuration and make sure the module reiserfs is included in the initrd.

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

Procedure:

Boot your installed system using the installation CD. Mount your WINDOWS partition and copy the file initrd from your /boot directory to the loadlin directory. Use a command like this, but adjust the path information to your system:
mount /windows/c
cp /boot/initrd /windows/c/loadlin
After rebooting, start your WINDOWS system and insert an entry for initrd in the file c:\loadlin\linux.par. Adjust the following example to your system.
initrd=c:\loadlin\initrd

In Case of Failure:

Check if the module reiserfs is integrated into initrd in your Linux system.

Up to SuSE Linux Version 7.3

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 script mk_initrd in a shell or start YaST (1). Change to the dialog

  1. Search for the variable INITRD_MODULES (e.g., with the search function, F4).
  2. Use F3 to check if entry reiserfs is already available. If not, append this entry separating it with a space from existing entries.
  3. Quit the mask with F10 and finish YaST.

Then execute mk_initrd, which creates a new initrd, in a root shell. Copy the newly-created initrd from the directory /boot to your loadlin directory as described above.

From SuSE Linux Version 8.0

From SuSE Linux 8.0, the INITRD entry is located in the file /etc/sysconfig/kernel. Either directly integrate the reiserfs module into this file (variable INITRD_MODULES) then execute the script mk_initrd in a root shell or use YaST2. To use YaST2, start YaST2 Control Center and change to the dialog:

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

Now finish YaST2 then execute mk_initrd to create a new initrd. Copy the newly-created initrd from the directory /boot to your loadlin directory as described above.

For more information about initrd, refer to "Booting with the initrd" in your reference manual or administration guide. Your manual also contains additional information about the boot loader loadlin.


See also:
o Booting with the initial ramdisk
o LILO Does Not Boot with a reiserfs-Formatted Root Partition after an Update

Keywords: REISERFS, LOADLIN, WINDOWS, BOOT, 7.2

Categories: Loadlin

SDB-fhassel_loadlin-reiserfs, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 15. Jun 2001
SuSE Linux AG - Last generated: 25. Jun 2003 by fhassel (sdb_gen 1.40.0)