Hi Ilias,
Sorry for the late reply.
If the boot option generation logic skips partitions, then the boot
option points to whole disk.
But when capsule update calls device_is_present_and_system_part() →
efi_dp_find_obj() → find_handle(), it tries to match this boot device
path against the ESP partition handle which has path longer than boot
device path.
The find_handle() logic at line 142 rejects the ESP handle because:
if (len_current > len) // ESP path is longer than boot device path
continue; // Skip it!
So capsule update fails to find the ESP partition.
Based on this analysis, I believe the fix I proposed would help address
this issue, but I'd appreciate your thoughts on whether this approach
makes sense or if there's a better way to handle it.
Thanks for your guidance!
On 8/28/2025 5:53 PM, Ilias Apalodimas wrote:
Yes it was. In fact the original patches were adding the file instead
of the disk [1], but we had concerns on scanning all partitions wrt to
boot time. I don't remember if anyone tested the boot time though.