Index: uspace/lib/fdisk/src/fdisk.c
===================================================================
--- uspace/lib/fdisk/src/fdisk.c	(revision ed9bf14ea271bb6fd2ede343dbda94e25b021c6e)
+++ uspace/lib/fdisk/src/fdisk.c	(revision f63a00737ae514202c143417f555f91e925c24bb)
@@ -40,5 +40,4 @@
 #include <loc.h>
 #include <mem.h>
-#include <stdio.h>
 #include <stdlib.h>
 #include <str.h>
@@ -634,6 +633,9 @@
 
 	rc = vbd_label_create(dev->fdisk->vbd, dev->sid, ltype);
-	if (rc != EOK)
+	if (rc != EOK) {
+		/* Re-add dummy partition */
+		(void) fdisk_dev_add_parts(dev);
 		return rc;
+	}
 
 	rc = fdisk_update_dev_info(dev);
Index: uspace/srv/bd/vbd/disk.c
===================================================================
--- uspace/srv/bd/vbd/disk.c	(revision ed9bf14ea271bb6fd2ede343dbda94e25b021c6e)
+++ uspace/srv/bd/vbd/disk.c	(revision f63a00737ae514202c143417f555f91e925c24bb)
@@ -538,5 +538,5 @@
 	label_info_t linfo;
 	vbds_disk_t *disk;
-	int rc;
+	int rc, rc2;
 
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "vbds_label_create(%zu)", sid);
@@ -583,9 +583,13 @@
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "vbds_label_create(%zu) - failure", sid);
 	if (disk->label == NULL) {
-		rc = label_open(sid, &label);
-		if (rc != EOK) {
+		rc2 = label_open(sid, &label);
+		if (rc2 != EOK) {
 			log_msg(LOG_DEFAULT, LVL_ERROR, "Failed to open label in disk %s.",
 			    disk->svc_name);
+			return rc2;
 		}
+
+		disk->label = label;
+		(void) vbds_disk_parts_add(disk, label);
 	}
 
