Good morning!

Could I ask for a very short code review for the following bug:

7161544 Workaround for brain dead BIOSes that refuse to boot off USB media that 
have no active DOS partition

http://monaco.us.oracle.com/detail.jsf?cr=7161544

The fix is to mark the EFI system partition on the boot media as active when 
the MBR image is being assembled
during distro constructor's boot checkpoint execution. This satisfies the BIOS 
enough to execute the boot
sector of the MBR on the affected system.

I've tested and confirmed this on the system that this was reported against 
plus on a couple BIOS and UEFI systems
that were doing the correct thing already.

Wevrev:
http://jurassic.us.oracle.com/~npower/webrevs/webrev-active-esp/


Diff:
--- old/usr/src/lib/install_boot/boot.py        Sun Apr 15 14:37:38 2012
+++ new/usr/src/lib/install_boot/boot.py        Sun Apr 15 14:37:38 2012
@@ -1023,11 +1023,15 @@
                 # target modules because we want precise control over the
                 # geometry, plus it's not well suited to lofi devices.
                 # Layout:
-                # type ESP, at 1M offset, partition size = uefi_image size
+                # - type ESP, active, at 1M offset,
+                # - partition size = uefi_image size
+                # The ESP is marked active, because despite the fact that we
+                # write GRUB to the MBR, some BIOSes are brain dead and won't
+                # boot USB media without an active DOS partition.
                 esptype = Partition.name_to_num("EFI System")
                 startblock = MB / BLOCKSIZE
                 uefi_image_nblocks = uefi_image_size / BLOCKSIZE
-                fdiskentry = "%d:0:0:0:0:0:0:0:%d:%d" \
+                fdiskentry = "%d:128:0:0:0:0:0:0:%d:%d" \
                              % (esptype, startblock, uefi_image_nblocks)
                 self.logger.debug("Creating fdisk table on %s:\n\t%s",
                                   lofi_rdev, fdiskentry)

Thanks!
Niall

_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to