我有一个加密的双启动 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 文件中尝试不同的条目!这样会更安全 - 我不必制作磁盘映像,也不必担心数据丢失。祝你好运!