On Sun, May 11, 2008 at 02:35:41PM +0300, Török Edwin wrote:
> 
> /dev/sda9 is not a valid OpenBSD partition, and in partmap/pc.c:176 the
> iteration fails with an error: invalid disk label magic 0x%x.
> If I replace that return with a continue, it works.
> 
> The problem is that grub2 stops looking for more partitions as soon as
> it encountered the invalid partition,

I think a correct fix for this belongs in grub_partition_iterate().  It should
only let its hook determine abortability rather than mandate that invalid
partitions should cause abortion.  Please, can you test the attached patch?

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)
diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../grub2/kern/partition.c ./kern/partition.c
--- ../grub2/kern/partition.c	2007-07-22 01:32:26.000000000 +0200
+++ ./kern/partition.c	2008-05-12 17:41:51.000000000 +0200
@@ -89,7 +89,7 @@ grub_partition_iterate (struct grub_disk
 				     const grub_partition_t partition))
 {
   grub_partition_map_t partmap = 0;
-  int ret = 0;
+  int ret = 1;
   
   auto int part_map_iterate (const grub_partition_map_t p);
   auto int part_map_iterate_hook (grub_disk_t d,
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to