Parallels 4 does not detect BootCamp disk

Discussion in 'Installation and Configuration of Parallels Desktop' started by Rob S, Mar 17, 2009.

  1. Rob S

    Rob S Junior Member

    Messages:
    16
    The following is my diskutil list output:

    My Boot Camp partition is on a sole disk, which is disk0 (disk0s2, NTFS formated). I have a Mac Pro booting 10.5.6 from disk2.

    Whatever I do, I can't have my Boot Camp partition detected by Parallels. From the disks above, only disk4s1 is available when asking to specify Boot Camp disk details, in the New Custom Virtual Machine dialog.

    Thanks for your reply in advance.

    RobS
     
  2. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Try creating the VM with whatever data Parallels Desktops allows you to (disk4s1 in this case), then manually editing the DiskDescriptor.xml file for pointing the virtual disk to the appropiate partition.

    In this article you can find how to locate the DiskDescriptor.xml file and how to find the appropiate data for editing it.

    In your case, you should edit the <Storage> entry that is actually pointing to disk4s1 in order to point to disk0s2. But the sizes of the disks are different, so this requires more tweaking that just changing disk4s1 to disk0s2. You need also to adjust the values for <DiskSize> and <Cylinders>, and relocate the positions for the PyshicalGptCopy.hds file (the 3rd. <Storage> section). Here's how:

    1- Use Partition Inspector (stand-alone app located in the rEFIt package) for getting info on your disk0. Read the values at the "End LBA" column and write down the highest one. Let's call this value EndLBA.

    2- Open DiskDescriptor.xml (make a backup first), then edit the <Cylinders> and <DiskSize> values:

    Cylinders = the integer part of: (EndLBA+1008) / 1008.
    DiskSize = Cylinders * 1008

    3- Relocate the <Start> and <End> values for the 3rd <Storage> section, that correspond to the PyshicalGptCopy.hds file. First, write down the difference between current End and Start values (Diff).

    End = DiskSize
    Start = DiskSize - Diff

    4- Edit the 4rd <Storage> section in order to make it point to the correct partition. You need to change the values <Start>, <End> and <File>:

    Start = the "Start LBA" value for your partition as shown by Partition Inspector.
    End = the "End LBA" value for your partition as shown by Partition Inspector.
    File = /dev/disk0s2

    Save the file and try starting your VM now. Cross the fingers :)
    If you want, post here the output of Partition Inspector (need the partition tables for your disk0 only) and the contents of your DiskDescriptor.xml file, then I'll calculate or review the correct values.
     
  3. Rob S

    Rob S Junior Member

    Messages:
    16
    Well I tried this but I get an error saying "A configuration disk error has occurred. Make sure that you have read/write permissions for the disk". I even tried to create 2 partitions in disk4, resulting the same.

    The parallels.log says the following:.


    21:12:37.795 F /disp:460:B0595000/ Processing command 'DspCmdDirVmCreate' 2023
    21:12:37.796 F /gui:901:A0076720/ localhost: sending [DspCmdDirVmCreate] request for VM {eaf66bed-1862-450a-9da5-ae9bccf01250} [] ...
    21:12:37.800 F /disp:460:B0617000/ Task '15Task_RegisterVm' with uuid = {a501808c-8eb0-4855-9234-d6912c2ad561} was started
    21:12:37.806 F /CAuth:460:B0617000/ stat64() has returned error: No such file or directory, /Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/config.pvs
    21:12:37.806 F /CAuth:460:B0617000/ stat64() has returned error: No such file or directory, /Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm
    21:12:37.806 F /CAuth:460:B0617000/ stat64() has returned error: No such file or directory, /Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm
    21:12:37.806 F /CAuth:460:B0617000/ stat64() has returned error: No such file or directory, /Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm
    21:12:37.807 F /disp:460:B0617000/ Error: Windows Applications folder not found for "/Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Windows Applications"
    21:12:37.908 F /dimg:460:B0699000/ Open: try to open dev: /dev/disk4s1
    21:12:37.908 F /dimg:460:B0699000/ Open: /dev/ removed from device name disk4s1
    21:12:37.908 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk2s2. Need disk4s1 [1]
    21:12:37.908 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk1s2. Need disk4s1 [2]
    21:12:37.908 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk0s2. Need disk4s1 [3]
    21:12:37.908 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk6s2. Need disk4s1 [4]
    21:12:37.908 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk4s2. Need disk4s1 [5]
    21:12:37.909 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk4s1. Need disk4s1 [6]
    21:12:38.535 F /HostUtils:460:B0699000/ Unmounting volume TESTE1 [disk4s1] ...
    21:12:38.617 F /dimg:460:B0699000/ Open: File opened. Handle is 32
    21:12:38.618 F /vdisk:460:B0617000/ SetUserParameter: adding new value 'CompatLevel'='level2'
    21:12:39.030 F /BCToolHelper:460:B0617000/ Preparing BootCamp '/Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Maxtor OneTouch II.hdd' (pwd=MacOS)...
    21:12:39.030 F /BCToolHelper:460:B0617000/ Command: "/Library/Parallels/Parallels Service.app/Contents/MacOS/BootcampConfigurator" --hdd "/Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Maxtor OneTouch II.hdd" --boot "/Library/Parallels/Parallels Service.app/Contents/MacOS/prl_boot" --para "/Library/Parallels/Parallels Service.app/Contents/MacOS/prl_pv" >/tmp/BCRdmKwH 2>&1
    21:12:39.066 F /BootcampConfigurator:1554:B0081000/ {AdaptArgumentsLine @ BootcampConfigurator.cpp:69} Parallels Boot Camp Configuration Utility v1.0

    21:12:39.067 F /BootcampConfigurator:1554:B0081000/ {AdaptArgumentsLine @ BootcampConfigurator.cpp:97} HDD name is /Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Maxtor OneTouch II.hdd

    21:12:39.067 F /BootcampConfigurator:1554:B0081000/ {AdaptArgumentsLine @ BootcampConfigurator.cpp:102} BOOT driver name is /Library/Parallels/Parallels Service.app/Contents/MacOS/prl_boot

    21:12:39.067 F /BootcampConfigurator:1554:B0081000/ {AdaptArgumentsLine @ BootcampConfigurator.cpp:107} PARAVIRT driver name is /Library/Parallels/Parallels Service.app/Contents/MacOS/prl_pv

    21:12:39.070 F /BootcampConfigurator:1554:B0081000/ {main_impl @ BootcampConfigurator.cpp:217} Loading Parallels SDK ...
    21:12:39.074 F /BootcampConfigurator:1554:B0081000/ {main_impl @ BootcampConfigurator.cpp:231} Starting BootCamp reconfiguration for HDD '/Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Maxtor OneTouch II.hdd'
    21:12:39.074 F /OsAccess:1554:B0081000/ Initing virtual computer representation ...
    21:12:39.076 F /dimg:1554:B0185000/ Open: try to open dev: /dev/disk4s1
    21:12:39.077 F /dimg:1554:B0185000/ Open: /dev/ removed from device name disk4s1
    21:12:39.077 F /HostUtils:1554:B0185000/ Dynamically loaded functions addresses: PHB 0x90bda2c4 FSG 0x90bc6d2c
    21:12:39.078 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk2s2. Need disk4s1 [1]
    21:12:39.078 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk1s2. Need disk4s1 [2]
    21:12:39.078 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk0s2. Need disk4s1 [3]
    21:12:39.079 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk6s2. Need disk4s1 [4]
    21:12:39.079 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk4s2. Need disk4s1 [5]
    21:12:39.079 F /dimg:1554:B0185000/ FSGetCatalogInfo returned name disk4s1. Need disk4s1 [6]
    21:12:59.102 F /HostUtils:1554:B0185000/ Unmounting volume TESTE1 [disk4s1] ...
    21:12:59.183 F /dimg:1554:B0185000/ Open: File opened. Handle is 11
    21:12:59.184 F /dimg:1554:B0081000/ Disk is not opened. [0x0]
    21:12:59.184 F /dimg:1554:B0081000/ Disk is not opened. [0x0]
    21:12:59.184 F /dimg:1554:B0081000/ Disk is not opened. [0x0]
    21:12:59.184 F /dimg:1554:B0081000/ Disk is not opened. [0x0]
    21:12:59.185 F /OsAccess:1554:B0081000/ Initing bootcamp partition ...
    21:12:59.185 F /OsAccess:1554:B0081000/ Autodetection of BootCamp partition (2 partitions found) ...
    21:12:59.185 F /OsAccess:1554:B0081000/ Probing partition #1 ...
    21:12:59.917 F /OsAccess:1554:B0081000/ Mounting filesystem ...
    21:12:59.917 F /OsAccess:1554:B0081000/ Getting root directory ...
    21:12:59.918 F /OsAccess:1554:B0081000/ InitSystemDirName() file 'boot.ini' open error (DaAPIWrap error code 0x8103111).
    21:12:59.918 F /OsAccess:1554:B0081000/ InitSystemDirName() using default system root directory
    21:12:59.918 F /OsAccess:1554:B0081000/ Detected Windiws path: Windows
    21:12:59.918 F /OsAccess:1554:B0081000/ Initing registry hives ...
    21:12:59.918 F /OsAccess:1554:B0081000/ Opening file Windows\System32\config\software ...
    21:12:59.918 F /OsAccess:1554:B0081000/ Failed to open file Windows\System32\config\software
    21:12:59.919 F /OsAccess:1554:B0081000/ Failed to init registry hives
    21:12:59.919 F /OsAccess:1554:B0081000/ Failed to init BootCamp configuration
    21:13:00.162 F /BootcampConfigurator:1554:B0081000/ {UpdateCompatLevel @ BootcampConfigurator.cpp:170} Compatibility Level 4294967295 enabled for VM
    21:13:00.163 F /BootcampConfigurator:1554:B0081000/ {main_impl @ BootcampConfigurator.cpp:268} BootCamp reconfiguration finished: 4294967196
    21:13:00.167 F /BCToolHelper:460:B0617000/ Cmd result: 39936
    21:13:00.167 F /disp:460:B0617000/ Failed to configure Boot Camp Image '/Users/MacPro/Documents/Parallels/Boot Camp WinXP.pvm/Maxtor OneTouch II.hdd' - reverting ...
    21:13:00.168 F /dimg:460:B0699000/ Open: try to open dev: /dev/disk4s1
    21:13:00.168 F /dimg:460:B0699000/ Open: /dev/ removed from device name disk4s1
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk2s2. Need disk4s1 [1]
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk1s2. Need disk4s1 [2]
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk0s2. Need disk4s1 [3]
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk6s2. Need disk4s1 [4]
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk4s2. Need disk4s1 [5]
    21:13:00.169 F /dimg:460:B0699000/ FSGetCatalogInfo returned name disk4s1. Need disk4s1 [6]
    21:13:01.095 F /pvsHostInfo:460:B038D000/ [GetCDList] Can not get dictionary value "od-media-type"
    21:13:20.197 F /HostUtils:460:B0699000/ Unmounting volume TESTE1 [disk4s1] ...
    21:13:20.276 F /dimg:460:B0699000/ Open: File opened. Handle is 30
    21:13:20.753 F /disp:460:B0617000/ Error occurred while registering configuration with code [0x80000419][PRL_ERR_CANT_CONFIGURE_PARTITION_HDD]
    21:13:20.753 F /disp:460:B0617000/ Error occurred while registering configuration with code [0x80000419][PRL_ERR_CANT_CONFIGURE_PARTITION_HDD]
    21:13:20.754 F /disp:460:B0617000/ Error occurred while registering configuration with code [0x80000419][PRL_ERR_CANT_CONFIGURE_PARTITION_HDD]
    21:13:20.754 F /disp:460:B0617000/ Task '15Task_RegisterVm' with uuid = {a501808c-8eb0-4855-9234-d6912c2ad561} was finished
    21:13:20.756 F /gui:901:A0076720/ localhost: received result for [DspCmdDirVmCreate]. RC = [PRL_ERR_CANT_CONFIGURE_PARTITION_HDD]
    21:13:20.757 F /gui:901:A0076720/ Showing message box. Type = [Critical, PRL_ERR_CANT_CONFIGURE_PARTITION_HDD]. Id = {eaf66bed-1862-450a-9da5-ae9bccf01250}
    21:16:45.328 F /gui:901:A0076720/ The message box is closed.
    21:16:45.329 F /disp:460:B0595000/ Processing command 'DspCmdUserCancelOperation' 2053

    If I can't use this disk (disk4...), I don't have any other available... For your information, the disk is connected by Firewire.

    Thanks in advance.

    RobS
     
    Last edited: Mar 18, 2009
  4. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Edit the file config.pvs located inside your Boot Camp virtual machine file (.pvm, "Show package contents"). It's an XML file, open it with TextEdit.

    Do a search for disk4s1, then replace it with disk0s2. It should look like this:

    Code:
    <hdd>
    [I]... (some values)[/I]
        <Partition>
            <SystemName>/dev/disk0s2</SystemName>
        </Partition>
    <hdd>
    Save the file.
    Also verify that the DiskDescriptor.xml file still contains the proper values.

    If you receive an error "Cannot connect with hard disk", try unmounting the drive 0 before starting the Virtual Machine.

    NOTE: You may need to edit the <Size> value also. It's one of the values inside the <hdd> section. In my case, I noticed that the value is:

    <Size> = the integer part of <Disk_size> / 2048

    <Disk_size> is the value calculated above for the DiskDescriptor.xml file. You may verify if you get the same ratio by looking at the original values for <Disk_size> (DiskDescriptor.xml) and <Size> (config.pvs).
     
    Last edited: Mar 19, 2009
  5. Rob S

    Rob S Junior Member

    Messages:
    16
    Angel

    Thanks for your reply. The question regarding the error I reproduced above is that no .pvm file is created. When trying to create a virtual machine based on Boot Camp, the process never reaches the end. And no .pvm file exists to edit.

    Unless I create a "standard" VM, not a Boot Camp one. Is this what you are saying? Because trying to create a Boot Camp virtual machine pointing to disk4 is not possible.

    RobS

    Update: I don't know if this helps: I used to have BootCamp booting in VMWare Fusion... I now want to use Parallels so I unistalled Fusion from my Mac.
     
    Last edited: Mar 19, 2009
  6. Rob S

    Rob S Junior Member

    Messages:
    16
    Well, reading all the log I tried to understand what was going on. It happens that on disk4s1 there is no Windows installed. So I think that the creation of the VM aborts.

    I tried to arrange yet another USB disk with a Windows XP already installed, which I managed to do. I plugged it in and started Parallels Desktop. I was then able to creat a boot camp virtual machine (...). So I tried to follow the directions on your first post.

    Unfortunately, I got stuck right on the 3rd <Storage> section, that doesn't exist on the the DiskDescriptor.xml file.

    This is my DiskDescriptor.xml file:

    Code:
    <Parallels_disk_image Version="1.0" >
        <Disk_Parameters>
            <Disk_size>156301488</Disk_size>
            <Cylinders>155061</Cylinders>
            <Heads>16</Heads>
            <Sectors>63</Sectors>
            <Padding>0</Padding>
            <Miscellaneous>
                <CompatLevel>level2:p</CompatLevel>
            </Miscellaneous>
        </Disk_Parameters>
        <StorageData>
            <Storage>
                <Start>0</Start>
                <End>1</End>
                <Blocksize>1008</Blocksize>
                <Image>
                    <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID>
                    <Type>Plain</Type>
                    <Flags/>
                    <File>PhysicalMbr.hds</File>
                </Image>
            </Storage>
            <Storage>
                <Start>63</Start>
                <End>78156224</End>
                <Blocksize>1008</Blocksize>
                <Image>
                    <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID>
                    <Type>Bootcamp</Type>
                    <Flags/>
                    <File>/dev/disk5s1</File>
                </Image>
            </Storage>
        </StorageData>
        <Snapshots>
            <Shot>
                <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID>
                <ParentGUID>{00000000-0000-0000-0000-000000000000}</ParentGUID>
            </Shot>
        </Snapshots>
    </Parallels_disk_image>
    And this is my Partition Inspector data:

    Code:
    *** Report for internal hard disk ***
    
    Current GPT partition table:
     #      Start LBA      End LBA  Type
     1             40       409639  EFI System (FAT)
     2         409640    625140295  Basic Data
    
    Current MBR partition table:
     # A    Start LBA      End LBA  Type
     1              1       409639  ee  EFI Protective
     2 *       409640    625140295  07  NTFS/HPFS
    
    MBR contents:
     Boot Code: Unknown, but bootable
    
    Partition at LBA 40:
     Boot Code: None (Non-system disk message)
     File System: FAT32
     Listed in GPT as partition 1, type EFI System (FAT)
    
    Partition at LBA 409640:
     Boot Code: Windows NTLDR
     File System: NTFS
     Listed in GPT as partition 2, type Basic Data
     Listed in MBR as partition 2, type 07  NTFS/HPFS, active
    What changes should I make to diskdescriptor.xml?

    Update

    I was able to update both files with some data calculated with your instructions. I updated the 2nd Storage section in DiskDescriptor.xml with that data, even though it points to a PhysicalMbr.hds file and not to a PhysicalGptCopy.hds.

    This way I was able to start the Virtual Machine, which triggers a configuration step "Please wait while your virtual machine is being configured... [..] (Step 1 of 4)". In the middle of Step 1 it says that I have to manually do something on the virtual machine (You need to manually continue the configuration process.).

    It then tries to boot the VM but it stucks with the following information:

    Code:
    Parallels(R) VGA-Compatible BIOS Version 3.0.2111.89721
    
    4.0.3810.351321 Fri, 23 Jan 2009 16:33:16
    
    2048 MB Physical memory installed
    
    SCSI controller is not installed.
    Network bootrom is installed.
    Trying to boot from Primary Master IDE drive ...
    
    boot0: MBR
    boot0: MBR
    boot0: error
    And I am stuck again. I can imagine this is because my USB disk was MBR partitioned and disk0 is GUID partitioned...

    How to proceed?

    Thanks in advance

    RobS
     
    Last edited: Mar 19, 2009
  7. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Just for recap, here are the values I've calculated from your data:

    Code:
    [B]DiskDescriptor.xml[/B]
        <Cylinders> = 620179
        <Disk_size> = 625140432
    Second <Storage> section:
        <Start> = 409640
        <End> = 625140295
        <File> = /dev/disk0s2
    
    [B]config.pvs <hdd> section[/B]
        <Size> = 305244
        <SystemName> = /dev/disk0s2
    It seems that these values have pointed the virtual hard disk to the correct partition, but it's "exposing" the MBR code of the USB disk were the VM was created from. We must provide the virtual hard disk with the proper MBR code from the Boot Camp disk.

    If the VM was originally created from the Boot Camp disk, then the DiskDeskcriptor file would have included the appropiate sections for the GPT data. As the VM was created from a non-GPT disk, then it just included the MBR and the target partition. Windows doesn't need to know about the GPT data, so it should work anyways without these sections (they would appear as non-partitioned empty space in the virtual hard disk). The MBR should be enough for Windows, so let's try fixing this first.

    Update: It seems that Windows actually require the GPT data to be present. See post #17 for complete instructions on recreating the GPT data in the PD4 virtual disk.

    Please do a WinClone backup of your current Boot Camp partition (disk0s2) prior to continue. If you have enough disk space, I'd also recommend you to create a full image of the entire disk using Disk Util (File > New > Disk image from disk0). Parallels Desktop should not "touch" anything in the physical hard disk that is not included in the DiskDescriptor.xml file, but I don't know it for sure.

    Setting the correct MBR in the virtual hard disk:

    - Open the .hdd file where DiskDescriptor.xml is located (i.e. BootCamp.pvm > harddisk.hdd). A file named PhysicalMbr.hds is also located there. Rename this file to PhysicalMbr_OLD.hds.

    - Open Terminal, then type:

    Code:
    sudo dd if="/dev/disk0" of="PhysicalMbr.hds" bs=512 count=1
    Enter your password. A new file PhysicalMbr.hds will be created in your account's root.

    - Move the new PhysicalMbr.hds file to the same location as the old one.

    Ensure that config.pvs and DiskDescriptor.xml still contain the proper values calulated above, then start the Virtual Manchine.

    Edit: Check out your DiskDescriptor.xml file. According to the content of your last post, it seems there's a mistake in the <CompatLevel> tag, it should read:

    <CompatLevel>level2</CompatLevel>
     
    Last edited: Apr 2, 2009
  8. Rob S

    Rob S Junior Member

    Messages:
    16
    Unfortunatly I still get an error when starting the VM. I have copied the command to terminal and the new file was created, and I moved it to the same place as the old PhysicalMbr.hds. I had to repair the authorizations and owner for the file and started the VM.

    The error is the following:

    Code:
    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.
    
    I still need your help to solve yet this new issue.

    Thanks in advance.

    RobS


    I copy bellow the log within the Boot Camp XP.pvm:

    Code:
    22:29:43.764 F /dimg:4964:B0595000/   Open: try to open dev: /dev/disk0s2
    22:29:43.764 F /dimg:4964:B0595000/   Open: /dev/ removed from device name disk0s2
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk2s2. Need disk0s2 [1]
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk1s2. Need disk0s2 [2]
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name /Volumes/Public Data. Need disk0s2 [3]
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk3s2. Need disk0s2 [4]
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk3s1. Need disk0s2 [5]
    22:29:43.765 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk4s1. Need disk0s2 [6]
    22:29:43.766 F /dimg:4964:B0595000/   FSGetVolumeInfo failed with error -35 [7:disk0s2]
    22:29:43.766 F /dimg:4964:B0595000/   Open: Can't get mounted path for device disk0s2
    22:29:44.042 F /IPCFileOpenClnt:4964:B0595000/   SUO: Error at other side 16
    22:29:44.043 F /dimg:4964:B0595000/   Open: 'disk0s2' SUO device open error. (0x80000016)
    22:29:44.043 F /dimg:4964:B0595000/   Open: '' SU device open error. (22)
    22:29:45.043 F /dimg:4964:B0595000/   Open: try to open dev: /dev/disk0s2
    22:29:45.044 F /dimg:4964:B0595000/   Open: /dev/ removed from device name disk0s2
    22:29:45.044 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk2s2. Need disk0s2 [1]
    22:29:45.044 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk1s2. Need disk0s2 [2]
    22:29:45.044 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name /Volumes/Public Data. Need disk0s2 [3]
    22:29:45.045 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk3s2. Need disk0s2 [4]
    22:29:45.045 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk3s1. Need disk0s2 [5]
    22:29:45.045 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk4s1. Need disk0s2 [6]
    22:29:45.045 F /dimg:4964:B0595000/   FSGetCatalogInfo returned name disk0s2. Need disk0s2 [7]
    22:29:45.873 F /dimg:4964:B0595000/   Open: File opened. Handle is 1f
    22:29:45.874 F /dimg:4964:B0289000/   Disk is not opened. [0x0]
    22:29:45.874 F /dimg:4964:B0289000/   Disk is not opened. [0x0]
    22:29:45.874 F /vm:4964:B0289000/   [Profile] IDE HDD 0 creation time is 2126 msecs
    Just for your validation, these are the relevant parts of DiskDescriptor.xml and config.pvs:

    Code:
        [I]<Disk_Parameters>[/I]
            <Disk_size>625140432</Disk_size>
            <Cylinders>620179</Cylinders>
            <Heads>16</Heads>
            <Sectors>63</Sectors>
            <Padding>0</Padding>
            <Miscellaneous>
                <CompatLevel>level2</CompatLevel>
            </Miscellaneous>
        </Disk_Parameters>
    
            [I]<Storage>[/I]
                <Start>409640</Start>
                <End>625140295</End>
                <Blocksize>1008</Blocksize>
                <Image>
                    <GUID>{5fbaabe3-6958-40ff-92a7-860e329aab41}</GUID>
                    <Type>Bootcamp</Type>
                    <Flags/>
                    <File>/dev/disk0s2</File>
                </Image>
            </Storage>
    
    ...........
    
          [I]<Hdd>[/I]
             <Index>0</Index>
             <Enabled>1</Enabled>
             <Connected>1</Connected>
             <EmulatedType>3</EmulatedType>
             <SystemName>FUJITSU MHY2080BH.hdd</SystemName>
             <UserFriendlyName>FUJITSU MHY2080BH</UserFriendlyName>
             <Remote>0</Remote>
             <InterfaceType>0</InterfaceType>
             <StackIndex>0</StackIndex>
             <DiskType>1</DiskType>
             <Size>305244</Size>
             <SizeOnDisk>0</SizeOnDisk>
             <Passthrough>0</Passthrough>
             <Splitted>0</Splitted>
             <DiskVersion>2</DiskVersion>
             <Partition>
                <SystemName>/dev/disk0s2</SystemName>
             </Partition>
          </Hdd>
     
  9. Rob S

    Rob S Junior Member

    Messages:
    16
    Doesn't my problem have a solution?
     
  10. Rob S

    Rob S Junior Member

    Messages:
    16
    Well, one question before I give up.

    I have my BootCamp partition in a complete hard disk, which is not detected by parallels. If I create a new VM, not a BootCamp, can I still use this disk completely an uniquely for Windows? Will Parallels detect the disk even if not as a Boot Camp?

    Thanks in advance

    Robs
     
  11. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Hello, sorry for the delay. I believe there's a solution for your problem.
    I need to know the content of the boot.ini file located at the root of your Windows partition.
     
  12. Rob S

    Rob S Junior Member

    Messages:
    16
    Boot.ini is as follows:

    Code:
    [boot loader]
    timeout=30
    default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
     
  13. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Try changing partition(2) with partition(1) in the two lines where it appears, then save the file and start the Virtual Machine.

    Note that you need to revert the change in order to boot Windows natively. I just want to know if your Windows can really boot inside a PD4 virtual machine. If it does, then we can look forward to fix the problem with boot.ini.

    If this don't work, then I'd recommend you to try Parallels Desktop 3. As you can see in this article, is stupidly simple to configure Parallels Desktop 3 to boot Windows located in any partition.
     
  14. Rob S

    Rob S Junior Member

    Messages:
    16
    Well, changing boot.ini to partition(1) makes the VM to start booting. But it starts booting immediately, without the going through the configurations steps (with text "Please wait while your virtual machine is being configured...").

    And then it hangs with the Blue Screen of Death...
    Code:
    UNMOUNTABLE_BOOT_VOLUME
    STOP: 0x000000ED (0x8A64A9E0, 0xC000014F, 0x00000000,0x00000000)
    Retrying to boot, the Windows in Boot Camp presents the possibility to Start in Safe Mode, but the same thing happens.

    Question: which information can I post here to help solve yet this other problem? (Maybe it is related to the boot.ini change).



    BTW, for your information, I was able to create a standard VM and add a 2nd HDD to it, to which I did exactly the changes you were kind enough to document here, I have access to the Boot Camp partition within that VM, as a data disk. But I cannot boot from it as a Boot Camp Virtual Machine. :(
     
  15. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    Ok, it seems that the partition schemes are different between the real disk and the virtual disk. Creating a new VM and attaching the Windows partition as 2nd disk doesn't work because Windows must "see" the same partition scheme from both Boot Camp and Parallels Desktop.

    Now we need to know what's the partition scheme as seen from inside the Virtual Machine. Here's a way for retrieving it:

    1. First, revert boot.ini to the original state (partition(2)) and ensure that you can boot Windows in Boot Camp normally.

    2. Back to MacOS, open Parallels Desktop and configure the virtual machine in the same way as in the last attempt (except for the boot.ini file, leave this one unchanged). Also, configure it to boot from Windows setup disk:

    - Startup Order -> Move CD/DVD-ROM above Hard Disk 1.

    - Either insert your Windows setup disk in the drive, or attach a Windows disk image to the CD/DVD-ROM 1 in the virtual machine (boots faster using an ISO image)

    3. Boot the virtual machine. Press a key on the prompt "Press a key for booting from CD". After a while, the setup menu appears. Press R for start the recovery console.

    4. Now you should be prompt about the windows setup you want to log on. Only one option should appear (1: C:\WINDOWS), so type 1 and press Enter. Now you will be prompt for your Windows admin password. Enter it.

    5. Type DISKPART at the console prompt. The partition scheme appears. I need to know the content displayed inside the square.

    6. Now boot your mac with the Windows setup disk (hold C while booting) and repeat the steps 3-5. This way we could better compare the information.

    NOTE: As you have several fixed disks, I don't know how DISKPART will show the information. We need the data for the boot camp disk only.
     
  16. Rob S

    Rob S Junior Member

    Messages:
    16
    OK, I did this. The output of Diskpart when booting from windows install disk in the VM is as follows:

    Code:
    305243 MB Disk 0 at Id 0 on bus 0 on atapi [MBR]
     E: Partition1 [Unknown]               200 MB (200MB free)
     C: Partition2 (Local Disk) [NTFS]  305044 MB (203910MB free)
    When booting from the CD itself, the Recovery Console is not presented as an option. It seems that the previous windows installation is not detected. This also happens when choosing the Startup Disk in Systems Preferences - not listed there anymore. I think that something was done to the Boot Camp partition installation that it is not bootable anymore as Boot Camp. I managed to boot it using the CD and not pressing a key to boot from it and it boots OK but it doesn't detect the keyboard and the mouse, and I can't log in.

    Anyway, booting the installation CD, the setup program goes directly to the partition display to choose the partition to install windows, and presents the following partition list:

    Code:
    305243 MB Disk 0 at Id 0 on bus 0 on atapi [MBR]
     I: Partition1 [Unknown]            305245 MB (305245 MB free)
    
    305243 MB Disk 0 at Id 1 on bus 0 on atapi [MBR]
     J: Partition1 [Unknown]               200 MB (200MB free)
     C: Partition2 (Local Disk) [NTFS]  305044 MB (203910 MB free)
    
    70905 MB Disk 0 at Id 0 on bus 0 on atapi [MBR]
     K: Partition1 [Unknown]             70911 MB (70911 MB free)
    
    2001 MB on Disk 0 [MBR]
     D: Partition [FAT]                   2006 MB (475 MB free)
    Drive D: is just a flash USB drive that was plugged in at the time. Drive K: is my MacOSX boot drive (disk1), drive I: is a data disk, HFS+ formated (disk2).

    There is a strange think that happend that I don't know if it is relevant: after this process, I booted Mac OS with the CD in the drive and pressing Alt key to choose the disk to boot from. In this situation, the disks distribution was not the normal one:

    - disk0 instead of being the Boot Camp disk, it was the data disk
    - disk1 was the Boot Camp disk, instead of the MacOS boot disk
    - disk2 was the MacOS boot disk instead of the data disk

    Rebooting MacOSX solved this without the CD in drive, the disk order returned back to standard. Weird.

    Question: what is the next step in solving my problem, if there is one?

    Thanks for your support,

    Robs
     
  17. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    I've managed to recreate your problem as described in post #8 (Windows could not start...). I configured the same situation as you in the HDD file and DiskDescriptor.xml. And I've been able to repair it by manually reconstructing the virtual disk structure as expected by Parallels Desktop.

    First, ensure to have the exact situation as in post #8: Boot Camp works, but Parallels Desktop shows that error. You can get the Boot Camp windows work again by restoring the backup created with WinClone (post #7). Once restored, it will be available again at the boot manager.

    Verify that everything behaves as expected before continue (Boot Camp works vs. Parallels Desktop error "Windows could not start..."). Then open Terminal:

    1. Recreate the PhysicalMbr.hds file (it has been refreshed by WinClone):

    Code:
    sudo dd if="/dev/disk0" of="PhysicalMbr.hds" bs=512 count=1
    2. Create the PhysicalGpt.hds file

    Code:
    sudo dd if="/dev/disk0" of="PhysicalGpt.hds" bs=512 skip=1 count=33
    3. Create the PhysicalGptCopy.hds file. First, we need to know where the GPT copy is located in your disk (somewhere near the end). The exact position can be calculated from the PhysicalGpt.hds file:

    Code:
    hexdump -s 48 -n 4 -e '1/4 "%d\n"' PhysicalGpt.hds
    It will output a value. Increase it by 1 and let's call the result GPTPOS.

    GPTPOS = (output value) + 1

    Use it in the next command:

    Code:
    sudo dd if="/dev/disk0" of="PhysicalGptCopy.hds" bs=512 skip=GPTPOS count=33
    4. Change the owner of the files so you could use them normally

    Code:
    sudo chown $USER *.hds
    5. Copy the three files inside your Virtual Machine's HDD file. Overwrite the old PhysicalMbr.hds file.

    6. Edit DiskDescription.xml file. You should have two <Storage> sections inside the <StorageData> section, one for PhysicalMbr.hds and other for /dev/disk0s2. We need to add two new <Storage> sections by duplicating any of the existing ones, then editing the appropiate data only.

    New section 1:

    Code:
                <Start>1</Start>
                <End>34</End>
                <Type>Plain</Type>
                <File>PhysicalGpt.hds</File>
    New section 2 (use the GPTPOS value calculated at step 3):

    Code:
                <Start>GPTPOS</Start>
                <End>GPTPOS+33</End>
                <Type>Plain</Type>
                <File>PhysicalGptCopy.hds</File>
    It may have been coincidence in my case, but my value GPTPOS+33 is exactly equal to the value <Disk_size> in DiskDescriptor.xml. Check it out. If GPTPOS+33 is equal or lower than <Disk_size>, then it's ok. If it's bigger, then you must increase the <Cylinders> value by 1, then <Disk_size> = Cylinders * 1008 (post #2) (also modify <Size> in config.pvs, post #4).


    End. Now I started the Virtual Machine, Windows boots ok and works perfect. Hope it works the same in your side.
     
    Last edited: Apr 2, 2009
  18. Rob S

    Rob S Junior Member

    Messages:
    16
    Angel, thank you very much for your support. I was able to boot VM up but...

    ... unfortunately the Boot Partition is not coherent. I did restore the backup (before restoring I was getting BSoD everywhere) but it seams the backup was done when some damage was already done. The disk is still not available as a Startup Disk in system preferences.

    I twicked around, managed to login (the keyboard and mouse where not recognized, I had to plug in another USB keyboard which I connect directly to the VM and was able to work around). Most of the windows drivers reinstalled automatically after that. I also had to boot the recovery console (within VM) to disable intelppm as I was getting a BSoD related to that.

    I managed to install the Parallels tools but at first I didn't get Coherence working. I reinstalled it and rebooted, nothing. Then uninstalled, reboot, installed, reboot, and only then it started to work.

    Also, the VM is configured with 4 CPUs (my Mac Pro has 8 cores) but Windows only recognizes 1 CPU (maybe because of the intelppm thing).

    I am not even able to access the Control Panel...

    But your explanations where very good, thanks again. By the way, my GPTPOS+33 value is noty equal to the value <Disk_size> in DiskDescriptor.xml (GPTPOS+33 = 625.140.335 / disk_size = 625.140.432).

    I am evaluating a complete Windows reinstallation, and then repeat all the procedures you have gathered.

    Thanks again,

    RobS
     
  19. Rob S

    Rob S Junior Member

    Messages:
    16
    Update

    As I had to change the boot.ini as in posts #13/#14, I installed NTFS for Mac (Paragon) that installs MacFUSE. It seams that, when doing this, it is highly probable that the Boot Camp partition is no longer presented in as a Startup Disk.

    I uninstalled both programs and the Boot Camp partition is back as Startup Disk.

    But it boots only until the login screen, as it does not recognize the keyboard and the mouse. Plugging another USB keyboard does not help. I am stuck again. VM machine boots OK, with the problems I stated in the previous post.

    As in this situation the Parallels Desktop setup process did not run, isn't this partition doomed to either boot as a VM or as Boot Camp, but not both?
     
  20. Angel Garcia

    Angel Garcia Member

    Messages:
    23
    I don't know what else could we do to the Windows partition. We've done so many things already that now we can't be sure if the problems are caused by the Virtual Machine setup, or because Windows has been somewhat "corrupted", or because we haven't reproduced all neccesary steps required by Parallels Desktop. At least we've made it boot, so we are sure that it's possible to do so!

    So cosideering a complete Windows reinstallation, I'd recommend you to try this:

    1. Use the Boot Camp Assistant to fully recreate the Boot Camp partition, BUT: instead of having a single partition in that disk, ensure to have an additional, small HFS partition BEFORE the Boot Camp one.

    I don't know the exact steps as all that I have is a macbook with a single disk. You may need to use DiskUtil first to create a single, big HFS partition in that disk, then use the Boot Camp assistant for creating the Boot Camp partition. It should let you select the distribution of size among both partitions. Leave the HFS one as small as possible, so most of the disk will be used by Windows.

    Follow all instructions until you get a working Windows in Boot Camp.

    The goal of this procedure is simple: as Parallels Desktop ignored your Boot Camp partition as disk0s2 then it likely means that PD4 is internally instructed to do so, as that partition is typically used by MacOSX in every mac out of the box. Instead, now the Boot Camp partition will be named disk0s3, which is the typicall name for the Boot Camp partition!

    2. Start Parallels Desktop, create a new Virtual Machine and try to select your Boot Camp partition as disk.

    If everything goes as I expect, then PD4 should nicely allow you to select your Boot Camp partition, and the first time you start the Virtual Marchine (or try to configure it), Parallels Desktop will start the procedure for configuring your Boot Camp Windows inside the Virtual Machine. And everything will be successfull.

    If it doesn't... are you sure that there are Parallels Desktop 4 specific features you can't live without? Because version 3 sure that works nicely, even with Coherence, integration and all that. The only major difference between both versions I've found is the support for DirectX graphics, which is better in 4.
     

Share This Page