给定以下系统:
/dev/sda1 Windows, encrypted using TrueCrypt
/dev/sda2 /boot
/dev/sda3 /, encrypted (LUKS or how it is called)
我现在需要 GRUB2 来启动我的 truecrypt mbr ): 对此有什么提示吗?我找到了一些 GRUB2 和 TrueCrypt 指南,但它们都假设 linux 根分区未加密,而我的情况就是如此 ):
答案1
@stefan.at.wpf 的解决方案是整个互联网上都推荐的解决方案。它对我来说不起作用。一点用都没有。但我找到了另一个解决方案,它对我有用。
本质上,您链式加载 GRUB2 来加载 SYSLINUX,后者又启动 TrueCrypt Rescue ISO 映像,从而允许您启动 Windows。
我已经记录了全部细节这里. 但总结版本如下:
安装 syslinux:
sudo aptitude install syslinux
将文件复制到位:
sudo cp /usr/lib/syslinux/memdisk /boot/ sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
确定启动分区的 UUID:
sudo blkid /dev/sda2
输出应如下所示:
/dev/sda3:UUID=“12345678-1234-1234-1234567890”
配置 GRUB2:
添加以下内容
/etc/grub.d/40_custom
:menuentry "TrueCrypt ISO boot" { insmod part_msdos insmod fat insmod ext2 insmod search_fs_uuid search --fs-uuid --no-floppy --set=boot [UUID without quotes] linux16 ($boot)/memdisk iso raw initrd16 ($boot)/truecrypt-rescue-disk.iso }
重新加载 GRUB2 配置
sudo update-grub
请注意,每次启动 Windows 时,都会显示 [F8] 修复选项,因为我们欺骗系统从硬盘启动 TrueCrypt 救援 CD 映像,而不是“正常”的 TrueCrypt 启动方法。但对我来说,这似乎是一个小缺点(甚至可能被视为一项附加功能!)
答案2
解决方案:在加密 Windows 之前,使用以下方法将 GRUB2 安装到 /boot
grub-install /dev/sda2 --force
忽略警告。然后安装 Truecrypt,激活 Windows 分区(例如,使用 Windows 7 安装 CD 上的 diskpart)。TC 引导加载程序中的 ESC 现在指向 grub - 一切正常 :-) 使用 live CD 中的 luks 安装加密根目录并使用 chroot 安装 grub2 也应该是可行的,我忘记了这个简单的解决方案。
答案3
Flimzy 的答案对我不起作用,我也不想花几个小时解密和重新加密 Windows 来尝试 stefan.at.wpf 的建议。出于绝望,我尝试在 Grub 命令行中摆弄,放弃并输入exit
去做其他事情,结果出现了 TrueCrypt 引导加载程序。
我惊呆了。
我编辑了我的 /etc/grub.d/40_custom 文件以读取
menuentry "Windows 7" { exit }
而且它确实有效。
显然 YMMV,但这是我的设置:TrueCrypt-encrypted-Windows 拥有一个磁盘的全部空间,Linux 和 Grub 2.02~beta2-29ubuntu0.1 拥有另一个磁盘的全部空间。我的戴尔 BIOS 设置为从 USB 启动,然后从 CD 启动,然后从 Linux 磁盘启动,最后从 Windows 磁盘启动。我不确定这是如何或为什么会这样,但我很高兴它确实如此。