Index: uspace/app/hrctl/hrctl.c
===================================================================
--- uspace/app/hrctl/hrctl.c	(revision e2a8fd29503940cc3a61c5926c628938f77e5ec2)
+++ uspace/app/hrctl/hrctl.c	(revision f34568c4fa35a4ae2b4da66fa4bbc2c6839f55d2)
@@ -671,5 +671,13 @@
 	free(scapa);
 
-	printf("|           state: %s\n", hr_get_vol_state_str(info->state));
+	printf("|           state: %s", hr_get_vol_state_str(info->state));
+	if (info->state == HR_VOL_REBUILD) {
+		unsigned int percent =
+		    (info->rebuild_blk * 100) / info->data_blkno;
+		printf(" (%u%% done)\n", percent);
+	} else {
+		printf("\n");
+	}
+
 	printf("|         extents:\n");
 
Index: uspace/lib/device/include/hr.h
===================================================================
--- uspace/lib/device/include/hr.h	(revision e2a8fd29503940cc3a61c5926c628938f77e5ec2)
+++ uspace/lib/device/include/hr.h	(revision f34568c4fa35a4ae2b4da66fa4bbc2c6839f55d2)
@@ -120,4 +120,5 @@
 	size_t hotspare_no;
 	uint64_t data_blkno;
+	uint64_t rebuild_blk;
 	uint32_t strip_size;
 	size_t bsize;
Index: uspace/srv/bd/hr/hr.c
===================================================================
--- uspace/srv/bd/hr/hr.c	(revision e2a8fd29503940cc3a61c5926c628938f77e5ec2)
+++ uspace/srv/bd/hr/hr.c	(revision f34568c4fa35a4ae2b4da66fa4bbc2c6839f55d2)
@@ -520,4 +520,5 @@
 	info.level = vol->level;
 	info.data_blkno = vol->data_blkno;
+	info.rebuild_blk = vol->rebuild_blk;
 	info.strip_size = vol->strip_size;
 	info.bsize = vol->bsize;
