From: Michael Chang The same as in the previous patch, add a support for installing grub into an extended partition. Here, we do not ignore extended partitions anymore. Instead we call a hook that makes sure we have the partition when installing. Signed-off-by: Jiri Slaby References: https://bugzilla.novell.com/show_bug.cgi?id=750897 From: Andrey Borzenkov Apply this logic only to primary extended partition. Ignore extended partitions that are used to link together logical partitions. References: https://bugzilla.novell.com/show_bug.cgi?id=785341 --- Index: grub-2.00/grub-core/partmap/msdos.c =================================================================== --- grub-2.00.orig/grub-core/partmap/msdos.c +++ grub-2.00/grub-core/partmap/msdos.c @@ -188,13 +188,20 @@ grub_partition_msdos_iterate (grub_disk_ (unsigned long long) p.len); /* If this partition is a normal one, call the hook. */ - if (! grub_msdos_partition_is_empty (e->type) - && ! grub_msdos_partition_is_extended (e->type)) + if (! grub_msdos_partition_is_empty (e->type)) { - p.number++; + if (!grub_msdos_partition_is_extended (e->type) || p.number < 3) + { + p.number++; - if (hook (disk, &p, hook_data)) - return grub_errno; + /* prevent someone doing mkfs or mkswap on an + extended partition, but leave room for LILO */ + if (grub_msdos_partition_is_extended (e->type)) + p.len = 2; + + if (hook (disk, &p, hook_data)) + return grub_errno; + } } else if (p.number < 3) /* If this partition is a logical one, shouldn't increase the