If device paths are not correctly setup by the UEFI implementation we may and up with a partition whose parent is not the block device.
To make things easier do analyze add a debug message EFIBLK %#02x %s is not a child device of %s The output might look like this: EFIBLK 0x80 /HD(1,MBR,0xa6d56afb,0x800,0x3f800) is not a child device of /HD(1,MBR,0xa6d56afb,0x800,0x3f800) Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> --- src/interface/efi/efi_block.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/interface/efi/efi_block.c b/src/interface/efi/efi_block.c index c6445ab6..9a71fd08 100644 --- a/src/interface/efi/efi_block.c +++ b/src/interface/efi/efi_block.c @@ -554,6 +554,9 @@ static int efi_block_boot_image ( struct san_device *sandev, EFI_HANDLE handle, prefix_len = efi_devpath_len ( block->path ); if ( memcmp ( path.path, block->path, prefix_len ) != 0 ) { /* Not a child device */ + DBGC ( sandev, "EFIBLK %#02x %s is not a child device of %s\n", + sandev->drive, efi_devpath_text ( path.path ), + efi_devpath_text ( block->path ) ); rc = -ENOTTY; goto err_not_child; } -- 2.14.2 _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel