-
Bug
-
Resolution: Unresolved
-
Normal
-
rhel-10.2
-
None
-
Moderate
-
rhel-anaconda
-
None
-
False
-
False
-
-
Yes
-
None
-
None
-
Automated
-
Known Issue
-
-
Proposed
-
Unspecified
-
Unspecified
-
Unspecified
-
None
What were you trying to do that didn't work?
Installation of a bootc container image in UEFI mode fails without a separate /boot partition. There are actually two issues I've noticed:
1. Anaconda performs a cleanup of the target root filesystem and removes the /boot directory first, before unmounting the /boot/efi directory:
DEBUG:anaconda.modules.payloads.payload.rpm_ostree.installation:Bootc workaround: prepare clean root partition for bootc install NFO:program:[libmkod] custom logging function 0x7fd3bf073300 registered NFO:program:[libmkod] context 0x55f38664cab0 released INFO:program:Running... rm -rf /mnt/sysimage/boot INFO:program:rm: cannot remove '/mnt/sysimage/boot/efi': Device or resource busy DEBUG:program:Return code: 1 INFO:anaconda.core.threads:Thread Failed: AnaTaskThread-DeployBootcTask-1 (140144907474624) ERROR:anaconda.modules.common.task.task:Thread AnaTaskThread-DeployBootcTask-1 has failed: Traceback (most recent call last): File "/usr/lib64/python3.12/site-packages/pyanaconda/core/threads.py", line 281, in run threading.Thread.run(self) File "/usr/lib64/python3.12/threading.py", line 1012, in run File "/usr/lib64/python3.12/threading.py", line 1012, in run self._target(*self._args, **self._kwargs) File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 97, in _thread_run_callback self._task_run_callback() File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 110, in _task_run_callback self._set_result(self.run()) ^^^^^^^^^^ File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py", line 843, in run self._clean_physroot() File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py", line 793, in _clean_physroot safe_exec_program("rm", ["-rf", path]) File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py", line 59, in safe_exec_program raise PayloadInstallationError( pyanaconda.modules.common.errors.installation.PayloadInstallationError: The command 'rm -rf /mnt/sysimage/boot' exited with the code 1: rm: cannot remove '/mnt/sysimage/boot/efi': Device or resource busy
2. Patching installation.py to explicitly handle /boot/efi mount point/directory, and handle it as the first item, overcomes the first issue, but installation fails for a different reason:
DEBUG:anaconda.modules.payloads.payload.rpm_ostree.installation:Executing bootc install command INFO:program:Running... bootc install to-filesystem --bootloader=grub --stateroot=default --source-imgref=registry:images.paas.redhat.com/bootc/rhel-bootc:latest-10.2 --target-imgref=registry:images.paas.redhat.com/bootc/rhel-bootc:latest-10.2 /mnt/sysimage registry:images.paas.redhat.com/bootc/rhel-bootc:latest-10.2 to /mnt/sysimage _bootcinstall_testlabel_t:s0 is not valid (left unmapped). DEBUG:anaconda.modules.payloads.payload.rpm_ostree.installation:bootc output: Installing image: docker://registry:images.paas.redhat.com/bootc/rhel-bootc:latest-10.2 DEBUG:anaconda.modules.payloads.payload.rpm_ostree.installation:bootc output: error: Installing to filesystem: No /boot directory found in root; this is is currently required
and the target root fs in /mnt/sysimage is empty indeed. It seems that an analogous fix to RHEL-66155 is needed even for bootc kickstart command.
What is the impact of this issue to you?
It's not possible to install a bootc container on a UEFI system if a separate /boot partition is not present, which may negatively affect some special scenarios (e. g. with significant storage constraints where separate /boot partition is not desirable).
Please provide the package NVR for which the bug is seen:
anaconda-40.22.3.43-1.el10
How reproducible is this bug?:
Always.
Steps to reproduce
- Prepare a kickstart file that will installa a bootc container image via bootc command, together with a custom partitioning consisting only of a / partition and reqpart.
- Start installation using the prepared kickstart on a UEFI system.
Expected results
Installation is successful, installed system boots without issues.
Actual results
Installation gets stopped due to an error (it's not possible to remove the /boot/efi mount directory from the target root filesystem + there is no bind mount for /boot).
- is related to
-
RHEL-66155 [RHEL10] Backport the fix for ostreecontainer fails without separate /boot
-
- Release Pending
-