我有一个三重启动系统,包括 Windows 7、Ubuntu 12.10 和 Crunchbang(Debian 衍生产品 - 不稳定的 Debian)。
我正在尝试加密所有内容:使用 TrueCrypt FDE 的 Windows,将 grub 链接到额外的启动分区,并使用 MBR 上的 Windows Bootloader。由于 Ubuntu 取消了加密选项(无处不在且没有替代安装),因此 Ubuntu 未加密。但 Crunchbang 是加密的。
我的分区图如下所示:
sda1: Win7
sda2: win7-boot junk (installed it by default - what is that anyway?!)
sda3: /boot
sda4: ubuntu
sda5: encrypted -> sda8(?): crunchbang
sda6: encrypted -> sda9(?): swap
sda7: another ext4
问题是,安装后,我可以正常启动 Windows 和 Crunchbang。但是 update-grub 打印出他找到了 Ubuntu,没有 Crunchbang,但重启后他只给了我 Crunchbang。
重新安装了 Ubuntu,包括 sda3 上的 grub。现在他只能找到 Ubuntu。
我认为后者很明显,grub 应该如何找到加密的操作系统?但有人能向我解释如何使用 grub2 双启动两个(理论上是加密的)Linux 吗?
答案1
当您执行 update-grub 时,它会扫描它能看到的所有分区,查找它知道如何处理的操作系统。如果扫描时未安装您的加密分区,它将找不到已加密的操作系统。
因此,您的第一步是解密加密分区并将其挂载到块设备。您可以使用以下命令执行此操作cryptsetup
:
cryptsetup luksOpen <device> <name>
因此,如果你的加密设备是 /dev/sda5(你的分区结构不清楚),请使用类似
cryptsetup luksOpen /dev/sda5 crunch
解密/dev/sda5
并挂载解密的块设备(不是文件系统!/dev/mapper/crunch
然后你就可以像往常一样继续了mount /dev/mapper/crunch <some mountpoint>
。
答案2
我遇到了同样的问题,在我的双启动 Debian 盒中,“未加密的 Debian 安装”更新了 grub 并遗漏了“加密的 LVM”。
本文对我帮助很大,/dev/sdg
在致电之前,我执行了以下步骤来激活安装的 LVM 卷update-grub
。
$ sudo apt-get install cryptsetup
$ sudo apt-get install lvm2
$ sudo lsblk -f /dev/sdg # Identify encrypted device
$ sudo file -s /dev/sdg5
$ sudo cryptsetup luksOpen /dev/sdg5 encrypted_device # Open the encrypted container
$ sudo vgdisplay --short # Identify volume group
$ sudo lvs -o lv_name,lv_size -S vg_name=enc-vg # List logical volumes
$ sudo lvchange -ay enc-vg # Activate every logical volume
$ sudo update-grub
$ sudo lvchange -an enc-vg # Deactivate active volumes
$ sudo cryptsetup luksClose encrypted_device # Close the opened container