summaryrefslogtreecommitdiffstats
path: root/src/interface/efi
diff options
context:
space:
mode:
authorMichael Brown2024-11-20 15:21:16 +0100
committerMichael Brown2024-11-20 15:25:06 +0100
commite9a23a5b394f40c1525c40416105eaaa1787f749 (patch)
tree7d1b38ec9a133f6d306a629a342238c948def9cf /src/interface/efi
parent[build] Allow for per-architecture cross-compilation prefixes (diff)
downloadipxe-e9a23a5b394f40c1525c40416105eaaa1787f749.tar.gz
ipxe-e9a23a5b394f40c1525c40416105eaaa1787f749.tar.xz
ipxe-e9a23a5b394f40c1525c40416105eaaa1787f749.zip
[efi] Ensure local drives are connected when attempting a SAN boot
UEFI systems may choose not to connect drivers for local disk drives when the boot policy is set to attempt a network boot. This may cause the "sanboot" command to be unable to boot from a local drive, since the relevant block device and filesystem drivers may not have been connected. Fix by ensuring that all available drivers are connected before attempting to boot from an EFI block device. Reported-by: Andrew Cottrell <andrew.cottrell@xtxmarkets.com> Tested-by: Andrew Cottrell <andrew.cottrell@xtxmarkets.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi')
-rw-r--r--src/interface/efi/efi_block.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/interface/efi/efi_block.c b/src/interface/efi/efi_block.c
index 2f0187a0a..6296953c5 100644
--- a/src/interface/efi/efi_block.c
+++ b/src/interface/efi/efi_block.c
@@ -990,6 +990,9 @@ static int efi_block_boot ( unsigned int drive,
EFI_STATUS efirc;
int rc;
+ /* Ensure that any local drives are connected */
+ efi_driver_reconnect_all();
+
/* Release SNP devices */
efi_snp_release();