当 TrueCrypt 加密的 Windows 7 和 Ubuntu 11.10 分别安装在不同的物理驱动器上时,如何双启动?

Mar*_*oot 5 grub2 dual-boot windows-7 truecrypt

当 TrueCrypt 加密的 Windows 7 和 Ubuntu 11.10 分别安装在不同的物理驱动器上时,如何双启动?

我有两个硬盘。hd0 安装了 TrueCrypt 加密的 Windows 7 和 TrueCrypt 引导加载程序。hd1 安装了带有 grub2 引导加载程序的 Ubuntu 11.10。

的输出fdisk -l如下:

  Device Boot      Start         End      Blocks   Id  System   
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   976771071   488282112    7  HPFS/NTFS/exFAT

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048   968517631   484257792   83  Linux
/dev/sdb2       968519678   976771071     4125697    5  Extended
/dev/sdb5       968519680   976771071     4125696   82  Linux swap / Solaris
Run Code Online (Sandbox Code Playgroud)

我可以通过更改 BIOS 中的启动顺序成功启动到任一操作系统,但不想重复执行此操作。我的选择是:

  • 将 TrueCrypt 引导加载程序添加到 grub2 配置并使用 grub2 链式加载它。
  • 启动到 TrueCrypt 引导加载程序,当点击 Esc 退出密码输入时,启动到 grub2。

我在选择 1 时遇到了困难,因为当点击 Esc 时 TrueCrypt 找不到其他可启动分区。据我了解,它应该搜索其他可启动磁盘。

我也遇到了选项 2 的问题,并且里面有以下内容/etc/grub.d/40_custom(然后运行update-grub2)......

menuentry "Windows 7" {
set root=(hd0,1)
chainloader +1
}
Run Code Online (Sandbox Code Playgroud)

(我也试过root=(hd0,0)root=(hd0,2)

...我在没有这样的分区时出错。我还阅读了各种资料,这些资料表明,在启动 Windows 之前,如果不安装并启动到 TrueCrypt 救援磁盘 ISO 中,就不可能使用 grub2 执行此操作。这是必要的吗?

我究竟做错了什么?

Mar*_*oot 3

看来最简单的解决方案是使用 Windows 引导加载程序引导到 Grub,而不是相反。即使使用 .Grub 似乎也无法启动到加密的 Windows 分区--force

有一个名为 EasyBCD 的工具(免费供非商业用途),一旦您输入 TrueCrypt 密码,它将正确配置 Windows 引导加载程序以引导至 Grub。我现在将 Windows 驱动器作为 BIOS 中的第一个引导设备,并将 Grub 作为 Windows 引导加载程序中的默认引导项。您可以轻松地将 Windows 设置为默认值。