Index: /trunk/src/VBox/Devices/Storage/HBDMgmt-darwin.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/HBDMgmt-darwin.cpp	(revision 59048)
+++ /trunk/src/VBox/Devices/Storage/HBDMgmt-darwin.cpp	(revision 59049)
@@ -95,4 +95,7 @@
     /** The status code returned by the callback, after the operation completed. */
     DAReturn           rcDA;
+    /** A detailed error string in case of an error, can be NULL.
+     * Must be freed with RTStrFree(). */
+    char              *pszErrDetail;
 } HBDMGRDACLBKARGS;
 typedef HBDMGRDACLBKARGS *PHBDMGRDACLBKARGS;
@@ -207,8 +210,21 @@
 {
     PHBDMGRDACLBKARGS pArgs = (PHBDMGRDACLBKARGS)pvContext;
+    pArgs->pszErrDetail = NULL;
+
     if (!hDissenterRef)
         pArgs->rcDA = kDAReturnSuccess;
     else
+    {
+        CFStringRef hStrErr = DADissenterGetStatusString(hDissenterRef);
+        if (hStrErr)
+        {
+            const char *pszErrDetail = CFStringGetCStringPtr(hStrErr, kCFStringEncodingUTF8);
+            if (pszErrDetail)
+                pArgs->pszErrDetail = RTStrDup(pszErrDetail);
+            CFRelease(hStrErr);
+        }
         pArgs->rcDA = DADissenterGetStatus(hDissenterRef);
+
+    }
     RTSemEventSignal(pArgs->pThis->hEvtCallback);
 }
@@ -453,6 +469,8 @@
                 {
                     rc = hbdMgrDAReturn2VBoxStatus(CalllbackArgs.rcDA);
-                    LogRel(("HBDMgrClaimBlockDevice: DADiskUnmount(\"%s\") failed with %Rrc\n",
-                            pszFilename, rc));
+                    LogRel(("HBDMgrClaimBlockDevice: DADiskUnmount(\"%s\") failed with %Rrc (%s)\n",
+                            pszFilename, rc, CalllbackArgs.pszErrDetail ? CalllbackArgs.pszErrDetail : "<no detail>"));
+                    if (CalllbackArgs.pszErrDetail)
+                        RTStrFree(CalllbackArgs.pszErrDetail);
                 }
             }
@@ -460,6 +478,8 @@
             {
                 rc = hbdMgrDAReturn2VBoxStatus(CalllbackArgs.rcDA);
-                LogRel(("HBDMgrClaimBlockDevice: DADiskClaim(\"%s\") failed with %Rrc\n",
-                        pszFilename, rc));
+                LogRel(("HBDMgrClaimBlockDevice: DADiskClaim(\"%s\") failed with %Rrc (%s)\n",
+                        pszFilename, rc, CalllbackArgs.pszErrDetail ? CalllbackArgs.pszErrDetail : "<no detail>"));
+                if (CalllbackArgs.pszErrDetail)
+                    RTStrFree(CalllbackArgs.pszErrDetail);
             }
             if (RT_FAILURE(rc))
