Bug 1950

Summary: EFI only live images are not bootable
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Darren Hart <dvhart>
Component: deploymentAssignee: Darren Hart <dvhart>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: Medium CC: meta.mr.watcher, meta.watcher, sgw
Version: 1.2   
Target Milestone: 1.5 M4   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know
Bug Depends on: 3847    
Bug Blocks:    

Description Darren Hart 2012-02-01 13:08:14 UTC
do_bootimg will create three kinds of live images:

1 pcbios (syslinux)
2 efi (grub-efi)
3 pcbios+efi

1 and 3 install the syslinux MBR to the beginning of the hddimg it generates. This allows EFI firmware and the Linux to recognize the device and boot and mount the ramdisk. Without it, it fails either in the EFI firmware, or during boot waiting for the root filesystem.

This will likely be addressed via Bug 1763, but it is a separate issue and needs to be tracked accordingly.
Comment 1 Darren Hart 2012-03-29 23:44:22 UTC
This appears to be firmware specific as I have since booted efi-only images on certain hardware platforms. Dropping to low-minor until a more exact description can be made.
Comment 2 Darren Hart 2012-07-20 21:54:02 UTC
The EFI Spec requires an MBR or GPT partitioned disk, a Disk Volume (no partition tables) is not listed as supported. Some devices, like the FRI2 and the SYS940x, deal with this, others do not, like the n450. As we have no way to create these types of images without root privileges, this is going to be part of the larger project to revamp the way we manage images (Bug 1763).
Comment 3 Darren Hart 2013-02-28 05:07:57 UTC
The workaround for 1.4 is to use mkefidisk.sh, which creates a properly partitioned image from an hddimg. This is ultimately part of the larger deployment project, and it will be targeted for 1.5. Marking as 1.5.
Comment 4 Darren Hart 2013-08-30 21:17:28 UTC
The UEFI specification defines a number of disk formats, but it does not specify on which media these formats must be supported. Some implementations, for example, will not attempt to read an ISO image off anything with block sizes under 2048. As such, it is not feasible to expect the diskette format live images created by the current image class to work universally on EFI firmware implementations. An image of the format created by mkefidisk.sh is the right solution. As this is covered by 3847, I'm closing this bug out as INVALID since it cannot be fixed in the way intended by this bug.