将系统从 LVM 迁移到 LUKS 上的 LVM 后,内核无法在启动时询问 LUKS 密码

将系统从 LVM 迁移到 LUKS 上的 LVM 后,内核无法在启动时询问 LUKS 密码

我在桌面系统上运行 Linux Mint 18.3。

我已经将工作站从普通 LVM 迁移到 LVM 而非 LUKS。系统无法启动,启动时也不会要求输入 LUKS 密码。我可以从 LiveCD 启动系统,并正确解锁和挂载 lvm 逻辑卷chroot,因此文件系统没有问题。

这是我第一次尝试加密现有系统。

我认为我对 initramfs 的操作有问题,它缺少一些模块、工具或配置。

我的当前配置(chroot从 LiveDVD 进入我的根文件系统后显示)如下:

# cat /etc/crypttab
crypt_nvme0n1p2     UUID=107e557d-9b46-4a6e-897a-1e7f206700e3   none    luks,discard
encSda1         UUID=4b7a630b-f224-4501-9dc7-6955be0fe44c   none    luks,discard

# blkid
/dev/nvme0n1p2: UUID="107e557d-9b46-4a6e-897a-1e7f206700e3" TYPE="crypto_LUKS" PARTUUID="b5caeeb7-3d41-4569-ac4f-96357c851439"
/dev/sda1: UUID="4b7a630b-f224-4501-9dc7-6955be0fe44c" TYPE="crypto_LUKS" PARTUUID="13a6508d-5e77-417e-bfbd-2d11af488128"

# pvs 
  PV                          VG      Fmt  Attr PSize   PFree  
  /dev/mapper/crypt_nvme0n1p2 vg-main lvm2 a--  237.10g  55.33g
  /dev/mapper/encSda1         vg-main lvm2 a--  465.76g 283.99g

# lvs -o+devices
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                                
  lv-home vg-main rwi-a-r--- 137.00g                                    100.00           lv-home_rimage_0(0),lv-home_rimage_1(0)
  lv-root vg-main rwi-aor---  44.76g                                    100.00           lv-root_rimage_0(0),lv-root_rimage_1(0)

# lsblk
NAME                             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sr0                               11:0    1   1.9G  0 rom   
loop0                              7:0    0   1.8G  1 loop  
sda                                8:0    0 465.8G  0 disk  
└─sda1                             8:1    0 465.8G  0 part  
  └─encSda1                      253:1    0 465.8G  0 crypt 
    ├─vg--main-lv--home_rimage_0 253:8    0   137G  0 lvm   
    │ └─vg--main-lv--home        253:11   0   137G  0 lvm   
    ├─vg--main-lv--root_rmeta_0  253:2    0     4M  0 lvm   
    │ └─vg--main-lv--root        253:6    0  44.8G  0 lvm   /
    ├─vg--main-lv--home_rmeta_0  253:7    0     4M  0 lvm   
    │ └─vg--main-lv--home        253:11   0   137G  0 lvm   
    └─vg--main-lv--root_rimage_0 253:3    0  44.8G  0 lvm   
      └─vg--main-lv--root        253:6    0  44.8G  0 lvm   /
nvme0n1                          259:0    0 238.5G  0 disk  
├─nvme0n1p3                      259:3    0   511M  0 part  
├─nvme0n1p1                      259:1    0   125M  0 part  
├─nvme0n1p4                      259:4    0   768M  0 part  /boot
└─nvme0n1p2                      259:2    0 237.1G  0 part  
  └─crypt_nvme0n1p2              253:0    0 237.1G  0 crypt 
    ├─vg--main-lv--home_rimage_1 253:10   0   137G  0 lvm   
    │ └─vg--main-lv--home        253:11   0   137G  0 lvm   
    ├─vg--main-lv--root_rmeta_1  253:4    0     4M  0 lvm   
    │ └─vg--main-lv--root        253:6    0  44.8G  0 lvm   /
    ├─vg--main-lv--home_rmeta_1  253:9    0     4M  0 lvm   
    │ └─vg--main-lv--home        253:11   0   137G  0 lvm   
    └─vg--main-lv--root_rimage_1 253:5    0  44.8G  0 lvm   
      └─vg--main-lv--root        253:6    0  44.8G  0 lvm   /

因此,在加密此系统后,我编辑了 /etc/crypttab,因此它看起来如上所示,并且我已使用 重新创建了 initramfs update-initramfs -u -k all。然后我尝试重新启动系统,但无法启动,提示无法挂载 root fs。

启动时日志显示:

Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done. 
Begin: Mounting root file system ... Begin Running /scripts/local-top ... lvmetad is not active yet, using direct activa(...)
during sysinit
  Volume group "vg-main" not found
  Cannot process volume group vg-main
  /run/lvm/lvmetad.socket: connect failsed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  Reading all pysical volumes. This may take a while...
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
Begin: Waiting for encrypted source device... ...     /run/lvm/lvmetad.socket: connect failsed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.
  Reading all pysical volumes. This may take a while...
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
  WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

最后三行重复出现,没有其他事情发生 一些背景

我做错了什么?我需要在 initramfs 的配置中添加什么?我应该修改 grub 中的内核参数吗?

背景信息:

我有一个在单个驱动器上设置了 LVM 的桌面系统。我正在尝试将其迁移到使用 LUKS 的加密设置。我临时安装了另一个驱动器,在其上设置了 LUKS 分区,创建了 PV 并将现有逻辑卷(根和主)镜像到这个新的加密驱动器。

然后我擦除了旧驱动器,创建了加密卷,并在该加密卷上重新创建了 LVM PV,并镜像回 LV。我的目标是在系统可启动后删除镜像,并删除临时磁盘。

答案1

启动时需要的模块

lvm2
dmcrypt

猜测缺少 dmcrypt。请确保将这两个添加到 /etc/initramfs-tools/modules

它们还依赖于 busybox,因此请确保安装了 busybox。

然后不要忘记 update-initramfs -u

相关内容