os-prober无法在三重启动环境中检测到加密的Kubuntu系统,如何实现自动检测?
os-prober无法在三重启动环境中检测到加密的Kubuntu系统,如何实现自动检测?
这个问题我之前折腾加密LVM多系统的时候也碰到过,os-prober默认确实没法自动识别加密的LVM系统——因为它没有权限解锁加密卷,自然扫不到里面的Kubuntu引导信息。不过咱们可以通过几步配置让它自动检测,不用再手动写40_custom了,具体步骤如下:
1. 确认os-prober已安装(可选,但保险起见)
先确保你的Ubuntu系统里已经装了os-prober,没装的话跑这个命令:
sudo apt install os-prober
2. 找到Kubuntu加密卷的UUID
咱们得先拿到Kubuntu那个加密LUKS分区的UUID,在Ubuntu里执行:
sudo blkid
找输出里TYPE="crypto_LUKS"的条目,对应的UUID="xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"就是咱们要的,记下来(后面叫它KUBUNTU_LUKS_UUID)。
3. 允许GRUB处理加密磁盘
编辑GRUB的默认配置文件:
sudo nano /etc/default/grub
添加或者确保有这一行:
GRUB_ENABLE_CRYPTODISK=y
这行的作用是让GRUB具备解锁加密磁盘的能力。
同时,还要确保os-prober没有被禁用,检查文件里有没有GRUB_DISABLE_OS_PROBER=false,如果没有就加上,有的话确保它的值是false。
4. 创建预扫描脚本解锁加密卷
咱们需要在GRUB运行os-prober之前先解锁Kubuntu的加密卷,所以在/etc/grub.d/目录下创建一个脚本文件:
sudo nano /etc/grub.d/05_cryptoscan
把下面的内容粘进去,注意把KUBUNTU_LUKS_UUID替换成你刚才记下的真实UUID:
#!/bin/sh exec tail -n +3 $0 # 这个脚本会在os-prober扫描前解锁Kubuntu的加密LVM卷 cryptomount UUID=KUBUNTU_LUKS_UUID
保存退出后,给这个脚本加执行权限:
sudo chmod +x /etc/grub.d/05_cryptoscan
5. 重新生成GRUB配置
最后一步,让GRUB应用这些配置:
sudo update-grub
这时候你应该能看到os-prober扫描到Kubuntu的提示了,重启后GRUB菜单里就会自动出现Kubuntu的条目。
一些注意事项
- 启动的时候GRUB会提示你输入加密密码,这是正常的——如果Ubuntu和Kubuntu的加密卷用的是同一个密码,GRUB会记住密码只需要输一次;如果密码不同,就得输两次,这个得看你自己的设置。
- 如果你之前手动在
40_custom里加了Kubuntu的条目,现在自动检测到了会有重复,建议把手动加的删掉,避免混淆。
备注:内容来源于stack exchange,提问作者thehnm
相关产品推荐
相关产品推荐

