[block] Allow use of a non-default EFI SAN boot filename
authorMichael Brown <mcb30@ipxe.org>
Wed, 12 Apr 2017 14:03:25 +0000 (15:03 +0100)
committerMichael Brown <mcb30@ipxe.org>
Wed, 12 Apr 2017 14:58:05 +0000 (15:58 +0100)
commit84d406ccf48c8808b0bb30d526b758e4b58cacc8
treee0d262d87136fcaf8f202ab7d6e51760a387fe78
parenta82f93748545427cd7f104f107be1663c55a35fd
[block] Allow use of a non-default EFI SAN boot filename

Some older operating systems (e.g. RHEL6) use a non-default filename
on the root disk and rely on setting an EFI variable to point to the
bootloader.  This does not work when performing a SAN boot on a
machine where the EFI variable is not present.

Fix by allowing a non-default filename to be specified via the
"sanboot --filename" option or the "san-filename" setting.  For
example:

  sanboot --filename \efi\redhat\grub.efi \
          iscsi:192.168.0.1::::iqn.2010-04.org.ipxe.demo:rhel6

or

  option ipxe.san-filename code 188 = string;
  option ipxe.san-filename "\\efi\\redhat\\grub.efi";
  option root-path "iscsi:192.168.0.1::::iqn.2010-04.org.ipxe.demo:rhel6";

Originally-implemented-by: Vishvananda Ishaya Abrams <vish.ishaya@oracle.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
12 files changed:
src/arch/x86/interface/pcbios/int13.c
src/core/dummy_sanboot.c
src/core/null_sanboot.c
src/core/settings.c
src/hci/commands/sanboot_cmd.c
src/include/ipxe/dhcp.h
src/include/ipxe/sanboot.h
src/include/ipxe/settings.h
src/include/usr/autoboot.h
src/interface/efi/efi_block.c
src/usr/autoboot.c
src/usr/pxemenu.c