Recently I’ve virtualized an old Suse Enterprise Server 9 with VMware. Here you can find some tips if you need to do something like that.
The best procedure would be adding the kernel modules for LSI Parallel controller on the physical machine and run /sbin/mkinitrd before P2V process, but if you are not allowed to modify the physical machine this is the only way I know to virtualize it.
I’ve done the P2V process using VMware’s Coldclone CD v4.1.1, first I’ve injected the physical machine’s SCSI drivers using peTool.exe
peTool.exe -i coldclone.iso -d STORAGE |
Where STORAGE is a folder containing the TXTSETUP.OEM file and the drivers for my SCSI controller (LSI MegaRaid SCSI 320-2X).
Once the virtual machine is created I’ve got a boot error, the virtual machine can’t find /dev/sda1, is still trying to boot using the old MegaRaid SCSI controller:
In the virtualized machine I’ve chosen a LSI Logic Parallel SCSI controller:
Now I’ve to create a customized initrd that loads at init level my new SCSI drivers, so I’ll boot the virtualized machine using SysRescCD
Now you need to mount the boot disk, so I’ll use the following command:
mount /dev/sda1 /mnt/backup |
Now you must edit the file /mnt/backup/etc/sysconfig/kernel and change the INITRD_MODULES variable. This is the actual value, note the reference to the physical megaraid SCSI controller:
You must edit this file using vi, nano or other editor and change INITRD_MODULES like that:
Note that mptscsih is the driver that Suse uses for LSI Logic Parallel SCSI controller.
Now we must modify the initrd RAM boot disk image file, you can find here in page 10 Novell’s documentation for this task.
We are going to decompress the file /boot/initrd and store it in the file /tmp/ramdisk:
gunzip </mnt/backup/boot/initrd > /tmp/ramdisk |
Now you must mount the file in /mnt/ramdisk:
mkdir /mnt/ramdisk mount -o loop /tmp/ramdisk /mnt/ramdisk |
Now you must delete the megaraid drivers not needed anymore:
rm -rf /mnt/ramdisk/lib/modules/2.6.5-7.201-smp/kernel/drivers/scsi/megaraid |
Note that 2.6.5-7.201-smp folder depends on the system’s kernel version, it can be different in your case.
Now we are going to add the new SCSI drivers:
mkdir /mnt/ramdisk/lib/modules/2.6.5-7.201-smp/kernel/drivers/message mkdir /mnt/ramdisk/lib/modules/2.6.5-7.201-smp/kernel/drivers/message/fusion cp /mnt/backup/lib/modules/2.6.5-7.201-smp/kernel/drivers/message/fusion/mptbase.ko /mnt/ramdisk/lib/modules/2.6.5-7.201-smp/kernel/drivers/message/fusion cp /mnt/backup/lib/modules/2.6.5-7.201-smp/kernel/drivers/message/fusion/mptscsih.ko /mnt/ramdisk/lib/modules/2.6.5-7.201-smp/kernel/drivers/message/fusion |
You must also modify the file /mnt/backup/boot/linuxrc and locate the lines with the following text:
echo "Loading kernel/drivers/scsi/megaraid/megaraid_mm.ko" echo "Loading kernel/drivers/scsi/megaraid/megaraid_mbox.ko" |
And replace them with:
echo "Loading kernel/drivers/message/fusion/mptbase.ko" echo "Loading kernel/drivers/message/fusion/mptscsih.ko" |
Now we must backup up the original initrd file, note that initrd is a link to initrd-2.6.5-7.201-smp file, so you must backup that file first:
mv /mnt/backup/boot/initrd-2.6.5-7.201-smp /mnt/backup/boot/initrd-2.6.5-7.201-smp.orig |
And gzip the new one with the LSI Logic Parallel SCSI drivers:
umount /mnt/ramdisk gzip </tmp/ramdisk > /mnt/backup/boot/initrd-2.6.5-7.201-smp |
Now umount /dev/sda1 device and reboot the virtual machine, remember to disconnect the SysRescCD CD and boot from hard disk.
umount /dev/sda1 init 0 |
On next boot you will have to reconfigure the graphical settings, but you should choose Text mode only because the VMware graphic card is not supported until you install the vmware tools package.
You must also delete the /etc/sysconfig/network/ifcfg-eth-id-xx:xx:xx:xx:xx:xx file for the old physical ethernet card. And then set the network settings using yast from command line.
No comments:
Post a Comment