From 601c26f795a7b2f6cb553c656112235d17137b8f Mon Sep 17 00:00:00 2001 From: karolinku Date: Tue, 16 Sep 2025 15:58:29 +0200 Subject: [PATCH 12/55] LiveMode: Add /etc/crypttab file to the target userspace container When upgrading with LiveMode, the auto-unlock of encrypted devices fails because the /etc/crypttab configuration file is not present inside the squashfs, causing the boot process to fail. This change copy /etc/crypttab file to the target userspace container during the upgrade process, allowing encrypted devices to be properly unlocked. Jira: RHEL-90098 --- .../common/actors/checkluks/libraries/checkluks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py b/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py index 57a94e9d..aac171a7 100644 --- a/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py +++ b/repos/system_upgrade/common/actors/checkluks/libraries/checkluks.py @@ -3,6 +3,7 @@ from leapp.libraries.common.config.version import get_source_major_version from leapp.libraries.stdlib import api from leapp.models import ( CephInfo, + CopyFile, DracutModule, LuksDumps, StorageInfo, @@ -156,7 +157,10 @@ def check_invalid_luks_devices(): 'tpm2-tools', 'tpm2-abrmd' ] - api.produce(TargetUserSpaceUpgradeTasks(install_rpms=required_crypt_rpms)) + api.produce(TargetUserSpaceUpgradeTasks( + copy_files=[CopyFile(src="/etc/crypttab")], + install_rpms=required_crypt_rpms) + ) api.produce(UpgradeInitramfsTasks(include_dracut_modules=[ DracutModule(name='clevis'), DracutModule(name='clevis-pin-tpm2') -- 2.51.1