diff -ru grub2-1.95+20070520/conf/common.rmk grub2-1.95+20070520+raidinfo/conf/common.rmk
--- grub2-1.95+20070520/conf/common.rmk	2007-05-20 10:10:06.000000000 +0100
+++ grub2-1.95+20070520+raidinfo/conf/common.rmk	2007-05-21 20:22:11.000000000 +0100
@@ -156,7 +156,7 @@
 
 # For raid.mod
 raid_mod_SOURCES = disk/raid.c
-raid_mod_CFLAGS = $(COMMON_CFLAGS)
+raid_mod_CFLAGS = $(COMMON_CFLAGS) -D_as_grub_module
 raid_mod_LDFLAGS = $(COMMON_LDFLAGS)
 
 # For raid.mod
diff -ru grub2-1.95+20070520/disk/raid.c grub2-1.95+20070520+raidinfo/disk/raid.c
--- grub2-1.95+20070520/disk/raid.c	2007-05-21 18:19:53.000000000 +0100
+++ grub2-1.95+20070520+raidinfo/disk/raid.c	2007-05-21 20:22:29.000000000 +0100
@@ -24,6 +24,7 @@
 #include <grub/err.h>
 #include <grub/misc.h>
 #include <grub/raid.h>
+#include <grub/normal.h>
 
 /* Linked list of RAID arrays. */
 static struct grub_raid_array *array_list;
@@ -531,15 +529,50 @@
     .next = 0
   };
 
+static grub_err_t
+grub_cmd_raidinfo (struct grub_arg_list *state __attribute__ ((unused)),
+		int argc __attribute__ ((unused)),
+		char **args __attribute__ ((unused)))
+{
+  struct grub_raid_array *a;
+  for (a = array_list; a != NULL; a = a->next) {
+	int x;
+
+  	grub_printf ("Array %x\n", a);
+	grub_printf (" number: %d\n", a->number);
+	grub_printf (" version: %d\n", a->version);
+	grub_printf (" level: %d\n", a->level);
+	grub_printf (" total_devs: %d\n", a->total_devs);
+	grub_printf (" found_devs: %d\n", a->nr_devs);
+	grub_printf (" chunk_size: %d\n", a->chunk_size);
+	grub_printf (" uuid: %x%x%x%x\n", a->uuid[0], a->uuid[1], a->uuid[2], a->uuid[3]);
+	grub_printf (" name: %s\n", a->name);
+	grub_printf (" disk_size: %d * 512 bytes\n", a->disk_size);
+
+	for (x = 0; x < a->nr_devs; ++x) {
+	  grub_printf ("  device: %d\n", x);
+	  grub_printf ("  name: %s\n", a->device[x].name);
+	}
+  }
+  return 0;
+}
+
 
 GRUB_MOD_INIT(raid)
 {
   grub_device_iterate (&grub_raid_scan_device);
   grub_disk_dev_register (&grub_raid_dev);
+#ifdef _as_grub_module
+  grub_register_command ("raidinfo", grub_cmd_raidinfo, GRUB_COMMAND_FLAG_CMDLINE,
+			 "raidinfo", "Print information about detected RAID arrays", 0);
+#endif
 }
 
 GRUB_MOD_FINI(raid)
 {
+#ifdef _as_grub_module
+  grub_unregister_command ("raidinfo");
+#endif
   grub_disk_dev_unregister (&grub_raid_dev);
   /* FIXME: free the array list. */
 }
