Linux won’t Boot after Moving from IDE to SATA Drive
Problem:
Linux installation was moved from an IDE drive to a SATA drive and no longer boots.
Cause:
Older Linux versions (prior to kernel 2.16.19) used hdx references for IDE drives (e.g. /dev/hda, /dev/hdb2). Moving the installation to a SATA drive will prevent the OS from booting because sdx references are used for SATA drives (e.g. /dev/sda, /dev/sdb2). There can also be issues if the SATA controller is configured for AHCI mode and AHCI support isn't included in the OS.
Solution:
Update the booting configuration files for GRUB/LILO. At the least, you may need to update root and a kernel parameter to reference the correct sdx drive instead of the original hdx drive (e.g. /dev/hda1 may become /dev/sda1). Also update appropriate Linux configuration files (e.g. /etc/fstab).
If necessary, configure the SATA controller to use IDE mode or add AHCI support to the install.
Note: Newer versions of Linux (kernel version 2.16.19 or later) use sdx references for both IDE and SATA drives. Additionally, most recent versions reference drives/partitions by UUID instead of using sdx. This allows the drives/partitions to be found by ID match instead of position.