System will not boot with ERROR: /linuxrc: mount: not found

  • 3000713
  • 19-May-2006
  • 27-Apr-2012

Environment

Novell SUSE LINUX Enterprise Server 9
Novell Open Enterprise Server

Situation

When booting the server, the boot process fails with the following on the screen:

RAMDISK: Compressed image found a block 0
VFS: Mounted root (ext2 filesystem).
/linuxrc: mount: not found
/linuxrc: mount: not found
/linuxrc: cat: not found
/linuxrc: cat: not found
Starting udev
/linuxrc: cannot create /proc/sys/kernel/hotplug: directory nonexistent
Creating devices
cat: not found
Loading kernel/drivers/scsi/scsi_mod.ko
insmod: not found
< -SNIP- >
cat: not found

Waiting for device /dev/sda6 to appear: expr: not found
.[: 5: unexpected operator
not found -- device nodes:
console fb0 md0 null ram ram0 ram1 ram2 ramdisk shm tty1 tty2 zero
No root device found; exiting to /bin/sh
sh: can't access tty; job control turned off
$

This is caused by an improperly built initrd image. This situation is caused by having an updated glibc package with an outdated mkinitrd package. All required shared libraries do not get built into the image in this environment.

Resolution

Resolve the problem by installing an updated mkinitrd:
  1. Boot into the system from CD1 of the installation media. Select"Installation", accept the license agreement, choose a language and keyboard layout, then select "Boot installed system."
  2. Use the patching mechanism (YOU or rcd/Red Carpet) to update to mkinitrd-1.2-27.21 or newer.
  3. Rebuild the initrd by executing 'mkinitrd' as root.
  4. Reboot.

Additional Information

The problem is caused by mkinitrd improperly detecting the shared libraries required for the commands that are executed in the initrd. This can be seen when building the initrd from the "Shared libs" line:

Bad:
Shared libs:    lib/libblkid.so.1.0 lib/libc.so.6 lib/libselinux.so.1 lib/libuuid.so.1.2

Good:
Shared libs:    lib/ld-2.3.3.so lib/libblkid.so.1.0 lib/libc.so.6 lib/libselinux.so.1 lib/libuuid.so.1.2