升级后,Windows 7 中的 Truecrypted 在 Grub2 中丢失

升级后,Windows 7 中的 Truecrypted 在 Grub2 中丢失

我有一个加密的双启动 Windows 7/Ubuntu 系统,今天升级了我的 Ubuntu。

一切顺利,但我的 Windows 不再显示在 Grub2 列表中。启动时,我有 Truecrypt Bootloader,输入密码后,我进入 Grub(现在是 Grub2)。现在我的 Windows 7 条目不见了。

以下是我的报告:
http://paste.ubuntu.com/7569182/

更新 Grub 对此没有任何作用。我猜想在 Ubuntu 中它不再识别我在 sda1 上的 Windows 安装。我也无法安装它。

我只能通过 Truecrypt 本身来安装它。我想我可能必须手动将 Windows 的菜单项插入到该 Grub 配置文件中。我猜想,在 truecrypt 引导加载程序中输入密码后,如果该项存在,就可以启动 Windows - 不过这只是猜测。

编辑:
我基本上按照以下步骤来设置我的系统:
使用 Truecrypt 实现 Windows 7 与 Ubuntu 12.04LTS 双启动

答案1

问题是 Ubuntu 不知道这些分区是什么:

sda1: ____________________________________________________

    File system:       
    Boot sector type:  Unknown
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''

sda2: ____________________________________________________

    File system:       
    Boot sector type:  Unknown
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''
mount: unknown filesystem type ''

因此,您需要告诉 Ubuntu 如何读取它。为此,您应该先尝试安装加密文件系统并保存数据。从安全来源下载 Linux 版本的 Truecrypt (truecrypt.sourceforge.com 不再安全)。此步骤是出于预防措施。对目录内容执行相同操作/boot

现在,验证您是否已在实时安装中安装了 cryptsetup 包。它应该能够毫无问题地检测 truecrypt 文件系统。现在,使用 grub-install 修复您的启动:

sudo mkdir /mnt/{boot,ntfs1,ntfs2}
sudo cryptsetup --type tcrypt open /dev/sda1 /mnt/ntfs1
sudo cryptsetup --type tcrypt open /dev/sda2 /mnt/ntfs2
sudo mount /dev/sda3 /mnt/boot
sudo grub-install --boot-director=/mnt/boot /dev/sda

然后,我希望在执行此操作之前,您拥有磁盘的完整映像、重要信息的备份等,因为我不能保证它是否会起作用(即 grub 炸毁 truecrypt 引导加载程序)。

答案2

所以解决方案相当简单,我最初的猜测是正确的。我只是通过以下方式添加了以下内容
sudo gedit /etc/grub.d/40_custom

menuentry "Windows 7" {
set root=(hd0,msdos1)
chainloader +1
}

其中hd0代表我的磁盘和msdos1我的 Windows 操作系统在我的 SSD 的第一个分区上sda1。要找出你需要的分区号,你可以使用

sudo fdisk -l

这给了我

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   134219775    67108864    7  HPFS/NTFS/exFAT
/dev/sda2       201328640   250066943    24369152    7  HPFS/NTFS/exFAT
/dev/sda3   *   134219776   134610943      195584   83  Linux
/dev/sda4       134610944   201328639    33358848   83  Linux

然后我运行以下命令来更新我的/boot/grub/grub.cfg

sudo update-grub2

要验证该条目是否在你的配置文件中,只需检查

cat /boot/grub/grub.cfg

完毕。

我认为问题是,只有在引导加载到 Grub2 时,TrueCrypt 才会解密 Windows 分区以启用从中引导。别忘了在我的设置中,首先显示的是链接到 Grub2 的 TrueCrypt 引导加载程序。但是运行 ubuntu 时,分区再次加密,sudo update-grub2只找到原始二进制数据。

对于相关问题,我建议在对系统本身进行重大更改之前,先在 40_custom 文件中尝试不同的条目!这样会更安全 - 我不必制作磁盘映像,也不必担心数据丢失。祝你好运!

相关内容