aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-installer/anaconda/files/0044-fix-installed-system-boot-from-encrypt-fs-failed.patch
blob: 6ee10cc4841daaafbb379c22a435c7a30e9ada53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
From fc8f50947ecb274ee125fb3e09c3cd947357c34d Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Sat, 29 Jun 2019 15:52:02 +0800
Subject: [PATCH] fix installed system boot from encrypt fs failed

1. While using cryptsetup to encrypt filesystem, it failed to boot
installed system.
-----------------
dracut: luksOpen /dev/sda3 luks-9cf2d2d9-849e-4ecb-a7f8-5918259306d6
Enter passphrase for /dev/sda3: Switched to clocksource tsc

device-mapper: table: 253:0: crypt: Error allocating crypto tfm
device-mapper: ioctl: error adding target to table
device-mapper: reload ioctl on  failed: No such file or directory
Failed to setup dm-crypt key mapping for device /dev/sda3.
Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
Wrong password
-----------------

The reason is the initramfs (generated by dracut) missed kernel module.

Config dracut to let initramfs has the kernel driver.

2. Since systemd in oe-core does not support cryptsetup which caused a
loop dependency with lvm2, so ommit systemd module in dracut.

Upstream-Status: Inappropriate [oe specific]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>

Replace util.getSysroot() with conf.target.system_root.

Signed-off-by: Kai Kang <kai.kang@windriver.com>

Rebase for anaconda 34.

Signed-off-by: Kai Kang <kai.kang@windriver.com>

Update context because 0042-support-initramfs-boot.patch updated for
anaconda 37.

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 pyanaconda/modules/storage/bootloader/utils.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pyanaconda/modules/storage/bootloader/utils.py b/pyanaconda/modules/storage/bootloader/utils.py
index d25c51ee3..d53538d3a 100644
--- a/pyanaconda/modules/storage/bootloader/utils.py
+++ b/pyanaconda/modules/storage/bootloader/utils.py
@@ -294,6 +294,11 @@ def recreate_initrds(sysroot, kernel_versions):
     for subdir in ["log", "tmp"]:
         make_directories(conf.target.system_root + "/var/volatile/%s" % subdir)
 
+    with open(conf.target.system_root + "/etc/dracut.conf.d/cryptsetup.conf", "w") as f:
+        f.write('add_drivers+=" aesni_intel"\n')
+        f.write('add_drivers+=" aes_x86_64"\n')
+        f.write('omit_dracutmodules+=" systemd"\n')
+
     for kernel in kernel_versions:
         log.info("Recreating initrd for %s", kernel)
 
-- 
2.7.4