GRUB 2 is capable of booting systems with both BIOS and UEFI firmware, as well as GPT labeled disks. To support boot on UEFI firmware and BIOS firmware, GRUB 2 is built targeting two different platforms: i386-pc (BIOS) and x86_64-efi (64-bit UEFI 2.1+) and is therefore delivered as two discrete sets of binaries.
When booting an x86 based system, note the following differences between UEFI-targeted and BIOS-targeted systems:
Command differences – Certain commands that are used by the BIOS boot method are not available on UEFI firmware. Likewise, certain UEFI commands are not available on systems that support the BIOS boot method.
PXE network boot differences – Changes have been made to the DHCP server configuration to support booting systems with UEFI firmware from the network. These changes include support for the new UEFI client architecture identifier value (DHCP option 93).
A new –B option has been added to the zpool create command. When a whole disk is passed to the zpool create create command, the –B option causes the zpool command to partition the specified device with two partitions: the first partition is a firmware-specific boot partition, and the second partition is the ZFS data partition. This option also is used to create the required boot partition when adding or attaching a whole disk vdev to an existing rpool, if necessary. The conditions under which the bootfs property is allowed have also been modified. Setting the bootfs property to identify the bootable dataset on a pool is allowed, if all system and disk labeling requirements are met on the pool. As part of the labeling requirement, the required boot partition must also be present. For more information, see Managing Your ZFS Root Pool in Managing ZFS File Systems in Oracle Solaris 11.2 .