the*_*now 9 mbr truecrypt grub multi-boot windows-xp
我希望 Truecrypt 像往常一样询问 Windows XP 的密码,但是使用标准的 [ESC] 选项,在选择该选项时,即通过 Escape 键,我希望它找到(未加密的)Ubuntu 安装的 grub。
我已经在 Toshiba NB100 上网本的 120Gb 硬盘驱动器上安装了 Windows XP,然后分区为 Ubuntu 10.04 腾出空间,并在 Windows XP 安装后安装。
当我加密 Windows XP 时,Truecrypt 将覆盖主引导记录 (MBR) 中的 grub 条目,我相信 (?) 并且我将无法再在 XP 和 Ubuntu 之间进行选择。所以我需要把它恢复回来。
我在 Ubuntu 论坛和其他地方搜索了相当广泛的答案,但还没有找到涵盖所有可能性、场景和错误消息的完整答案,否则他们谈论的是旧版 GRUB 而不是 GRUB2。Ubuntu 10.04 使用 GRUB2。
我的设置:
分区:
我知道 Truecrypt 引导加载程序在启动时会替换 GRUB,因为我已经在另一台笔记本电脑上尝试过它。
我希望引导加载程序屏幕看起来像往常一样:
真密码
输入密码:
(或 [ESC] 跳过)
密码适用于 WindowsXP,按 [ESC] 可以找到要从其启动的 Ubuntu grub
在此先感谢您的帮助。
问题的关键在于如何在按下转义键时指示 Truecrypt,以及如何在按下 esc 键时让 Truecrypt 引导加载程序看到 Grub/Ubuntu 以找到它。也称为链接。
这很容易。对磁盘进行分区,安装 Windows 和 Ubuntu。在 Windows 分区上使用 TrueCrypt,这将加密 Windows 但不加密 Ubuntu。
然后你会发现你可能只能引导到 Windows,然后通过 TrueCrypt 引导加载程序。听起来你已经在那里了。
假设您的磁盘是sda
,Windowssda1
和 Linux sda2
(这是假设的,你的看起来不会sda2
)。TrueCrypt 将安装到 MBR 上sda
并覆盖 GRUB。
使用 Ubuntu 发行版 CD 启动 Live CD,然后 chroot 进入预安装的系统。像这样:
sudo su -
mkdir -p /mnt/ubuntu
mount /dev/sda2 /mnt/ubuntu
mount --bind /proc /mnt/ubuntu/proc
mount --bind /dev /mnt/ubuntu/dev
chroot /mnt/ubuntu
Run Code Online (Sandbox Code Playgroud)
然后安装 GRUB 引导加载程序,但要安装到sda2
,而不是sda
.
grub-install /dev/sda2 --force
Run Code Online (Sandbox Code Playgroud)
然后,当您重新启动时,您仍然会收到 TrueCrypt 加载程序,要求您输入密码以从sda
->sda1
进入 Windows。但是当您按 ESCAPE 时,您将获得绕过并直接引导到 Linux 的选项,sda2
而不是从 MBR 引导。
在你这样做之前,有一个警告:如果你grub-install
弄错了,并覆盖了sda
MBR,或者如果你进行内核升级触发 GRUB 覆盖 MBR,你会发现你需要重新安装 TrueCrypt 引导加载程序才能回来进入 Windows。如果你没有准备好,这是一个巨大的麻烦。
我建议您在使用 GRUB 之前,先从 Linux 中备份 TrueCrypt 引导加载程序。这样,当你破解 TrueCrypt 只能进入 Linux 时,你可以轻松地将其写回。
备份您的 TrueCrypt 引导加载程序:
dd if=/dev/sda of=~/truecrypt.mbr count=1 bs=512
dd if=/dev/sda of=~/truecrypt.backup count=8 bs=32256 # Just in case
Run Code Online (Sandbox Code Playgroud)
恢复您的 TrueCrypt 引导加载程序(我称之为restore-truecrypt.sh
):
sudo dd if=~/truecrypt.mbr of=/dev/sda count=1 bs=512
sudo dd if=~/truecrypt.backup of=/dev/sda count=8 bs=32256
sudo grub-install /dev/sda2 --force
Run Code Online (Sandbox Code Playgroud)
我在小 shell 脚本中有这两组命令,我一直很方便。当我不小心 zap 我的引导加载程序(它发生)时,我不想在谷歌上搜索命令或阅读man
.
哦,还有关于兼容性的话。当我写“GRUB”时,我的意思是 GRUB 1 或 2。就我个人而言,我在 10.04 和 Windows 7 上使用 GRUB 2 来做这件事……但它在旧版本的 GRUB、Windows 和 Linux 上运行良好。
我将接受这个问题的答案是我自己的。答案是接受我不能*这样做,并且我将接受替代方案之一:
\n\n使用在 Windows XP(加密的系统驱动器分区)主机 Ubuntu 中运行的虚拟化/VM ware 应用程序,例如 VirtualBox、VMWare 或 Parallels。所以我必须启动到 Windows,然后运行这个应用程序并从其中启动到 Ubuntu。一些评论员列出了这种方法的缺点之一,即您必须启动两次(首先是 XP,然后是 Ubuntu)才能进入 Ubuntu。然而,我想说它实际上比普通 BIOS 启动的双启动有一个优势,因为你实际上可以同时运行两个操作系统。例如,如果您想在多个平台上快速测试应用程序或网页,那就太好了。
使用适用于 Ubuntu 的辅助硬盘或 SD 卡(例如 8GB、16Gb),并选择从 BIOS(一次性)启动来启动 Ubuntu。
*Can\'t = 确实意味着我已经在这上面花费了足够的时间(三天内大约 6 个小时,离开时头脑清醒,搜索论坛回来时精神焕发),并且不准备再花更多的时间。所以我不能被指责为懒惰和依赖别人。Can\'t = 也意味着:目前不能。我可能会再次回顾这一点。
\n\n以下是其他人可能会觉得有用的一些参考:
\n\n以上所有内容都提供了一些见解,但并不是涵盖每种可能性或 grub 版本的明确完整答案。
\n\n我已经在超级用户、ubuntuforums 和 truecrypt 论坛上发布了同样的问题:
\n\n我这样做的理由是这些论坛的读者不一定会阅读其他论坛,会有一些重叠,但可能会错过一些重要的建议。
\n\n背景想法和学习(如果有兴趣!)
\n\n事实上,我很高兴地说,我今天就到此为止了,并开始考虑其他选择,尽管我确实让它战胜了我,并继续努力争取胜利并解决我的答案。但承认这不可能(轻易地)完成并且还有其他选择,这让人松了口气。现在我可以继续做更重要的事情了!我已经在没有加密的桌面上双启动 Windows 7 和 Ubuntu 10.04 - 这是一个非常简单的过程。通过其他选择,我离我最初的答案想要的并不遥远。事实上,目前我在笔记本上使用 Ubuntu 的频率不如 Windows,所以我不会太怀念它。我也有一台 MacBookPro,所以我绝不比任何其他操作系统更喜欢 Windows!
\n\n从另一个用户的角度来看,这就是我想要 truecrypt 加密 Windows 与 Ubuntu 双启动的原因:
\n\n\n\n\n\n\n“我有一台用于 Symbian 和 Web 开发的工作笔记本电脑。我需要能够启动 Vista 和 Linux。出于客户隐私的考虑,两个操作系统都必须加密,以防笔记本电脑丢失。即使我不使用 Windows主动地,其网络浏览器数据可能包含客户端系统存储的密码,意外泄露这些密码将是灾难性的。”
\n
Grub2 比 grub 复杂得多,有些人可能会这么认为。我在 Windows XP 上成功使用了 10.04 之前的 Ubuntu(GRUB 不是 GRUB2):
\n\nhttp://www.howtoforge.com/forums/showthread.php?p=184776#post184776
\n\n我说更复杂是因为现在存在更多的设置文件,分布在更多的目录中,它们之间有引用,有些现在是机器生成的,建议不要编辑它们,例如启动菜单,有一种脚本语言需要学习和进行更改时运行的脚本解释器。目前对我来说太复杂了,而且只是为了发射操作系统,而不是火箭登月!
\n 归档时间: |
|
查看次数: |
12356 次 |
最近记录: |