=== modified file 'ChangeLog' --- ChangeLog 2011-03-23 19:29:17 +0000 +++ ChangeLog 2011-03-25 21:56:23 +0000 @@ -1,3 +1,11 @@ +2011-03-24 Mario Limonciello + * util/grub-setup.c: Conditionalize the partition map copy on floppy + support, not on whether the target contains partitions. + + Otherwise, the BIOS on Dell Latitude E series laptops will freeze + during POST if an invalid partition table is contained in the PBR + of the active partition when GRUB is installed to a partition. + 2011-03-23 Vladimir Serbinenko * grub-core/term/gfxterm.c (calculate_normal_character_width): Return 8 === modified file 'util/grub-setup.c' --- util/grub-setup.c 2011-01-07 12:27:34 +0000 +++ util/grub-setup.c 2011-03-26 00:31:58 +0000 @@ -399,25 +399,26 @@ } #endif - if (! dest_partmap) - { - grub_util_warn (_("Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.")); - goto unable_to_embed; - } - if (multiple_partmaps || fs) - { - grub_util_warn (_("Attempting to install GRUB to a disk with multiple partition labels or both partition label and filesystem. This is not supported yet.")); - goto unable_to_embed; - } - /* Copy the partition table. */ - if (dest_partmap) + if (dest_partmap || + (!allow_floppy && !grub_util_biosdisk_is_floppy (dest_dev->disk))) memcpy (boot_img + GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC, tmp_img + GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC, GRUB_BOOT_MACHINE_PART_END - GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC); free (tmp_img); + if (! dest_partmap) + { + grub_util_warn (_("Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.")); + goto unable_to_embed; + } + if (multiple_partmaps || fs) + { + grub_util_warn (_("Attempting to install GRUB to a disk with multiple partition labels or both partition label and filesystem. This is not supported yet.")); + goto unable_to_embed; + } + if (!dest_partmap->embed) { grub_util_warn ("Partition style '%s' doesn't support embeding",