找不到初始化!加密的lvm根分区

找不到初始化!加密的lvm根分区

今天我决定使用 lvm 将根分区移动到加密的 luks 分区,但遇到了一些麻烦。
这是我的初始设置

-- sda
    - sda1 (debian)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)  
    - sda7 (voidlinux)

我将 sda1 分割成 512M 的引导分区(sda1),其余部分用于 voidlinux(sda3)。它变成了

-- sda
    - sda1 (boot)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)
    - sda7 (void)
    - sda3 (for void)

然后我加密了sda3,创建了一个名为“vg”的lvm vg,创建了lv“root”。

-- sda
    - sda1 (boot)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)
    - sda7 (void)
    - sda3
       - enc
          - vg-root

在 上创建了一个 ext4 文件系统/dev/vg/root,安装了它,然后将我之前创建的备份 tar 存档解压到其中。 tar 档案包含/boot /usr /etc来自/var我的虚空/

安装/dev/vg/root/mnt,创建目录/mnt/{proc,dev,sys,tmp}然后运行for i in proc dev sys tmp ;do mount --rbind /$i /mnt/$i ;done

跑了mv /mnt/boot/*6.1* /mnt/tmp然后mount /dev/sda1 /mnt/boot终于mv /mnt/tmp/*6.1* /mnt/boot

在,下创建了这些符号链接/mnt[bin->/usr/bin, lib->/usr/lib, lib32->/usr/lib32, lib64->/usr/lib, sbin->/usr/bin]然后chroot到/mnt.

我尝试运行几个程序,一切正常。接下来我编辑了/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 rd.auto cryptdevice=/dev/sda3:enc".
安装了 grub grub-install /dev/sda。 grub.cfg grub-mkconfig -o /boot/grub/grub.cfg
重建 initramfs,dracut -f
添加了条目/dev/vg/root / ext4 defaults 0 1/dev/sda1 /boot ext2 defaults 0 0/etc/fstab

当我重新启动时,我输入了密码,然后我得到了这个...Cannot find init! Please check to make sure you passed a valid root filesystem!
我被困在这里,不知道下一步该做什么,请帮助我。
这是我从 dracutrescue shell 获得的完整日志。帕斯特宾

答案1

解决了。符号链接 [bin,lib*,sbin] 应该是相对的,即 bin->usr/bin...initshell脚本中的代码片段initramfs帮助我弄清楚了。

相关内容