You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修复带LUKS加密根分区的Grub2引导,消除启动Ubuntu时的initramfs手动操作

修复带LUKS加密根分区的Grub2引导,消除启动Ubuntu时的initramfs手动操作

看起来你的问题核心是Ubuntu的initramfs不知道要自动解锁LUKS加密根分区,加上Grub引导时没传递正确的加密参数,导致每次启动都要手动进initramfs解锁。咱们一步步来解决:

1. 先让Ubuntu的initramfs支持自动解锁加密分区

首先你得先进入Ubuntu系统——就用你现在的方法,手动在initramfs里解锁后进入系统,然后做以下操作:

  • 配置加密分区映射:打开终端,编辑/etc/crypttab文件,确保系统能识别你的加密分区:

    sudo nano /etc/crypttab
    

    添加这一行(对应你的/dev/sdc4加密分区,映射名用你手动输入的myVolume):

    myVolume /dev/sdc4 none luks
    

    按Ctrl+O保存,回车确认,再按Ctrl+X退出编辑器。

  • 添加加密和LVM所需模块:编辑/etc/initramfs-tools/modules,让initramfs包含处理加密和LVM的必要驱动:

    sudo nano /etc/initramfs-tools/modules
    

    添加以下几行:

    dm-crypt
    cryptd
    dm-mod
    ahci
    

    这些模块分别负责LUKS加密、加密性能辅助、LVM逻辑卷管理和磁盘控制器支持,确保initramfs能正确识别你的加密分区和里面的LVM卷。

  • 更新initramfs镜像:让刚才的配置生效,更新所有内核版本对应的initramfs:

    sudo update-initramfs -u -k all
    

2. 修复Grub引导条目,传递加密参数

现在有两种方式更新Grub配置,选一种适合你的就行:

方式一:让Fedora的Grub自动探测正确的Ubuntu配置

回到Fedora系统,打开终端,运行命令让Grub重新扫描所有可引导系统,自动生成正确的Ubuntu引导条目:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

这个命令会重新生成Fedora的Grub配置文件,其中Ubuntu的条目会自动包含加密分区的参数,启动时就会直接提示你输入LUKS密码,不用再进initramfs手动操作。

方式二:手动修改Fedora中的Ubuntu引导条目(如果自动探测失败)

如果自动探测没生效,或者你想手动调整,可以直接修改Grub的自定义条目:

  • 打开Fedora中的Grub自定义文件:

    sudo nano /etc/grub.d/40_custom
    

    修改现有的Ubuntu条目,添加加密相关模块和参数,修改后的内容如下:

    menuentry 'Ubuntu 22.04 LTS' {
        insmod part_gpt
        insmod ext2
        insmod cryptodisk
        insmod luks
        insmod lvm
        set root='hd2,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
            search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  07baf26d-6f32-4a0d-b264-336d15177aba
        else
            search --no-floppy --fs-uuid --set=root 07baf26d-6f32-4a0d-b264-336d15177aba
        fi
        linux /vmlinuz-5.15.0-56-generic root=/dev/mapper/vg0-root ro quiet splash cryptdevice=/dev/sdc4:myVolume $vt_handoff
        initrd /initrd.img-5.15.0-56-generic
    }
    

    关键修改点:

    • 新增了insmod cryptodisk、insmod luks、insmod lvm三个模块,让Grub能识别加密分区和LVM卷
    • 在linux行末尾添加了cryptdevice=/dev/sdc4:myVolume,告诉内核启动时先解锁/dev/sdc4并映射为myVolume
  • 保存退出后,重新生成Grub配置:

    sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    

3. 测试效果

重启系统,选择Ubuntu的Grub条目,现在应该直接弹出LUKS密码输入框,输入密码后就能正常进入系统,不会再进入initramfs需要手动解锁了。

备注:内容来源于stack exchange,提问作者HFR1994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:44:04