vendredi 31 juillet 2009

HOWTO SCO P2V in the real life

Have you ever try to P2V a SCO Open Server 5.X.X machine on vSphere ? Oh, .... sorry.... What is SCO Open Server ? It was the state of art of Unix on x86 15 years ago. I used to install few hundred at that time.

Many efficient applications, so efficient they already run, were installed at that time, but today the hardware is really end of life, people who installed it out of work and applications a must have .....
Reading VMware documentation, it seems to be quite easy but it's not : You can P2V, but not reconfigure the HD image and finally have a kernel panic when you boot your new virtual machine because Unix is very near from the Hardware. For example an initial hardware Compaq Proliant RAID controller could not run as an emulated one, and a Buslogic BTLD - Boot Time Loadable Driver in the SCO World - does not run better in vSphere as you could find in some blogs because it's the IDE that is recognize in vSphere. So let's try another way ....

1st, download an OS image from Sco's ftp site : ftp://ftp.sco.com/pub/openserver5/507/iso/OpenServer-5.0.7-July2005/OpenServer-5.0.7Hw-10Jun05_1800.iso

and Nics update with Intel Pro 1000 support

ftp://ftp.sco.com/pub/openserver5/507/drivers/eeG_5.0.7g/VOL.000.000, save it as VOL.000.000.flp

Create a VM as other OS : Define 1 CPU, 256Mb of ram, choose BusLogic controller, X Gb of Virtual HD as needed, choose Intel Pro 1000 as Nic, Hardware v7 even if you find SCO support with v7 : there is no VMware tools compliant in vSphere ....


Boot from .ISO and install it.

On the physical machine, you need several informations

- hostname, ip adress, netmask using 'netconfig' at prompt, navigate from up to center window using tab key.
- get default gateway with a cat /etc/default/tcp GATEWAY=
- find the HD driver with a hwconfig at prompt and get th TYPE= where you will find the actual hardware HD driver. For example, 'cha' is for Compaq Smart Array controller.

If you got enough space, create a backup file of your entire disk inside the file system with :
cd / ; find ./ -print cpio -ovfB > /backupfile.cpio &
If you filesystem is full, mount a network drive via NFS and backup onto :
mount -f NFS X.X.X.X:/share /local_mount_directory
cd / ; find ./ -print cpio -ovfB > /local_mount_directory/backupfile.cpio &


If NFS client package is not installed, put the SCO Installation CD in drive and install it with the 'custom' command.

Be careful, you could not create a backup file larger more than 2GB.... it's the old world. If so, make .cpio file for each directory you need.


Boot your fresh Openserver image.

Press CTRL-D to boot in multi user level, login with root account (give the password created during installation) Get with ftp all backup .cpio files. Now, install them with

cpio –ivdmlu < /backupfile.cpio &

You will probably have some time to spend drinking coffee :)

When it’s finished, don’t reboot !!

Mount from vCenter VOL.000.000.flp as floppy in your Openserver image. Use ‘custom’ to install from floppy image, INTEL Pro 1000 driver.

When you will exit 'custom' with tab key/file/exit, an Unix kernel will be relinked.

Now it's time to configure networking

.

launch 'netconfig' command and select hardware/Add New lan Adapter

Choose TCP/IP, forget IPX/SPX is an old Novell Network Protocol

Configure IP adress as usual, exit and edit /etc/default/tcp to indicate GATEWAY= X.X.X.X as default gateway.

Update : It's possible to use "Flexible Ethernet" as Ethernet option in your VM description instead of PRO1000. Your SCO will see this NIC as AMD PCNet-PCI adapter without installing anything. It seems to works faster ....

Declare actual disk driver with 'mkdev hd 0 SCSI-0 0 blc 0

FYI :

- blc is the SCO's BusLogic driver which support vSphere's virtual one
- mkdev hd [TARGET] [HA/Controller number] [LUN] [Driver] [Bus Number] will cause another kernel relink.

Edit /etc/default/boot

add disable=[old driver] Sdsk=(0,0,0,0) at the end of defbootstr :

ie : DEFBOOTSTR=hd(40)unix swap=hd(41) dump=hd(41) root=hd(42) disable=cha Sdsk=blc(0,0,0,0)

Your old controller driver will be disable and dynamically replaced by the supported BusLogic one.

Reboot with : sync;sync;sync;reboot or sync;sync;sync;haltsys
If you forgot the edit part of /etc/default/boot, don't worry, add 'defbootstr disable={ctl driver] Sdsk=blc(0,0,0,0)' after boot: prompt ( be careful, you are in QWERTY world ...)

You may delete old disk driver from the kernel with editing 2 files :
/etc/conf/cf.d/mscsi, enter "blc Sdsk 0 0 0 0" and remove lines with the old driver

In /etc/conf/sdevice.d, edit file with old driver name such as "cha" and remplace "Y" by "N" - :1,$s/Y/N/g in vi .... which means from line 1 to end of file, substitue Y by N in all file :)

In /etc/conf.d/sdevice.d/wd, verify the 2 lines are validated with "Y"

Relink the kernel /etc/conf/cf.d/link_unix and reboot.

You may delete old disk driver from the kernel with editing 2 files :
/etc/conf/cf.d/mscsi, enter "blc Sdsk 0 0 0 0" and remove lines with the old driver

In /etc/conf/sdevice.d, edit file with old driver name such as "cha" and remplace "Y" by "N" - :1,$s/Y/N/g in vi .... which means from line 1 to end of file, substitue Y by N in all file :)

In /etc/conf/sdevice.d/blc edit the file and remplace "N" by "Y" - :1,$s/Y/N/g in vi

Finally relink the kernel /etc/conf/cf.d/link_unix and reboot.

update : If you installed OpenServer on ide (0:0) drive, it's possible to use 'wd' driver instead of BusLogic 'blc' one without BTLD driver

I hope this post was useful, and now enjoy !!

7 commentaires:

Unknown a dit…

Excellent article and not a moment too soon. Thank you very much for the detailed steps.
Not to mention that my own configuration uses the 'cha' driver. Bonus.
As you probably expected... one small glitch, but a critical one.
My virtual server loads fine and runs fine after the 'clean' install, but fails to boot after restoring the Physical to it with cpio.
I actually tried both ways, by changing the bootstring to disable 'cha' and to delete the 'cha' driver in mscsi and enabling wd.
Both ways, after rebooting, I get a kernel trap 0x0E.
Is there anything I should eliminate from the restored files off the physical server to avoid this? Such as the /etc folder, maybe?
Thank you for any clues.

dunestudio45 - DS45 a dit…

It's probably because by default your cdrom drive was installed as number 0 of your wd controller
This one has became your boot disk in the virtualized configuration.

ha Attach number ID lun bus

wd Srom 0 0 0 0
wd Sdsk 0 0 0 0


change the last 0 by 1 :

ha Attach number ID lun bus

wd Srom 0 0 0 1
wd Sdsk 0 0 0 0

... and relink kernel

Unknown a dit…

Hello,

can I make the same things with a 5.0.5 iso?

I haven't tried your solution yet, but I want to know if there may be any problem if I use the 5.0.5 with your guide. (it's a licensing problem..)

Also, haven't you got any luck using symantec ghost?
Someone said that he was able to make a supersimple p2v with some ghost version..
I'm not interested in particular performances, it may have to be a functioning backup of the main server and only eventually, if everything seems to work ok, a substituting virtuali machine

many thanks,
regards

Alessio

dunestudio45 - DS45 a dit…

Yes it works with OpenServer 5.0.5, 5.06 & 5.07.

I tried few times with Ghost P2V on Proliant 3200 & 1600 but the only result i got was a Kernel Panic. I think it's because of BTLD specific drivers from Compaq.

Unknown a dit…

is it possible to avoid kernel panic (Boot not found
Stage 1 boot failure: error loading hd(40)/boot) using a boot disk an recreating OS boot?

dunestudio45 - DS45 a dit…

"is it possible to avoid kernel panic (Boot not found
Stage 1 boot failure: error loading hd(40)/boot) using a boot disk an recreating OS boot?"

You may boot your system with a diskette made with the mkdev fd command. If needed, add 'ahslink' @ the 'boot:' and insert the right btld disk wich contains with the right disk controler driver.

Make a full backup of your / partition, reinstall and restore because /boot is a special file installed in the 1st sectors of your partition you can't manually recreate.

Another way you may try is to use a software such as SCO Data Recovery (http://www.sco-data-recovery.com/)

piotr a dit…

Thx a lot, great manual!

I've done P2V of my SC0 5.0.6 into ESX 4. The physical machine had SCSI hard disk and I've installed on IDE from ESX using wd driver.
SCO starts and shutdown without any problems.
There is still only Licensing problem.
I have in License Manager additional line, I mean I have two license lines:
for SCO OpenServer Enterprise System, one is fully licensed and the second one not.
My server seems to be not licensed after restart, because I'm getting a message that I have unlicensed software on my computer.
This problem perhaps occurs, SCO 5.0.6 was migrated into SCO 5.0.7 trial version and the system system needs a license for SCO 5.0.7.
I've already tried to remove this last line using License Manager from scoadmin, but it doesn't work.
Knows someone howto solve this problem?