I have an existing Dell Precision 690 workstation setup to dual boot Windows XP and CentOS 5.5. These operating systems are installed on two separate drives. I have a grub menu on the Linux drive with it set as drive 1 and points to the windows boot info on drive 2.I tried taking the linux drive and installing it in a new HP Z800 workstation to see if I could be lucky enough to get it to boot, but it didn't. Immediately after it starts to boot I get a few errors.Here is what the system shows:Right after this message Red Hat nash version 5.1.19.6 starting I get the following lines:Unable to access resume device (LABEL=SWAP-sda2)mount: could not find filesystem '/dev/root'setuproot: moving /dev failed: No such file or directorysetuproot: error mounting /proc: No such file or directorysetuproot: error mounting /sys: No such file or directoryswitchroot: mount failed: No such file or directoryKernel panic - not syncing: Attempted to kill init!Is there something I can tweak to get this to possibly boot? I'd really like to not have to reload CentOS 5.5 and the specialized software on this machine.I do have a grub menu setup on this drive, could this by chance be my problem? The drives in the old machine are setup with Linux as drive 1, and Windows as Drive 2, and the Linux drive hosts the grub menu allowing me to boot to Linux or Windows. Could this some how be the problem?I do know of a way around this with Windows: install a secondary HDD controller card in the machine, install the drivers, hooked up drive to controller in old machine and make sure it boots, move the drive and controller to the new machine and boot off it, load the motherboard drivers (specifically the hdd controller drivers) and then you can take out the controller card, connect the hdd directly to the motherboard and you're set. This same thing is probably accomplish able in Linux, but I'm not sure. This might be a last ditch effort to try if nothing else works.
Getting an existing Linux installation from one computer to boot on another
linux;boot;grub;centos;dual boot
If you get this far, it means the bootloader loaded the kernel and initrd/initramfs successfully, but the kernel is not finding the root device. So you should be able to boot by passing something like root=/dev/sda42 on the kernel command line.At the Grub prompt, edit the entry for Linux, and look for the line that begins with linux. On that line, there should be a parameter that looks like root=/dev/sda42. Change it to root=/dev/sdb42, i.e. a different drive. The current letter might not be a, and the letter that works might not be b, though if you have two drives you'll probably just need to swap sdb for sda or vice versa.The order of the drive letters in Linux is unrelated (or at least not directly related) to the order in the BIOS, in Grub or in Windows (it depends on the order in which the drivers are loaded). (There are ways around this, but they won't help you right now.)When you boot, you might get errors if entries in /etc/fstab don't match the current disk device names. If you're not able to get to a repair console, reboot and (in addition to the root= change) add init=/bin/sh to drop directly to a shell, then runmount /procmount -o remount,rw /vi /etc/fstab    # or whatever your favorite editor is