SUSE Conversations


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



By: Muhammad Sharfuddin

August 30, 2007 1:33 pm

Reads:465

Comments:0

Rating:0

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.

  1. boot the system in rescue mode.

 

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

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Tags: ,
Categories: SUSE Linux Enterprise Desktop, Technical Solutions

Disclaimer: As with everything else at SUSE Conversations, this content is definitely not supported by SUSE (so don't even think of calling Support if you try something and it blows up).  It was contributed by a community member and is published "as is." It seems to have worked for at least one person, and might work for you. But please be sure to test, test, test before you do anything drastic with it.

Comment

RSS