install: Enable installing to multi device parents#1911
install: Enable installing to multi device parents#1911ckyrouac wants to merge 1 commit intobootc-dev:mainfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request successfully enables installing to multi-device parent filesystems, such as LVM spanning multiple disks. It correctly discovers all parent devices and, for bootupd/GRUB, installs the bootloader to all devices with an ESP partition. For bootloaders that only support single-device configurations like systemd-boot and zipl, the implementation correctly defaults to using the first available device. The changes are well-architected, adapting data structures and logic to handle multiple devices. A new, thorough integration test validates both single and dual ESP scenarios. Overall, this is a solid enhancement with good error handling and logging. I have one suggestion to further improve the robustness of ESP detection.
f2a175a to
f7b1892
Compare
|
waiting to merge until the patch release goes out |
77b65cb to
d03c6fa
Compare
d03c6fa to
9b1c313
Compare
6802697 to
081f3b2
Compare
081f3b2 to
9d0e284
Compare
Signed-off-by: ckyrouac <ckyrouac@redhat.com>
9d0e284 to
4ccc192
Compare
| # See https://tmt.readthedocs.io/en/stable/stories/features.html#reboot-during-test | ||
| match $env.TMT_REBOOT_COUNT? { | ||
| null | "0" => test_single_esp, | ||
| "1" => { test_dual_esp; test_three_devices_partial_esp; tmt-reboot }, |
There was a problem hiding this comment.
How about add another test scenario like RAID1 that using the whole disks (see coreos/bootupd#1059), for example:
root@localhost-live:/home/fedora# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 30G 0 disk
└─md126 9:126 0 30G 0 raid1
├─md126p1 259:0 0 477M 0 part
├─md126p2 259:1 0 954M 0 part /boot
└─md126p3 259:2 0 28.6G 0 part /
vdb 253:16 0 30G 0 disk
└─md126 9:126 0 30G 0 raid1
├─md126p1 259:0 0 477M 0 part
├─md126p2 259:1 0 954M 0 part /boot
└─md126p3 259:2 0 28.6G 0 part /
To create RAID1 using command:
sudo mdadm -CR /dev/md126 -e 1 -l1 -n 2 /dev/loop0 /dev/loop1 --assume-clean
When the root filesystem spans multiple backing devices (e.g., LVM across multiple disks), discover all parent devices and find ESP partitions on each. For bootupd/GRUB, install the bootloader to all devices with an ESP partition, enabling boot from any disk in a multi-disk setup. systemd-boot and zipl only support single-device configurations.
This adds a new integration test validating both single-ESP and dual-ESP multi-device scenarios.
Fixes: #481
Assisted-by: Claude Code (Opus 4.5)