12 December 2010

Virtualizing Windows 2000 server (P2V)

Last week a customer called and said that a disk died in an old Dell PowerEdge 1500SC server with Windows 2000 installed. Since this is a really old server, my estimation is about 8 years, the best solution was to virtualize it. This was also my suggestion for the customer. They agreed and I started working.

At the beginning I didn’t prepare much since I made numerous P2V migrations with VMware Converter in my career without any problems, but none of it involved Windows 2000. I prepared server and network like I usually do:
- I checked latest full server backup.
- Installed and connected temporary Gigabit switch (pluged in server and my laptop which have VMware vCenter Converter Standalone Client installed).
- Wrote down IP settings (ipconfig /all).
- Stopped / disabled all unnecessary services and wrote down their names and startup type. We wanted to control services startup. I also stopped and disabled all Dell management agents and AV software.

After server was prepared I started VMware Converter and run P2V wizard as described in my previous blog.

During this wizard I was asked to point to newer version of Scsiport.sys file. My current version was 5.0.2195.7017 and I needed 5.0.2195.7059. I started searching and found it on some other W2k server. I pointed a wizard to this file and moved forward. After two hours server was virtualized and ready to start.

Before booting virtual machine I always change Power On Boot Delay parameter to value 9000 in Virtual Machine Properties. I do it because I don't like catching ESX at boot to choose whatever boot parameter I need.


Dammit, Blue Screen or so called BSOD! It says STOP: 0x0000001E (0xC0000005,0x804a6467,0x00000000,0x000000B0).

I checked on Google and quickly found out that the problem is in Scsiport.sys driver. Quote from MS KB904374: “This problem occurs because of a code problem in the Scsiport.sys driver that is included in Update Rollup 1 for Windows 2000 SP4”. I also found this two other links: KB Article 1879 and KB Article 1005208.

Here is few suggestions for solving this issue that I found but didn’t help:
1. Injecting SCSI controller device drivers into Windows (VMware KB 1005208). I tried it and it didn’t help.
2. I also tried changing Scsiport.sys with some older and newer versions and didn’t help either. I did this by booting virtualized server from Ultimate Boot CD and copying the files to proper location on server’s hard disk.
3. I downloaded and extracted Hotfix from KB904374 and copied files to virtualized server. Didn’t help.
4. I changed SCSI controller from BusLogic to LSI Logic and got different error “STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE”.

The solution that worked was:
1. I installed hotfix from KB904374 to original server.
2. I also installed VMware SCSI controller driver to original server. I did this:
   a. Download the VMware SCSI Disk Controller driver floppy.
   b. Extract with vmscsi-1.2.0.4.flp with 7zip to original server.
   c. Start “Add new hardware” from Control panel.
   d. Add new SCSI device and point to extracted files.
3. Repeat server prepare steps and start P2V wizard from VMware Converter.
4. Boot virtualized server and “Voila” Windows 2000 virtualized server is now booting.

After successful first boot I prepared virtualized machine as described in my previous blog.

Next time I’ll do P2V of something for the first time I’ll probably Google first ;)

This is it. Have fun!

2 comments:

  1. What version of VMware Converter did you use?

    ReplyDelete
  2. This was a while ago but I guess it was the latest one from that period.

    The latest version back then was VMware vCenter Converter Standalone 4.3.

    ReplyDelete