I move hard drives from one machine to another. I don't know your hardware, but the following files might need attention when moving the hard drive. I emphasize "might" because only you can determine which changes are needed.
Many people connect SATA devices to any port. When the port order differs from the connection order, the BIOS will search in the SATA port order. A good policy is to connect the first SATA device to SATA port 1, the second SATA device to SATA port 2, etc. One way around this is to use UUIDs in fstab. Use the /sbin/blkid command to learn the UUID of a device.
Boot loader (grub, lilo, etc.)
Make sure the boot loader references the correct hard drive root partition and if necessary, initrd file path and name.
If there is more than one hard drive in the machine then fstab might need to be edited.
Those first three items are critical to booting. The remainder in this list affect performance but will not prohibit booting.
udev rules (always do this)
rm -f /etc/udev/rules.d/70-persistent*.rules
When using an xorg.conf, the file might need to be edited.
Sound card settings
/var/lib/alsa/asound.state or /etc/asound.state
The blacklist used for one system might not be appropriate for another system.
When moving a hard drive back and forth between different machines, the best approach is to retain different copies of the affected files. Write a simple shell script to copy the appropriate version before moving the drive.
Regarding a kernel panic, look at the boot loader or fstab. Verify the root partition is correct.