Index: uspace/lib/device/include/hr.h
===================================================================
--- uspace/lib/device/include/hr.h	(revision 5b320ac8b95b9187c0be19f4f192b32cdac432f3)
+++ uspace/lib/device/include/hr.h	(revision 2876911712f264ffbcd42355d6eb9523cc3eed7b)
@@ -55,4 +55,16 @@
 } hr_level_t;
 
+/*
+ * SNIA
+ * Common RAID Disk Data Format
+ * Specification
+ * Version 2.0 Revision 19
+ */
+#define HR_RLQ_RAID4_0	0x00 /* RAID-4 Non-Rotating Parity 0 */
+#define HR_RLQ_RAID4_N	0x01 /* RAID-4 Non-Rotating Parity N */
+#define HR_RLQ_RAID5_0R	0x00 /* RAID-5 Rotating Parity 0 with Data Restart */
+#define HR_RLQ_RAID5_NR	0x02 /* RAID-5 Rotating Parity N with Data Restart */
+#define HR_RLQ_RAID5_NC	0x03 /* RAID-5 Rotating Parity N with Data Continuation */
+
 typedef enum hr_vol_status {
 	HR_VOL_ONLINE,	/* OK, OPTIMAL */
@@ -97,4 +109,5 @@
 	size_t bsize;
 	hr_vol_status_t status;
+	uint8_t RLQ;
 } hr_vol_info_t;
 
@@ -109,4 +122,5 @@
 extern const char *hr_get_vol_status_msg(hr_vol_status_t);
 extern const char *hr_get_ext_status_msg(hr_ext_status_t);
+extern const char *hr_get_layout_str(hr_level_t, uint8_t);
 
 #endif
Index: uspace/lib/device/src/hr.c
===================================================================
--- uspace/lib/device/src/hr.c	(revision 5b320ac8b95b9187c0be19f4f192b32cdac432f3)
+++ uspace/lib/device/src/hr.c	(revision 2876911712f264ffbcd42355d6eb9523cc3eed7b)
@@ -133,4 +133,8 @@
 
 	printf("level: %d\n", vol_info->level);
+	if (vol_info->level == HR_LVL_4 || vol_info->level == HR_LVL_5) {
+		printf("layout: %s\n",
+		    hr_get_layout_str(vol_info->level, vol_info->RLQ));
+	}
 	if (vol_info->level == HR_LVL_0 || vol_info->level == HR_LVL_4) {
 		if (vol_info->strip_size / 1024 < 1)
@@ -159,10 +163,14 @@
 				return rc;
 		}
-		if (i == 0 && vol_info->level == HR_LVL_4)
-			printf("          P   %s    %zu       %s\n", hr_get_ext_status_msg(ext->status), i, devname);
-		else if (vol_info->level == HR_LVL_4)
-			printf("              %s    %zu       %s\n", hr_get_ext_status_msg(ext->status), i, devname);
-		else
+		if (vol_info->level == HR_LVL_4) {
+			if ((i == 0 && vol_info->RLQ == HR_RLQ_RAID4_0) ||
+			    (i == vol_info->extent_no - 1 &&
+			    vol_info->RLQ == HR_RLQ_RAID4_N))
+				printf("          P   %s    %zu       %s\n", hr_get_ext_status_msg(ext->status), i, devname);
+			else
+				printf("              %s    %zu       %s\n", hr_get_ext_status_msg(ext->status), i, devname);
+		} else {
 			printf("          %s    %zu       %s\n", hr_get_ext_status_msg(ext->status), i, devname);
+		}
 	}
 
@@ -343,4 +351,32 @@
 }
 
+const char *hr_get_layout_str(hr_level_t level, uint8_t RLQ)
+{
+	switch (level) {
+	case HR_LVL_4:
+		switch (RLQ) {
+		case HR_RLQ_RAID4_0:
+			return "RAID-4 Non-Rotating Parity 0";
+		case HR_RLQ_RAID4_N:
+			return "RAID-4 Non-Rotating Parity N";
+		default:
+			return "RAID-4 INVALID";
+		}
+	case HR_LVL_5:
+		switch (RLQ) {
+		case HR_RLQ_RAID5_0R:
+			return "RAID-5 Rotating Parity 0 with Data Restart";
+		case HR_RLQ_RAID5_NR:
+			return "RAID-5 Rotating Parity N with Data Restart";
+		case HR_RLQ_RAID5_NC:
+			return "RAID-5 Rotating Parity N with Data Continuation";
+		default:
+			return "RAID-5 INVALID";
+		}
+	default:
+		return "INVALID";
+	}
+}
+
 /** @}
  */
