@@ -99,6 +99,10 @@ pub(crate) fn run_alongside(image: &str, mut testargs: libtest_mimic::Arguments)
9999 let sh = & xshell:: Shell :: new ( ) ?;
100100 reset_root ( sh, image) ?;
101101
102+ // Clean up any leftover LVM state from previous failed runs
103+ let _ = cmd ! ( sh, "sudo vgchange -an BL" ) . ignore_status ( ) . run ( ) ;
104+ let _ = cmd ! ( sh, "sudo vgremove -f BL" ) . ignore_status ( ) . run ( ) ;
105+
102106 // Create work directory for the test
103107 let tmpd = sh. create_temp_dir ( ) ?;
104108 let work_dir = tmpd. path ( ) ;
@@ -153,13 +157,13 @@ pub(crate) fn run_alongside(image: &str, mut testargs: libtest_mimic::Arguments)
153157 cmd ! ( sh, "sudo partprobe {loop_dev}" ) . run ( ) ?;
154158 std:: thread:: sleep ( std:: time:: Duration :: from_secs ( 2 ) ) ;
155159
156- let loop_part2 = format ! ( "{}p2" , loop_dev) ; // EFI
157- let loop_part3 = format ! ( "{}p3" , loop_dev) ; // Boot
160+ let efi_part2 = format ! ( "{}p2" , loop_dev) ; // EFI
161+ let root_part3 = format ! ( "{}p3" , loop_dev) ; // Boot
158162 let loop_part4 = format ! ( "{}p4" , loop_dev) ; // LVM
159163
160164 // Create filesystems on boot partitions
161- cmd ! ( sh, "sudo mkfs.vfat -F32 {loop_part2 }" ) . run ( ) ?;
162- cmd ! ( sh, "sudo mkfs.ext4 -F {loop_part3 }" ) . run ( ) ?;
165+ cmd ! ( sh, "sudo mkfs.vfat -F32 {efi_part2 }" ) . run ( ) ?;
166+ cmd ! ( sh, "sudo mkfs.ext4 -F {root_part3 }" ) . run ( ) ?;
163167
164168 // Setup LVM
165169 cmd ! ( sh, "sudo pvcreate {loop_part4}" ) . run ( ) ?;
@@ -178,7 +182,7 @@ pub(crate) fn run_alongside(image: &str, mut testargs: libtest_mimic::Arguments)
178182 . read ( ) ?
179183 . trim ( )
180184 . to_string ( ) ;
181- let boot_uuid = cmd ! ( sh, "sudo blkid -s UUID -o value {loop_part2 }" )
185+ let boot_uuid = cmd ! ( sh, "sudo blkid -s UUID -o value {efi_part2 }" )
182186 . read ( ) ?
183187 . trim ( )
184188 . to_string ( ) ;
@@ -190,9 +194,15 @@ pub(crate) fn run_alongside(image: &str, mut testargs: libtest_mimic::Arguments)
190194
191195 cmd ! ( sh, "sudo mount /dev/BL/root02 {target}" ) . run ( ) ?;
192196 cmd ! ( sh, "sudo mkdir -p {target}/boot" ) . run ( ) ?;
193- cmd ! ( sh, "sudo mount {loop_part3 } {target}/boot" ) . run ( ) ?;
197+ cmd ! ( sh, "sudo mount {root_part3 } {target}/boot" ) . run ( ) ?;
194198 cmd ! ( sh, "sudo mkdir -p {target}/boot/efi" ) . run ( ) ?;
195- cmd ! ( sh, "sudo mount {loop_part2} {target}/boot/efi" ) . run ( ) ?;
199+ cmd ! ( sh, "sudo mount {efi_part2} {target}/boot/efi" ) . run ( ) ?;
200+
201+ // Create EFI directory structure with some files (simulating existing EFI content)
202+ // This tests that bootc correctly handles /boot/efi as a mount point
203+ cmd ! ( sh, "sudo mkdir -p {target}/boot/efi/EFI/fedora" ) . run ( ) ?;
204+ cmd ! ( sh, "sudo touch {target}/boot/efi/EFI/fedora/shimx64.efi" ) . run ( ) ?;
205+ cmd ! ( sh, "sudo touch {target}/boot/efi/EFI/fedora/grubx64.efi" ) . run ( ) ?;
196206
197207 // Critical: Mount /var as a separate partition
198208 cmd ! ( sh, "sudo mkdir -p {target}/var" ) . run ( ) ?;
0 commit comments