On invalid BSD partitions partmap/pc.c stops with reading the partitons, so grub doestn't know anything about the ones behind it. Attached patch fixes this and displays also the partition number not only the invalid magic it encounters
2008-07-31 Felix Zielcke <[EMAIL PROTECTED]> * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions or if there's no space for the disk label and print the partition number on a invalid magic
Index: partmap/pc.c =================================================================== --- partmap/pc.c (Revision 1753) +++ partmap/pc.c (Arbeitskopie) @@ -160,9 +160,11 @@ { /* Check if the BSD label is within the DOS partition. */ if (p.len <= GRUB_PC_PARTITION_BSD_LABEL_SECTOR) - return grub_error (GRUB_ERR_BAD_PART_TABLE, - "no space for disk label"); - + { + grub_error (GRUB_ERR_BAD_PART_TABLE, + "no space for disk label"); + continue; + } /* Read the BSD label. */ if (grub_disk_read (&raw, (p.start @@ -175,10 +177,12 @@ /* Check if it is valid. */ if (label.magic != grub_cpu_to_le32 (GRUB_PC_PARTITION_BSD_LABEL_MAGIC)) - return grub_error (GRUB_ERR_BAD_PART_TABLE, - "invalid disk label magic 0x%x", - label.magic); - + { + grub_error (GRUB_ERR_BAD_PART_TABLE, + "invalid disk label magic 0x%x on partition %d", + label.magic,p.index); + continue; + } for (pcdata.bsd_part = 0; pcdata.bsd_part < grub_cpu_to_le16 (label.num_partitions); pcdata.bsd_part++)
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel