[Git-commits] [grml/grml-live] 6725bf: Support EFI on 32-bit systems, increase EFI image ...

Michael Prokop mika at grml.org
Fri Jun 9 10:20:21 CEST 2017


  Branch: refs/heads/master
  Home:   https://github.com/grml/grml-live
  Commit: 6725bfa1ffc4b823d0413b1fa018776e4f4a432d
      https://github.com/grml/grml-live/commit/6725bfa1ffc4b823d0413b1fa018776e4f4a432d
  Author: Michael Prokop <mika at grml.org>
  Date:   2017-06-09 (Fri, 09 Jun 2017)

  Changed paths:
    M debian/control
    M etc/grml/fai/config/scripts/GRMLBASE/45-grub-images
    M grml-live

  Log Message:
  -----------
  Support EFI on 32-bit systems, increase EFI image size + switch from isohybrid to xorriso/isohybrid combination

EFI on 32-bit systems is a requested feature for Grml-Forensic,
since cheap tablets and notebooks (e.g. Intel Atom-based tablets)
are out there with only 32-bit EFI support (and UEFI only, so no
legacy BIOS support), quoting clairelyclaire from
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1341944:

| As of now, Ubuntu and other major Linux distributions do not
| support the use of a 32-bit EFI bootloader on UEFI machines. This
| has become extremely problematic due to the popularity of Intel
| Atom-based tablets and compact laptops. Atom-based devices are
| generally limited in storage space (32GB or 64GB eMMC is common),
| and as a result these devices almost universally ship with
| Windows 8.1 32-bit installed (winsxs consumes a significant
| amount of storage space in order to support 32-bit binaries in a
| 64-bit environment). By design, UEFI must use the same
| architecture used by the bootloader.
|
| While most modern computers indeed use a 64-bit UEFI
| implementation due to the fact that new computers generally ship
| with a 64-bit operating system (be it OS X or Windows 8.1),
| Atom-based devices do *not* use a 64-bit operating system or UEFI
| implementation. This is by design.
|
| Intel released a new Atom iteration (Bay Trail) in late 2013 and
| has indicated that they will continue to develop and release Atom
| CPUs due to consumer market demand. At the time of this filing
| there are a number of Atom-based tablets and compact
| laptops/netbooks being actively sold and marketed by major OEMs
| including Dell, HP, ASUS, and Acer. None of these devices have
| 64-bit UEFI firmware. It is also important to note that these
| Atom CPUs are 64-bit, but explicitly require a 32-bit UEFI
| bootloader.
|
| The current Linux kernel in Ubuntu 14.04 does support booting the
| 64-bit signed kernel from a 32-bit Grub EFI bootloader. I can
| confirm this on at least two 32-bit UEFI devices, the ASUS
| Transformer T100TA and the Acer Aspire Switch 10.

Increase EFI image size (previously automatically
calculated on-demand, resulting in ~285KB) to 4MB,
giving us more flexibility with what we're installing
into the image (esp. useful with usage on USB drives).

The isohybrid binary doesn't support 32-bit FI systems
and fails hard when using `--uefi` on a 32-bit ISO.
But xorriso with appropriate options for EFI usage
(see $EFI_ARGS) and /usr/lib/ISOLINUX/isohdpfx.bin
from the isolinux package seems to provide everything
we need.

Useful resources for further information:
* http://www.syslinux.org/wiki/index.php?title=Isohybrid
* https://fedoraproject.org/wiki/Using_UEFI_with_QEMU
* https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO

For testing the resulting 32-bit ISO with EFI the
OVMF.fd file from OVMF-IA32-r15214.zip available from
https://sourceforge.net/projects/edk2/files/OVMF/ works via e.g.:

| qemu-system-i386 -m 1024 -bios ./OVMF.fd -cdrom grml.iso




More information about the Git-commits mailing list