Lock, Stock and Barrel: Moving SUSE Linux Enterprise to a new Machine
By Muhammad Sharfuddin
Problem:
You installed SUSE Enterprise Linux on a machine named “system1” and you want to move the hard drive (that contains SUSE, and all the software) of system1 to another machine named “system2″… but system1 and system2 don’t have identical/same motherboards.. say e.g system1 has intel motherboard while system2 has Asus motherboard… or both the machines have intel boards but different model… i.e say system1 has intel 440BX2, and the system2 has intel D945GNT.
Solution:
SUSE Linux doesn’t boot properly if you move the hard drive from a machine to another machine (even if you connect the hard drive to the same controller).
When I installed the SUSE Linux on system1 I created the following partitions:
Device Mount point /dev/hda1 /boot /dev/hda2 / /dev/hda3 swap
As in our case when we move the hard drive of machine “system1” to “system2”.. and then try to boot the system.. we got the following messages at system startup(boot) on the console of system2.
. . . . . Loading fan Loading edd BIOS EDD facility v0.16 2004-June-25, 1 device found Load reiserfs resume device /dev/hda3 not found (ignoring) Waiting for device /dev/hda2 to appear: ^[...... not found -- exiting to /bin/sh $ <here I got the prompt back>
By looking the above messages it seems that system2 did not find the filesystem or filesystem table information.. properly… But its not the case..infect the problem is that a required module for the storage controller is not included in the initial ram disk.
Now the solution is that simply reboot the system2, into rescue mode.
To verify the partition table, execute the following command:
# fdisk -l Disk /dev/hda: 40.0 GB, 40020664320 bytes 255 heads, 63 sectors/track, 4865 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 1972 15735667+ 83 Linux /dev/hda3 1973 2038 530145 82 Linux swap / Solari
The output of the fdisk show that everything is proper.
To verify the fstab:
# mount /dev/hda2/mnt then # cat /mnt/etc/fstab /dev/hda2 / reiserfs acl,user_xattr 1 1 /dev/hda1 /boot reiserfs acl,user_xattr 1 2 /dev/hda3 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0
Now as the above test shows that, filesystem is proper and healthy, and also the proper fstab is present.
Now to include the required module for the storage controller in the initial ram disk… we have to do the following.
- boot the system in rescue mode.
- mount the root partition
# mount /dev/hda2 /mnt
- now if you have a separate /boot partition, as in our case, then
# mount /dev/hda1 /boot
- bind the dev under /mnt
# mount --bind /dev /mnt/dev
then
#chroot /mnt
now in last to include the required storage module, execute the following command, as
# mkinitrd
DONE 😉
Now boot the system, … and Enjoy your SUSE Linux.
NOTE: Connect the hard drive on the same controller… i.e if the hard drive was connected on primary master(hda) on system1, then connect the hard drive to system2 as hda too.
No comments yet