Understanding EFI and its role in NetBoot
- Where is it on the machine, how big is it, and what can you do with it?
See also rEFInd boot manager from sourceforge.
What is EFI ?
Extensible Firmware Interface (EFI) is the firmware-based replacement for the PC BIOS from Intel. Designed by Intel, it was chosen by Apple to replace Open Firmware, used on
PowerPC architectures. Since many operating systems, such as Windows XP and many versions of Windows Vista, are incompatible with EFI, Apple has released a firmware upgrade with a compatibility support module that provides a subset of traditional BIOS support with their Boot Camp product.
How is it used to NetBoot a Mac?
Intel Macs can boot in two ways: directly via EFI, or in a "legacy" BIOS compatibility mode. For
MacMultiBoot, holding down "Option" gives a choice of bootable devices, while the rEFIt bootloader is commonly used for added configurability.
Standard Live USBs cannot be used on
IntelMacs; the EFI firmware can recognize and boot from USB drives, but it can only do this in EFI mode–when the firmware switches to BIOS mode, it no longer recognizes USB drives, due to lack of a BIOS-mode USB driver. Many operating systems, such as Windows and Linux,[1] can only be booted in BIOS mode, or are more easily booted or perform better when booted in BIOS mode, and thus USB booting on
IntelMacs is largely limited to Mac OS X, which can easily be booted via EFI. This limitation could be fixed by either patching the Apple firmware to include a USB driver in BIOS mode, or the operating systems to remove the dependency on the BIOS.
To mount an EFI boot partition, follow these steps:
note: altering your EFI boot partition is not supported by Apple and The Mac Admin takes no responsibility if you render your computer(s) unbootable by mounting and modifying this partition.
1. Discover the volume identifier for your EFI boot partition.
Run this command:
diskutil list
The output should look something like this:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 250.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
In this case, the volume identifier of the EFI partition is disk0s1
2. Create a mount point.
A mount point is a directory where a non-booted volume is mounted. On Mac OS X, mount points are typically created in /Volumes. We can create a directory called efi within /Volumes by running the following command:
mkdir /Volumes/efi
3. Mount the EFI partition at the efi mount point.
Run the command:
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
That’s it. Your EFI volume will be mounted. Modify it at your own risk.