diff --git a/DirectVolume.cpp b/DirectVolume.cpp
index 1f9f084..ce5b892 100644
--- a/DirectVolume.cpp
+++ b/DirectVolume.cpp
@@ -65,6 +65,14 @@
     return MKDEV(mDiskMajor, mDiskMinor);
 }
 
+dev_t DirectVolume::getShareDevice() {
+    if (mPartIdx != -1) {
+        return MKDEV(mDiskMajor, mPartIdx);
+    } else {
+        return MKDEV(mDiskMajor, mDiskMinor);
+    }
+}
+
 void DirectVolume::handleVolumeShared() {
     setState(Volume::State_Shared);
 }
diff --git a/DirectVolume.h b/DirectVolume.h
index 2a78236..bf50891 100644
--- a/DirectVolume.h
+++ b/DirectVolume.h
@@ -45,6 +45,7 @@
 
     int handleBlockEvent(NetlinkEvent *evt);
     dev_t getDiskDevice();
+    dev_t getShareDevice();
     void handleVolumeShared();
     void handleVolumeUnshared();
 
diff --git a/Volume.cpp b/Volume.cpp
index 190b64b..1577ba9 100644
--- a/Volume.cpp
+++ b/Volume.cpp
@@ -144,6 +144,10 @@
     return MKDEV(0, 0);
 };
 
+dev_t Volume::getShareDevice() {
+    return getDiskDevice();
+}
+
 void Volume::handleVolumeShared() {
 }
 
@@ -220,7 +224,9 @@
 
     if (initializeMbr(devicePath)) {
         SLOGE("Failed to initialize MBR (%s)", strerror(errno));
-        goto err;
+//        goto err;
+// don't treat this as a fatal error
+// lets continue on and format the partition
     }
 
     sprintf(devicePath, "/dev/block/vold/%d:%d",
diff --git a/Volume.h b/Volume.h
index 383c2e4..f81afff 100644
--- a/Volume.h
+++ b/Volume.h
@@ -71,6 +71,7 @@
 
     virtual int handleBlockEvent(NetlinkEvent *evt);
     virtual dev_t getDiskDevice();
+    virtual dev_t getShareDevice();
     virtual void handleVolumeShared();
     virtual void handleVolumeUnshared();
 
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index 231b308..b53e7b1 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -1036,7 +1036,7 @@
         return -1;
     }
 
-    dev_t d = v->getDiskDevice();
+    dev_t d = v->getShareDevice();
     if ((MAJOR(d) == 0) && (MINOR(d) == 0)) {
         // This volume does not support raw disk access
         errno = EINVAL;
@@ -1084,14 +1084,7 @@
         return -1;
     }
 
-    dev_t d = v->getDiskDevice();
-
     int fd;
-    char nodepath[255];
-    snprintf(nodepath,
-             sizeof(nodepath), "/dev/block/vold/%d:%d",
-             MAJOR(d), MINOR(d));
-
     if ((fd = open("/sys/devices/platform/usb_mass_storage/lun0/file", O_WRONLY)) < 0) {
         SLOGE("Unable to open ums lunfile (%s)", strerror(errno));
         return -1;
