First arrange for bootloader to be installed to removable media path, by using a new in Jessie preseed option. Then use that to chainload a bootloader from the disk.
The removable media path is well known (part of the UEFI spec) which saves us having to worry about which OS is on the host (so long as the OS can be configured to populate the removable media path) Signed-off-by: Ian Campbell <ian.campb...@citrix.com> --- Osstest/Debian.pm | 2 ++ Osstest/TestSupport.pm | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Osstest/Debian.pm b/Osstest/Debian.pm index cd2ad9b..e89ca6c 100644 --- a/Osstest/Debian.pm +++ b/Osstest/Debian.pm @@ -689,6 +689,8 @@ d-i apt-setup/contrib boolean false d-i pkgsel/include string openssh-server, ntp, ntpdate, ethtool, chiark-utils-bin, $extra_packages +d-i grub-installer/force-efi-extra-removable boolean true + $xopts{ExtraPreseed} END diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index 6450ee6..fe06e87 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -2148,8 +2148,24 @@ END sub setup_uefi_pxeboot_local ($) { my ($ho) = @_; + my %efi_archs = qw(amd64 X64 + arm32 ARM + arm64 AARCH64 + i386 IA32); + die "EFI arch" unless $efi_archs{ $r{arch} }; + my $efi = $efi_archs{ $r{arch} }; setup_grub_efi_bootcfg($ho, <<END); -echo Should do a local boot here, somehow +set default=0 +set timeout=5 +menuentry 'local' { + insmod chain + insmod part_gpt + insmod part_msdos + set root=(hd0,gpt1) + echo "Chainloading (\${root})/EFI/BOOT/BOOTAA64.EFI" + chainloader (\${root})/EFI/BOOT/BOOTAA64.EFI + boot +} END } -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel