我正在尝试设置一个完全加密的 Debian 操作系统,以及我预装的未加密的 Ubuntu。
到目前为止,我已经(传统BIOS)使用以下方案安装了Debian。
- /boot 作为扩展分区;格式-ext4(未加密)
- LUKS 上的 LVM:/分区 -ext4(加密)、SWAP(加密)
- Debian 的 grub2 安装在 /boot 而不是 MBR 上,因为 Ubuntu 的 grub2 是我的主要引导加载程序。
然后从 Ubuntu 端,我安装了 /boot 和 LVM 分区,然后更新了 grub。
但是,我的 grub2 无法识别 Debian。
接下来我该怎么办?
答案1
我还尝试了 grub2 的替代方法。我在挂载逻辑根分区时犯了一个错误。因为我不擅长 cli,所以我不想弄乱 grub2 配置文件。然而,grub2 可以有效地处理 LVM2 和 LUKS 分区。看这里 (https://wiki.gentoo.org/wiki/GRUB2#Extended_features)。
所以,这是我尝试过的替代方案
- step1、挂载/boot分区。
- 第2步,
$ sudo modprobe dm-crypt | grep dm-crypt
- 步骤3,使用“cryptsetup”命令解锁luks加密的分区。
- 步骤4、运行
$ sudo pvscan | vgscan | lvsacan
- step5、激活卷组
- step6、挂载逻辑根卷。无需安装逻辑交换。
- 步骤7,
sudo update-grub
完毕!
Grub2 将自动检测已安装的操作系统并将其列在 grub 菜单上。
答案2
好的,这就是你可以做的。
警告:此过程需要大量使用命令行,并且大多数情况下需要 root 访问权限:
- 启动Ubuntu。
/etc/grub.d/40_custom
使用文本编辑器打开。- 将以下内容附加到文件中:
忽略这一行(它是为了解决格式问题)
menuentry 'Debian' --class gnu-linux --class gnu --class os $menuentry_id_option 'debian-0aca58bc-8fdb-4a07-aa2f-56406bcf19b7' {
set root='hd0,msdos4'
configfile /boot/grub/grub.cfg
}
hd0,msdos4
更改反映您的 Debian分区的部分/boot
。在此示例中,hd0 是第一个磁盘,msdos4 是第 4 个分区;这意味着磁盘从 0 开始,分区从 1 开始。- 保存
/etc/grub.d/40_custom
文件。 - 检查您是否拥有该文件
/boot/grub/grub.cfg
。如果不是,则意味着您需要/boot
通过运行来挂载文件系统mount /boot
。 - 制作备份副本
/boot/grub/grub.cfg
- 跑步
grub-mkconfig -o /boot/grub/grub.cfg
- 交叉手指并重新启动。
如果一切顺利的话你会得到一个德班Ubuntu GRUB 菜单中的条目。当您选择该条目时,您的屏幕将刷新并显示您的 Debian GRUB 菜单,您可以从中启动 Debian。