waiting for device /dev/sda2 to appear


My motherboard went dead on me and I’ve replaced it, but when I try to boot my openSUSE installation I get the message “waiting for device /dev/sda2 to appear…” and then “not found – exiting to /bin/sh”.

Whats the solution?

Take a look, your not the first. This search migh help.


Check your bios and boot order.

I had exactly that and actually lucked onto he solution. Mine was indeed looking for a partition that was not there. My Grub config file was like this:

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3
root (hd0,8)
kernel /boot/vmlinuz- root=/dev/disk/by-id/scsi-SATA_Maxtor_6L160P0_L30VFB7H-part9 vga=0x31a resume=/dev/sda7 splash=silent showopts
initrd /boot/initrd-

See the bit “scsi-SATA_Maxtor_6L160P0_L30VFB7H-part9”. In fact I had repaired something and it had changed partition number but Grub was not told, so it kept on hunting for a kernel that was no longer there on part9 – it was on another part. So you can fix it (if it’s the same sort of problem) by booting off of your install CD/DVD and reinstalling grub so it can get the booting right. To do all that:

Step 1 - Assisted Boot into openSUSE: Insert Suse’s installation CD/DVD and reboot the computer. Commence the installation process but only carry it forward a few steps. Click “Next” thought the Language screen. In the Media Check screen, do not click “Start Check” but simply click “Next” to skip to the the next screen. Agree to the Licence and “Next” to the Installation Mode screen. Here you select “Other Options”. That will allow you to select to “Boot Installed System”. Select that and click “next” to proceed.

Step 2 - Reinitialise and Reinstall Grug: Once Suse has fully booted and settled down, go to Yast → System → Boot Loader. The Grub configuration screen comes up with the Tab “Section Management” activated. In the lower right is a drop-down selector labelled “Other”. Select from “Other” the option “Propose New Configuration” and then wait for Grub to analyse your partitions and display a new configuration. This may take a while. Important: When that finishes, activate the tab labelled “Boot Loader Installation” and select to “Boot from the Master Boot Record”. [Yast will often default to booting from the root or boot partition rather than from the MBR but that’s for experts only – always choose the MBR.] Then click Finish to save the changes and install the reconfigured Grub into the hard drive’s MBR. If you get a message that "The bootloader boot sector will be written to a floppy disk … don’t bother with the floppy – just click OK to proceed and install to the MBR. Reboot and you should be able to boot to openSUSE using the Grub menu screen.

That’s a quote from this tutorial:
GRUB Boot Multiboot openSUSE Windows (2000, XP, Vista) using the Grub bootloader.

See if it helps – but it won’t hurt to reinstall Grub even if that’s not the problem

How different is the mb you replaced compared to the previous one? If it has a different chipset/disk controller you will probably need to make a new initrd with the correct drivers included. You can do this in a couple of different ways… but have a look here for the rescue cd method:

Good Things To Know When Imaging Linux To Different Hardware - openSUSE Forums


I found a solution, that works for me.

The reason I was getting the error is a missing driver module in initrd. I cloned my system from a laptop to asus p5kpl-cm motherboard. IDE controllers are different.

To make sure what modules you need in initrd boot the livecd system (like KDE Opensuse 11.1 CD). Then go to yast -> /etc/sysconfig editor, look under system - kernel - initrd_modules. There must be a list of needed modules for you. Write it down.

Then copy kernel and initrd from fresh install (or maybe directly from CD’s /boot). Having this done edit grub configuration for using those files (e.g. during grub boot press ESC, better write down kernel name).

You will be able to boot your system in a command line mode. Run yast2 and edit initrd_modules in /etc/sysconfig editor. I needed to change achi to ata_piix. Yast will generate new initrd on exiting.

Then you should be able to start your system with your kernel.

The Repair System from the install media can do those manual steps automatically.