Novell Home

Lock, Stock and Barrel: Moving SUSE Linux Enterprise to a new Machine

Novell Cool Solutions: Tip
By Muhammad Sharfuddin

Digg This - Slashdot This

Posted: 30 Aug 2007
 

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.

  1. boot the system in rescue mode.

  2. mount the root partition
    # mount /dev/hda2 /mnt
  3. now if you have a separate /boot partition, as in our case, then
    # mount /dev/hda1 /boot
  4. 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

  5. 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.


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell