If you've ever been in the situation where you are doing a full upgrade of the disks in a server, you'll face the problem of getting the data from one set of disks to the other, without wanting to reinstall from scratch.
Here's how I'd do it:
cp -a /bin /boot /dev /etc /home /lib /opt /root /sbin /usr /var /mnt/root/
mkdir /mnt/root/proc mkdir /mnt/root/tmp
chmod 1777 /mnt/root/tmp
chroot /mnt/root /bin/bash
Reinstall your bootloader. if you are in the chroot as described above. Note that <new boot device> is just that! if you are booting off a SCSI RAID array, it'll possibly be /dev/md0. If it's an IDE disk that will eventually be on /dev/hda but is currently on /dev/hde, try /dev/hde - but I can't guarantee that'll work. You might want to make a bootdisk so you can boot off that when you yank the old disks.
lilo -b <new boot device>
lilo -C /mnt/root/etc/lilo.conf -b <new boot device>
I cheat a little when building a linux box that is primarily a server rather than a workstation. Normally a linux server has plenty of disks, and quite often more than one. So I attempt to have a completely separate root drive from any data drives. For example - a 36 Gb IDE root drive and four 275 Gb drives in a software RAID-0
belt:# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda1 18G 1.5G 16G 9% / /dev/md0 1.1T 739G 379G 67% /backup
Doing it this way means that the data drives could be moved to another box with minimal fuss, and if a data drive goes then the root drive can still boot. The root drive speed doesn't really matter once the machine is up, but the data drives do.
2 pages link to MigratingDisksExample: