The 7 year old boot drive in my Linux box crapped out, so I decided to remove it and boot from the secondary (better) drive. If you're clever, you can reassign mounts in /etc/fstab, update /etc/lilo.conf, run lilo -r /dev/sdxxx, and boot without problems from the new drive.
I'm not that clever, so I have a Linux boot CD handy to patch things up. And of course, I had a problem getting lilo to work while the old drive was still in the machine, but it was easy to resolve after removing the dead drive, booting the CD, mounting the new drive, and doing the lilo routine again.
After booting the machine with the newly lilo'd drive, the OS loaded up as expected, and I was up and running as if nothing changed.
Except that the network no longer worked. Wha? I removed a hard drive. Why would the network stop working?
I have two network cards in the machine, a 1Gb card as eth1 that requires special drivers, and 100Mb backup card as eth0 that has drivers in the kernel. It turned out that udev detected a general hardware change when I removed the drive, and added a line in /etc/udev/rules.d/60-interface.rules that set eth0 to be eth1. And that caused the wrong drivers to load for the wrong card.
I love Linux.