如何让 Grub2 启动 Truecrypt 加密的 MBR?

如何让 Grub2 启动 Truecrypt 加密的 MBR?

给定以下系统:

/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。

我已经记录了全部细节这里. 但总结版本如下:

  1. 安装 syslinux:

    sudo aptitude install syslinux
    
  2. 将文件复制到位:

    sudo cp /usr/lib/syslinux/memdisk /boot/
    sudo cp TrueCrypt\ Rescue\ Disk.iso /boot/truecrypt-rescue-disk.iso
    
  3. 确定启动分区的 UUID:

    sudo blkid /dev/sda2
    

    输出应如下所示:

    /dev/sda3:UUID=“12345678-1234-1234-1234567890”

  4. 配置 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
    }
    
  5. 重新加载 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 磁盘启动。我不确定这是如何或为什么会这样,但我很高兴它确实如此。

相关内容