Huihong Luo wrote:
after the fix, VHD->VMDk seems to be working fine, but VHD->VDI still not working, the generated vdi disk throws invalid header error.

Don't think it's a good idea to apply the change before understanding what's still going wrong in the VDI case. Should be pretty easy to figure out, by running "VBoxManage internalcommands dumphdinfo /path/to/broken.vdi", and setting a breakpoint on vdiValidateHeader. With a little bit of single stepping one should immediately see what's causing trouble. The VDI code is very paranoid.

Klaus


--- On *Wed, 10/7/09, Huihong Luo /<[email protected]>/* wrote:


    From: Huihong Luo <[email protected]>
    Subject: [vbox-dev] VDCopy() fix for VHD
    To: [email protected]
    Date: Wednesday, October 7, 2009, 12:30 AM

    Can you guys add the following code to function VDCopy() in
    VBoxHDD.cpp? right before VDCreateBase() is called.
It resets the geometry if cSectors > 63, VHD disk somehow has more
    than 63 sectors.
/* vmlite, fix converting error from VHD */
        if (PCHSGeometryFrom.cHeads > 16 || PCHSGeometryFrom.cSectors > 63)
        {
         Assert(RT_MIN(cbSize / 512 / 16 / 63, 16383) -
(unsigned int)RT_MIN(cbSize / 512 / 16 / 63, 16383) == 0); PCHSGeometryFrom.cCylinders = (unsigned int)RT_MIN(cbSize / 512
    / 16 / 63, 16383);
         PCHSGeometryFrom.cHeads = 16;
         PCHSGeometryFrom.cSectors = 63;
        }
        /* vmlite */
                    rc = VDCreateBase(pDiskTo, pszBackend, pszFilename,
    cbSize,
                                      uImageFlags, szComment,
                                      &PCHSGeometryFrom, &LCHSGeometryFrom,
                                      NULL, uOpenFlagsFrom &
    ~VD_OPEN_FLAGS_READONLY, NULL, NULL);
                    if (RT_SUCCESS(rc) && !RTUuidIsNull(&ImageUuid))
pDiskTo->pLast->Backend->pfnSetUuid(pDiskTo->pLast->pvBackendData,
    &ImageUuid);
                    if (RT_SUCCESS(rc) && !RTUuidIsNull(&ParentUuid))
pDiskTo->pLast->Backend->pfnSetParentUuid(pDiskTo->pLast->pvBackendData,
    &ParentUuid);
- Huihong


    -----Inline Attachment Follows-----

    _______________________________________________
    vbox-dev mailing list
    [email protected]
    <http://us.mc343.mail.yahoo.com/mc/[email protected]>
    http://vbox.innotek.de/mailman/listinfo/vbox-dev


------------------------------------------------------------------------

_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev

_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev

Reply via email to