Page 1 of 1

Kernel Panic - mount: could not find filesystem '/dev/root' after deploying software image

Posted: 2012/01/04 23:53:53
by tmounce
Hi all,

Been Googling/searching around for an answer to this question to no avail...

BACKGROUND:

We use Clonezilla to image our workstations/servers.

Recently, we had been using CentOS 6.0 until some unforseen issues with our storage system... After deploying my image across most of the organization, I've had to roll back... sigh.

Using the same system I had to build my base image for 6.0, I built a CentOS 5.7 x86_64 image from scratch to be used universally across all systems. My source system was a Dell desktop with a simple 80GB hard drive.

I can deploy this image just fine on any desktop or server that doesn't have a hardware RAID.

However, when I tried to deploy it on a RAID1 and RAID5, I get this annoying error... see attached.

My initial searches directed me here: http://www.xssist.com/blog/[Sysadmin]_mount_could_not_find_filesystem_dev_root.htm

However, I didn't try it as it doesn't seem like something I should have to/want to do. I would prefer not to reconfigure the kernel on each machine as I deploy it AND reconfigure it after each kernel update.

I ended up building my image from scratch on a RAID5 configured server and grabbing it. I then proceeded to try to drop it on a RAID1/workstation, and it fails in similar fashion.

________________

Some simple things I've tried doing to troubleshoot the issue:

Tried vanilla install w/o updates

Tried to rename volumes are /dev/sda# instead of LABEL=X (got this idea from seeing the fstab on centos 6)

Tried vanilla install w/LVM partition

Tried vanilla install w/2 EXT3 partitions and no swap space

Tried regular version of Clonezilla (usually use the alternative version)

Tried Symantec Ghost, fails because of RAID

Tried full nutbar install of all features in installer

Compared /boot/grub/grub.conf between the server and desktop, they are exactly the same

_________________

I'm quite certain it's the hardware RAID. It's disheartening since CentOS 6.X works just fine with a similarly simple setup. Is there something I can do or am missing here in the OS setup?

I know we have had a working Clonezilla image for CentOS 5.X in the past built by our ex-Linux Admin, but he and it are gone. His image just worked and even after updates. I'm quite certain he didn't have to mess with the kernel's config.

Thanks in advance!

Re: Kernel Panic - mount: could not find filesystem '/dev/root' after deploying software image

Posted: 2012/01/04 23:55:54
by tmounce
Ahhhh... my attachment got lost when I hit Preview on my post... and now I can't attach it.

Here is the error:

i8042.c: No controller found
Red Hat nash version 5.1.19.6 starting
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: no such file or directory
setuproot: error mounting /sys: no such file or directory
switchroot: mount failed: no such file or directory
Kernel panic - not syncing: Attempted to kill init!

Kernel Panic - mount: could not find filesystem '/dev/root'

Posted: 2012/01/05 00:26:00
by TrevorH
You need to boot from the install DVD and rebuild the initrd image on the machine which panics. This process examines the hardware on the machine and includes the required modules into the newly built initrd. Or you need to know which modules are needed and build the initrd on the build machine before you image it. On CentOS 5 you use mkinitrd for this process and there's [url=http://wiki.centos.org/TipsAndTricks/CreateNewInitrd]a wiki article[/url] about it but on CentOS 6 you'll need to use dracut instead.

Re: Kernel Panic - mount: could not find filesystem '/dev/root' after deploying software image

Posted: 2012/01/05 16:13:19
by tmounce
Thanks Trevor... that's what I've been trying to avoid... Sigh!

Re: Kernel Panic - mount: could not find filesystem '/dev/root' after deploying software image

Posted: 2012/01/05 16:51:10
by TrevorH
If you can identify the modules required then you can rebuild the initrd on the build server and force it to include those modules by using --with=$module and repeat the --with for as many modules as you need to include. The initrd will then include those modules needed for the hardware on which it was built plus the extra ones.