VMware Windows 2000 migration: Errors encoutered and solutions.
During my migration of my Windows 2000 Advanced server using VMware Converter and Server, I managed to run into two very big and annoying problems. Below are the solutions to those problems. Mind you I was doing a migration of Windows 2000 Advanced Server with SP4 applied.
I first ran into a problem where the converter wanted an updated scsiport.sys. Any version of the file I tried to point it to wouldn’t work. I even downloaded the SP4 Rollup Version 2 and extracted the scsiport.sys file from that and it still didn’t like it. In the end I decided to try installing the Rollup on the physical server first before the migration. After installing the Rollup, I ran the converter again and it didn’t complain about the scsiport.sys file. Apparently you have to install the Rollup first before doing the migration.
Once the migration was done and everything was ready to go, I booted up the virtual machine and ran into this little gem on booting up Windows 2000:
Windows could not start because of a computer disk hardware configuration problem.
Could not read from the selected boot disk. Check boot path and disk hardware.
Please check the Windows documentation about hardware disk configuration and your hardware reference manuals for additional information.
The error above means that your boot.ini now has some problems. This is the error that had me stuck for at least 2 hours as there was really no solution I could find. To get around this you will need to mount the virtual drive and edit the boot.ini.
The first thing to do is to download the Virtual DiskMount Utility (VDU) from VMware and install it on the server housing the virtual machine. Next you need to mount the virtual drive. Change to where the VDU was installed (usually “c:\program files\vmware\vmware diskmount utility”) and run the following command from the command line:
vmware-mount <driveletter>: <path to virtual disk>
In my case it was the following:
vmware-mount x: “c:\virtual machines\my server\my server.vmdk”
Remember to use quotes if your path has spaces in it. Another tip is that if you setup your virtual machine’s disk to allocate the drive space like I did, you will have two vmdk files, a my server.vmdk and a my server-flat.vmdk. Do not try to mount the -flat one, it will throw an error, mount the other vmdk file instead.
Once you have your virtual disk mounted, open up the boot.ini file. There are two common problems with the boot.ini when you do a conversion:
- your partition number is wrong
- your path is using scsi instead of multi
In my case my boot.ini looked like this:
scsi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows 2000″ /fastdetect
All I had to do was edit the boot.ini to use multi instead of scsi and save it like so:
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows 2000″ /fastdetect
If you’re one of those people who’s partition number is wrong, try changing the value from 2 to 1 and saving.
After that I just unmounted the virtual disk from the command line like so:
vmware-mount x: /d
I was the able to start up the virtual machine with no problems.
Below are links to the files, utilities and references used in this posting:
- Boot.ini reference
- Windows 2000 SP4 Rollup 1 Version 2
- VMWare Server
- VMWare Converter
- VMWare DiskMount Utility 5.5 and the documentation for it