Win7 的引导分两部分:MBR 程序和 BCD (Vista 之前称为 NTLDR ,其实他们是一个东西,但改进了很多)。MBR 程序就是 MBR 里面前 446 字节。Windows 每次用官方安装盘安装系统,都会强行覆盖这里的程序为自己的 MBR 程序,这个 MBR 的程序功能很简单,就是启动分区表里面标记为激活的分区。
之后 MBR 程序启动激活分区里面的 BCD (BCD 在分区特殊位置安装有特殊程序)。BCD 实现 F8 功能和正式启动 Windows7 。
Linux 这里不能启动,是因为 MBR 前 446 字节里面本来是 Linux 的引导程序 GRUB 。Win7 安装完,会覆盖 MBR 这里的 GRUB 程序,导致不能启动 GRUB 而是启动 BCD 来启动 Windows。
但 BCD 本身不支持直接启动 Linux ,所以你的 Linux 现在不能启动了。只能用 BCD 启动一个可以引导 Linux 的程序来过渡。这种软件其实不多现在基本也就 GRUB 可以选择。
解决办法有两个:
1、修复 GRUB 的 MBR 程序,这个实现很简单,只要能启动 Linux 就能修复,不管你是启动一个 GRUB for DOS 还是找个 Linux LiveCD 只要进入了 Linux 就能进行修复。这种修复文章网上一大堆。
2、用 Win7 的 BCD 启动 GRUB 来过渡启动到 Linux 。但 BCD 设置起来很麻烦,不如 XP 直接修改 boot.ini 方便,直观。这里的 GRUB 用 GRUB for NTLDR 版本就可以,但需要单独找 for BCD 的安装方法。不能照抄 XP 的修改 boot.ini 方法。