VMware Communities
mhw
Contributor
Contributor

partial success dual booting vista as guest with linux host

I've been experimenting with a newly arrived ThinkPad T61 and a configuration that I'm hoping to use at some point in the future when Vista becomes a more attractive option than XP. My primary working environment is Linux, so my aim is to have the machine dual boot Vista and Ubuntu 7.10. I also wanted to be able to boot the native Vista installation inside a VMware virtual machine hosted on Linux. The machine has 4Gb of RAM so I've also used the 64-bit versions of Ubuntu and Vista throughout. I've achieved partial success and wanted to record what I've done for others that try to follow, and also in the hope that some of the problems might be resolved by the time I do this for real!

Anyway, here's the basic steps I went through.

First I did a clean install of Vista 64-bit from an Anytime Upgrade DVD, and installed the ThinkPad device drivers as per those instructions. I also did a standard installation of Ubuntu 7.10 using the desktop-amd64 ISO image, and I installed VMware Workstation 6.0.2 under Ubuntu from the tar file download. I applied no patches to the VMware Workstation install; the vmware-config.pl script ran with no problem on a default Ubuntu 7.10 install. As Vista doesn't have hardware profiles I didn't create one under Vista (as was standard practice on previous versions of Windows when dual booting).

I then created a new virtual machine using the 'Custom' configuration wizard, adding a physical disk instead of a virtual one. Booting this new virtual machine resulted in a blue screen from the Vista installation; I think it was a STOP 0x0000007B but I can't reproduce it now. A bit of research suggested that the stop was due to Vista not loading the required disk driver early enough in the boot process - the physical machine uses a SATA disc but the virtual machine was configured with a SCSI device. I tried installing the LSI Logic SCSI driver with Vista booted native, but this didn't resolve the issue. There was no option in the virtual machine settings editor to change the hard disk from SCSI to IDE, but I switched to IDE by editing the .vmdk and .vmx files manually. This then allowed Vista to boot successfully in the virtual machine. Interestingly, once I'd booted Vista within the virtual machine with an IDE disk I was able to switch the disk back to SCSI and continue to boot Vista successfully. I also installed the VMware tools under Vista to get the display adaptor working at full resolution.

My next step was to create a Vista boot floppy image and use that for the floppy device in the virtual machine. This stops the virtual machine from using the GRUB boot loader on the physical hard disk and removes the risk of booting Ubuntu in the virtual machine by accident by not choosing to boot Vista from the boot menu. It also means that you can expose only the Vista partition through the virtual machine's disk, instead of allowing access to the whole of the disk.

The only significant issue remaining is an extended pause during the boot process when starting Vista within the virtual machine. Between the initial boot screen (microsoft copyright notice and progress bar) and the login screen the (virtual) screen would go blank for a couple of minutes. Booting the same Vista image natively didn't exhibit the same problem; building a clean vista installation in a new virtual machine (with virtual hard disk) didn't have the problem either. By removing individual device drivers one-by-one I diagnosed the problem to the ThinkPad Power Management driver; remove this driver and the machine boots straight away, install it and the boot pauses for 2 minutes or more. Unfortunately the driver is needed when Vista is running natively, so keeping it removed is not really an option, and without hardware profiles I couldn't find a way to disable it when booting within VMware only.

Anyway, that's about all that was required. Vista runs reasonably well within the virtual machine, albeit without the fancy 3d effects it uses when running natively. I've not tested network in the virtual machine so can't comment on that. Vista's device driver probing seems to be resilient enough to work out which drivers to load in the physical and virtual machines without using hardware profiles, apart from the Power Management driver, and I suspect the problems I'm seeing there are more to do with the driver itself than Vista. Also, it's a bit of a pain that you need to manually edit the virtual machine configuration to get Vista to boot properly.

Hope that helps someone else out. My next step is downgrading to XP, so I won't be able to try things out or provide additional information about this configuration in a few days time.

Reply
0 Kudos
4 Replies
2hansen
Contributor
Contributor

I am experiencing similar problems with Windows Vista Enterpise 32-bit (Guest) on Ubuntu 7.10 (Host; hardware HP Compaq nw8440 (with a SATA drive).

I can install Vista natively - but then I am not able to boot it virtually; and vice versa.

mhw's suggestion with manually editing *.vmx and *.vmdk makes Vista boot virtually, but I haven't been able to "switch back" to SCSI mode; when trying I am met with theSTOP 0x0000007B error. No Vista startup recovery tools seem to solve the issue.

Is there known problems with the SCSI-driver in Vista?

B:)

Reply
0 Kudos
vksac
Contributor
Contributor

Hello guys,

regarding mhw's suggestion. I manually edited the vmx and vmdk file and still not able to boot this operating system (native vista). I am putting down the vmx & vmdk files here. Can anyone please indicate where am I exactly messing up?

Thanks.

Vivek.

Vista.vmdk file:

  1. Extent description

RW 63 FLAT "vivek.mbr" 0

RW 1985 ZERO

RW 143360000 FLAT "/dev/sda" 2048

RW 675840000 ZERO

RW 497 ZERO

RW 401625 FLAT "/dev/sda" 819202545

RW 63 FLAT "Windows Vista (experimental)-pt.vmdk" 63

RW 157163832 ZERO

RW 5103 ZERO

  1. The Disk Data Base

#DDB

ddb.virtualHWVersion = "4"

ddb.geometry.cylinders = "60801"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.geometry.biosCylinders = "60801"

ddb.geometry.biosHeads = "255"

ddb.geometry.biosSectors = "63"

ddb.adapterType = "ide"

vmx file description:

#!/usr/bin/vmware

config.version = "8"

virtualHW.version = "4"

scsi0.present = "TRUE"

memsize = "916"

ide0:0.present = "TRUE"

ide0:0.fileName = "Windows Vista (experimental)-2.vmdk"

ide0:0.writeThrough = "FALSE"

ide0:0.deviceType = "rawDisk"

ide1:0.present = "TRUE"

ide1:0.fileName = "auto detect"

ide1:0.deviceType = "cdrom-raw"

floppy0.fileName = "/dev/fd0"

Ethernet0.present = "TRUE"

displayName = "Windows Vista (experimental)"

guestOS = "longhorn"

priority.grabbed = "normal"

priority.ungrabbed = "normal"

powerType.powerOff = "hard"

powerType.powerOn = "hard"

powerType.suspend = "hard"

powerType.reset = "hard"

ide0:0.redo = ""

ethernet0.addressType = "generated"

uuid.location = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

uuid.bios = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

ethernet0.generatedAddress = "00:0c:29:9f:8a:96"

ethernet0.generatedAddressOffset = "0"

ide0:0.mode = "independent-persistent"

ide1:0.autodetect = "TRUE"

ide1:0.startConnected = "FALSE"

extendedConfigFile = "Windows Vista (experimental).vmxf"

virtualHW.productCompatibility = "hosted"

tools.upgrade.policy = "manual"

Earlier the vmx file was:-

#!/usr/bin/vmware

config.version = "8"

virtualHW.version = "4"

scsi0.present = "TRUE"

memsize = "916"

scsi0:0.present = "TRUE"

scsi0:0.fileName = "Windows Vista (experimental)-2.vmdk"

scsi0:0.writeThrough = "FALSE"

scsi0:0.deviceType = "rawDisk"

ide1:0.present = "TRUE"

ide1:0.fileName = "auto detect"

ide1:0.deviceType = "cdrom-raw"

floppy0.fileName = "/dev/fd0"

Ethernet0.present = "TRUE"

displayName = "Windows Vista (experimental)"

guestOS = "longhorn"

priority.grabbed = "normal"

priority.ungrabbed = "normal"

powerType.powerOff = "hard"

powerType.powerOn = "hard"

powerType.suspend = "hard"

powerType.reset = "hard"

scsi0:0.redo = ""

ethernet0.addressType = "generated"

uuid.location = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

uuid.bios = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

ethernet0.generatedAddress = "00:0c:29:9f:8a:96"

ethernet0.generatedAddressOffset = "0"

scsi0:0.mode = "persistent"

ide1:0.autodetect = "TRUE"

ide1:0.startConnected = "FALSE"

extendedConfigFile = "Windows Vista (experimental).vmxf"

virtualHW.productCompatibility = "hosted"

tools.upgrade.policy = "manual"

I am able boot the system, getting the grub prompt but then once I hit Vista option, it simply takes me to the vista partition and I get a blank screen and boot up sequence hangs entirely. I have Vista ulitmate. Also, the blank screen is not entirely blank but has lines on it. Although, I have a SATA 2 Hitachi deskstar E7K500 drive, under device manager, under the disk drives section in device manager, the drive shows up as HDS72505 0KLA360 SCSI Disk Device. By list the vmx and vmdk files with scsi0 option also I am not able to access the drive. Can some one provide some pointers?

Reply
0 Kudos
2hansen
Contributor
Contributor

Not that I am an expert. But I would remove the '"scsi0.present = "TRUE"' line as well.

To make things simpler I created a new virtual machine, and edited the files immediately after (that is before first boot) - then the files are simpler (sometimes stuff builds up in the vmx-file)

Good luck

Reply
0 Kudos
vksac
Contributor
Contributor

Hello,

Thanks for responding quickly. I appreciate this. My post the other day about the vmx file was a bad one. I was switching back & forth between vmware server and vmware player installs. Vmware player creates additional files (in the directory of virtual machines) and hence I sort of put up a wrong file that I had previously used, while trying.

Anyways, I did try your ideas extensively again today as I did that the other day also (making everything of id0 type instead of scsi0). Also tried booting up vista after deleting that specific line instead of replacing scsi with ide. No progress!

It gets into the windows partition and then completely freezes. The fact that I partially get a blank screen, I thought may be this has to do with the display driver in Vista, hence took that out but could not make progress. What intrests me is the fact that I have an SATA 2 drive (hitachi) and the device manager displays the disk controller as a SCSI device. Any ways.....if you or anyone know some thing more....or any fresh ideas ....it shall be great and very interesting.

Here is a fresh copy of vmx and vmdk files.... I am also putting up an image of the recognized file.

VMX file:

#!/usr/bin/vmware

config.version = "8"

virtualHW.version = "4"

ide0.present = "TRUE"

memsize = "916"

ide0:0.present = "TRUE"

ide0:0.fileName = "Windows Vista (experimental).vmdk"

ide0:0.writeThrough = "TRUE"

ide0:0.deviceType = "rawDisk"

ide1:0.present = "TRUE"

ide1:0.fileName = "/dev/scd0"

ide1:0.deviceType = "cdrom-raw"

floppy0.fileName = "/dev/fd0"

Ethernet0.present = "TRUE"

displayName = "Windows Vista (experimental)"

guestOS = "longhorn"

priority.grabbed = "normal"

priority.ungrabbed = "normal"

powerType.powerOff = "hard"

powerType.powerOn = "hard"

powerType.suspend = "hard"

powerType.reset = "hard"

ide0:0.redo = ""

ethernet0.addressType = "generated"

uuid.location = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

uuid.bios = "56 4d 46 f3 a5 33 72 76-1b 60 a0 8c 6b 9f 8a 96"

ethernet0.generatedAddress = "00:0c:29:9f:8a:96"

ethernet0.generatedAddressOffset = "0"

extendedConfigFile = "Windows Vista (experimental).vmxf"

virtualHW.productCompatibility = "hosted"

tools.upgrade.policy = "manual"

VMDK file:-

  1. Disk DescriptorFile

version=1

CID=04b66aaf

parentCID=ffffffff

createType="partitionedDevice"

  1. Extent description

RW 63 FLAT "Windows Vista (experimental)-pt.vmdk" 0

RW 1985 ZERO

RW 143360000 FLAT "/dev/sda" 2048

RW 675840000 ZERO

RW 497 ZERO

RW 401625 FLAT "/dev/sda" 819202545

RW 63 FLAT "Windows Vista (experimental)-pt.vmdk" 63

RW 157163832 ZERO

RW 5103 ZERO

  1. The Disk Data Base

#DDB

ddb.virtualHWVersion = "4"

ddb.geometry.cylinders = "60801"

ddb.geometry.heads = "255"

ddb.geometry.sectors = "63"

ddb.geometry.biosCylinders = "60801"

ddb.geometry.biosHeads = "255"

ddb.geometry.biosSectors = "63"

ddb.adapterType = "ide

Reply
0 Kudos