Ubuntu 16.04 LUKS系统迁移后/boot加密需两次输密码求助
解决Ubuntu 16.04 LUKS加密分区双重密码提示问题
我来帮你搞定这个两次输密码的麻烦——核心思路是让GRUB一次性解锁所有需要的加密分区,再把解锁状态传递给initramfs,这样就能避免重复输入密码了。具体步骤如下:
1. 获取加密分区的UUID
先拿到你/boot和根分区对应的LUKS加密UUID,运行命令:
blkid
在输出里找**TYPE="crypto_LUKS"**的条目,分别记下:
- /boot加密分区的UUID(对应原始分区比如/dev/sdbX)
- 根加密分区的UUID
2. 配置GRUB支持加密磁盘
编辑GRUB的主配置文件:
sudo nano /etc/default/grub
做两个关键修改:
- 添加一行启用GRUB的加密磁盘支持:
GRUB_ENABLE_CRYPTODISK=y - 修改
GRUB_CMDLINE_LINUX参数,把两个加密分区的信息加进去(替换成你刚才拿到的UUID):
这里的GRUB_CMDLINE_LINUX="cryptdevice=UUID=<根加密UUID>:cryptroot cryptdevice=UUID=<boot加密UUID>:cryptboot ro quiet splash"cryptroot和cryptboot是分区映射名,要和后续crypttab配置对应。
3. 配置crypttab(如果还没设置)
编辑加密分区映射配置文件:
sudo nano /etc/crypttab
添加以下两行(替换成你的UUID):
cryptroot UUID=<根加密UUID> none luks cryptboot UUID=<boot加密UUID> none luks
none表示用密码直接解锁,无需额外密钥文件;luks指定加密类型。
4. 重新生成initramfs
确保initramfs包含加密相关工具和配置:
sudo update-initramfs -u
5. 更新GRUB配置
让GRUB加载新的加密配置:
sudo update-grub
验证重启
现在重启系统,应该只会看到一次GRUB的密码提示——输入后GRUB会同时解锁/boot和根分区,直接进入系统,不用再输第二次密码了。
如果还是有问题,检查这几点:
- 确认
GRUB_ENABLE_CRYPTODISK=y已经正确添加(没加的话GRUB不会处理加密分区) - crypttab里的UUID和映射名,要和GRUB_CMDLINE_LINUX里的完全一致
- /etc/fstab里的挂载点,是否正确指向
/dev/mapper/cryptboot和/dev/mapper/cryptroot - 执行
update-grub和update-initramfs时有没有报错
内容的提问来源于stack exchange,提问作者Daniel Niemczok
相关产品推荐
相关产品推荐

