关于多系统启动及如何在已有 Win 7 情况下装 Win XP

在很多网上的教程里都告诉我们,如果要在你的电脑里装多个系统,那么一定要按照这个顺序装:低等级 Windows 系统→高等级 Windows 系统→ Ubuntu 等 Linux 发行版。这是因为如果倒过来装,那么低等级的 Windows 系统的引导程序会把高级的 Windows 系统及 Linux 发行版的引导程序破坏。事实也的确是这样的,但是难道真的没有变通的方法吗?如果我硬盘里已经有 Windows 7 了,我要再装个 XP ,一定就要重装 Windows 7 吗?本文将会为你提供一种解决此问题的方法。

一、关于多系统启动

(由于 Mac OS X 系列系统难以在普通 PC 上安装,所以本文只讨论 Windows 和 Linux 。前者以 Windows 7 和 Windows XP 为例,后者以最流行的发行版 Ubuntu 的 10.04 版本为例)

在 NT 架构出现之后, NT6.0 出现之前,也就是从 Windows NT 到 Windows Server 2003 (内核为 NT 5.3 )这段时间里, Windows 系统的引导程序都是 ntldr ,这是一个存在于硬盘的第一个主分区的一个小文件,就是它引导系统启动的。如果你的电脑的操作系统是 Windows XP 的话,那么看看 C 分区的根目录里,就有这样的一个文件。

在 NT6.0 (第一个使用 NT6.0 内核的操作系统是 Windows Vista )出现之后, ntldr 就退休了,新的引导程序叫 bootmgr ,也就是 Boot Manager ,这也是一个存在于硬盘第一个主分区的小文件,比 ntldr 稍大一些,但是也只有 300KB 多一点,新的 Windows 系统用它来引导启动。如果你的电脑的操作系统是 Windows Vista 或是 Windows 7 的话,那么在 C 分区的根目录里就有这样的一个文件。

无论是 ntldr 还是 bootmgr ,都是可以管理多系统启动的,就是说它可以形成一个多系统选单,在开机的时候显示一下,让你选择进入哪个系统,问题也就这样来了。 ntldr 时代要管理多系统选单是很容易的,因为在与 ntldr 这个文件同目录里,还有一个叫 boot.ini 的文本文件,用记事本打开它可以看到类似这样的文字:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(6)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(6)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetec

这样编辑起来真是太容易了,只要把这个文件的只读属性去掉,然后就可以随意地添加选项并保存了。

而 bootmgr 出现后,编辑多系统选单就没有这么简明了。在 Windows Vista和Windows 7 里内置了一个叫 bcdedit 的命令行工具,可以用来导出、编辑、保存 bootmgr 的设置,具体用法可以在 cmd 里敲入 bcdedit 来查看,这里不再详细叙述。此外还有一些带 GUI 的编辑器,下文会提到。

至于 Ubuntu 10.04 这个发行版,则是用一个叫 grub2 的工具来引导的,这是一个安装在 MBR 里的微型操作系统,功能强大,但是却不是那么容易使用,这里也不再详细介绍。

清楚了这三个系统的引导机制,问题也就来了:安装顺序。关于安装顺序的几点事实:

  1. 先装 Windows XP 再装 Windows Vista/7 ,那么后者会自动检测前者的存在,把它加入到 bootmgr 的多系统选单中,双系统或三系统都可以正常启动。
  2. 先装 Windows XP/Vista/7 ,再装 Ubuntu ,那么后者也会自动检测前者的存在,把它们都加入到 grub2 的多系统选单中,双系统或三系统或四系统都能正常启动。
  3. 先装 Windows Vista/7 ,再装 Windows XP ,那么后者会用自己的 ntldr 把前面的设置全部覆盖掉,只有 Windows XP 能启动,其它的系统都存在于硬盘里,但是无法启动。这也很好理解,因为 XP 是 2001 年出生的,当时还没有 bootmgr 这种东西。
  4. 硬盘里已经存在有 Ubuntu 再装 Windows XP/Vista/7 ,结果我不记得了,貌似比较惨烈,因为 grub2 似乎还存在,但是已经无法正常工作,似乎一个也启动不了,或者还有一种结果是只有 Vista/7 能启动,其它的都看不见了。

需要说明的是,以上列出的情况下,都是把不同的系统装在不同的分区里的。

本来我的电脑里是 Windows 7 和 Ubuntu 双系统,用 grub2 引导的这一个系统,使用 bootmgr 引导,前段时间因为一些特殊原因,我需要在电脑里装一个 Windows XP ,于是有了这篇文章。

二、尝试用 grub2 引导

我本来是想用 grub2 引导三个系统的,但是后来发现我实在是搞不定 grub2 ,安装了 XP 之后 grub2 就陷入不正常的状态,可能是相关的设置信息丢失了,结果开机后一个系统也看不见,只有 grub rescue 的命令行界面在一闪一闪。没办法,我用 Ubuntu Live CD 启动,然后尝试用 root 权限修改 /boot/grub/grub2.cfg 文件,改了半天,重启动, grub rescue 还是在那里一闪一闪,实在是没辙,算了,放弃 grub2 吧,改用 bootmgr 了。

于是要请走 grub2 ,我用量产过的 U 盘启动到 PE 下,用磁盘分区表工具把 MB R重写了一遍,这样之后,存在于 MBR 里的 grub2 就算被清除了。

二、在已存在 Windows 7 情况下安装 Windows XP 的步骤

正如上文所说,如果先装了高等级的 Windows 系统,再安装低等级的 Windows 系统,则后者会把前的引导设置破坏。比如我的电脑里已经有了 Windows 7 ,这时候我要装 Windows XP 了,那么装完后就只有 Windows XP 能启动了。如何修复双系统启动菜单呢?按着下面的步骤走:

安装 Windows XP

  1. 分区安装XP。我的Windows 7是安装在硬盘的第一个主分区的,打算把XP安装在后面的一个逻辑分区里。分好区之后,格式化,就可以安装了。我用的是普通的安装版XP而非GhostXP。
  2. 安装完XP之后,的确只有XP能启动,没有多系统选单出现。这时候接管引导任务的是ntldr而不是bootmgr了。

修复bootmgr引导

  1. 进入Windows XP,从Windows 7的安装光盘里提取X:\boot\bootsect.exe(其中X代表光盘盘符)个文件,把它放到一个便于操作的目录里,比如D分区根目录。
  2. 打开cmd,切换到D分区,然后键入以下命令:bootsect /nt60 c:输入完毕后重启系统。这时候系统是用bootmgr引导的,不过只有Windows 7能够启动,没有多系统选单。

修复Windows 7和Windows XP双系统选单

  1. 现在已经在Windows 7里了,如果你之前用的是mbr导入证书式的破解版Windows 7,此时应该会提示你你使用的版本不是正版,重新导入一次就可以消去提示。
  2. 下载一个叫EasyBCD的软件,这就是上文提到的bcdedit工具的GUI版本,是第三方制造的。它的功能非常强大,可以轻易地修改BCD设置,添加各种各样的启动项,包括各类Windows版本,WinPE,Linux/BSD,甚至包括Virtual Disk(vhd文件)和Mac OS X。
  3. 打开它,按照下面的图示操作:easybcd-1
  4. 点击 Save 之后,列表就应该多出一个你刚才添加的选项了,也就是Windows XP。这时点击左侧的第一个按钮 View Settings ,看到的内容应该与下面类似:
    There are a total of 2 entries listed in the bootloader.
    
    Default: Windows 7
    Timeout: 3 seconds.
    Boot Drive: C:\
    
    Entry #1
    Name: Windows 7
    BCD ID: {current}
    Drive: C:\
    Bootloader Path: \Windows\system32\winload.exe
    
    Entry #2
    Name: Windows XP
    BCD ID: {a2744f94-d151-11de-9a84-a4dce0d08af0}
    Device: boot
    Bootloader Path: \NTLDR
  5. 这时点击左侧的 Change Settings 按钮,可以看到如下画面:easybcd-2
  6. 在②处可以修改默认的启动系统,在③处可以修改系统选单停留的时间。修改完后按 Save Settings 按钮保存。
  7. 此时重启动系统已经是双系统选单了。

转载请注明本文出处。谢谢合作。

~~~~
wzyboy
Twitter: @wzyboy
Link: http://wzyboy.im/

Leave a comment

37 Comments.

  1. 我的系统光盘坏掉了,安装系统到99.9%出错,老系统已经丢了,杯具

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    • @辐射鱼, 啥光盘呀?重新下载一个,然后自己刻张就得了……或者等开学我给你寄那个定制的U盘……至于为何要开学后么……我现在没法出门……

      Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy, xp sp3的,光盘不知被谁碰出一个缝,刚重装的时候没注意,最后就出现那个output error file to the following location: A:\ghosterr.txt 了,应该是光盘坏了,以前都是好好的。为嘛你现在没法出门啊,有媳妇?!

        Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
        • @辐射鱼, ……

          同同情……

          当然不是!总之就是没法出门…… :?:

          Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
          Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy,同情下出不了门的小伙子。 :twisted:

        Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
        Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
  2. 杯具,下了一会儿居然下错了,我得下NTFS版的

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    • @辐射鱼, 汗……不仅要NTFS,还要小心假冒。深度和雨林木风解散之后,假冒它们的人越来越多了,好多假冒系统里都是木马、后门……

      Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy, 我在ghostxp3下,不会有问题吧,现在我系统也进不了,又没启动盘,纠结

        Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
        • @辐射鱼, 我去搜索了一下你说的网站,然后找到了,先是感叹它的强大……然后打开主页……我笑了……

          主页上有个“深度技术GHOSTXP_SP3快速装机专业版V22.0(2010年4月)”……

          呃,深度的这个版本最高的版本号是V9.0……至于这个V22.0是哪里来的……呃……再看看里面装的软件,都是些什么360之类的……

          小心啊……

          Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
          Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
  3. 我搞的是那个ylmf纯净版,不知是不是真的

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    • @辐射鱼, 嗯,我算是雨林木风的粉丝了,所以雨林木风的东西我还是比较了解的。

      雨林木风工作室是2008年12月31日解散的,那天我在学校,看见他们的解散声明的,然后它们放出了最后的三个系统镜像,其中纯净版的版本是Y6.0,之后他们再也没有出过任何Windows镜像。当天我就在学校的电脑上把那三个镜像都下载下来了,现在还在硬盘里呢,我刚刚算了下,那个纯净版的校验和如下:

      文件: D:\Downloads\iso\YlmF\YlmF_GhostXP_SP3_Y6.0.iso
      大小: 727508992 字节
      修改时间: 2009?1?5?, 9:21:58
      MD5: AEC96811C5A582EE2389B706F0128168
      SHA1: 6FA8F3F976880C68ECF8D4A360765D98A3137EE3
      CRC32: 2D44F692

      你自己看喽~纯净版的最高版本是Y6.0,如果你下载的版本高于它,那就是假冒的。MD5什么的也是我刚刚算出来的,如果版本一样但是MD5不一样,那就是别有用心的人修改过的……

      Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy, 没有办法,手头没干净的系统盘,先下来当当小白鼠,但愿这个伪版比较稳定

        Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
        • @辐射鱼, 唔……你按照我给的MD5去找找,应该能找到那个纯净版的下载的……吧……

          Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
          Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy, 好不容易下下来的都不是原版了,被修改过的,但愿没有后门,装个杀毒软件扫一扫看看

        Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
        • @辐射鱼, 悲剧…一般情况下是会有的…我爸曾经不听我劝告, 装了一个Win7的修改版, 装完进系统一扫描, 木马…

          Opera Mini 4.2.14427 Opera Mini 4.2.14427 J2ME/MIDP Device J2ME/MIDP Device
          Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14427/19.892; U; en) Presto/2.5.25
  4. 好吧,谨慎起见我搜了个v6的,等下下来检查一下,又要更新补丁了,囧

    Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729)
    • @辐射鱼, 呵呵~反正我是没有更新补丁的习惯的……更新完了自己再Ghost备份一下,以后再坏掉就方便了

      Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy, 这台机子是4G的内存,哪里有64位的win7呀,整个迅雷地址给我,单位机子就不整Linux了

        Firefox 3.6.8 Firefox 3.6.8 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
  5. 已经快3年没有用过XP了
    不过如果再需要 我可以用VirtualBox运行XP(不过我没有XP的光盘 只有windows98 vista以及7的光盘)

    Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
    Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
  6. 工作方式不一样 GRUB是放在MBR的,Win是在第一扇区的,装好GRUB后绝对不能装Win,不然就要悲剧

    Firefox 3.6.8 Firefox 3.6.8 Windows 7 Windows 7
    Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
  7. grub2 尚不成熟啊。何不用低版本的grub 呢。

    Firefox 3.6.8 Firefox 3.6.8 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100724 Firefox/3.6.8
  8. 小允哥哥。。。我是用U盘装的
    把install.wim刻到U盘上就行了。。。

    ChromePlus 1.4.0.0 ChromePlus 1.4.0.0 Windows Vista Windows Vista
    Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.38 Safari/533.4 ChromePlus/1.4.0.0
    • @Aveline .L, 是装Windows 7吗? 微软官方有 Windows 7 USB DVD Download Tool的, 不需要自己做的

      Opera Mini 4.2.14427 Opera Mini 4.2.14427 J2ME/MIDP Device J2ME/MIDP Device
      Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14427/19.892; U; en) Presto/2.5.25
      • @wzyboy, 那个时候好像还没出来呢, 另外我的U盘没法刻整个文件,太大,刻Install.Wim,相当于一个小的PE吧

        ChromePlus 1.4.0.0 ChromePlus 1.4.0.0 Windows Vista Windows Vista
        Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.38 Safari/533.4 ChromePlus/1.4.0.0
  9. 哈哈…
    1.持有正版WinXP,Vista,Win7的飙过.
    2.这年头Ubuntu和Solairs混合使用.
    3.其实有钱的话可以搞多硬盘..一个硬盘一个系统,就不存在MBR的问题了~然后把GRUB放在ide0中协调启动~

    Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4
    • @雨碎江南, 我用过多硬盘。两个硬盘共用一条数据线,然后电源线用一个单刀双向开关控制……每次只有一个接通

      Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
      • @wzyboy,
        我是同时接多硬盘,每个硬盘上一个系统,最后在ide0里配置grub…
        自我感觉比较优雅~

        Google Chrome 6.0.472.25 Google Chrome 6.0.472.25 Windows XP Windows XP
        Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.25 Safari/534.3
      • @wzyboy, 单刀双向开关……

        Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 Windows 7 Windows 7
        Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4
        • @Tomy, 呃,不对吗?可能我名字记错了,反正是那种可以拨来拨去的……

          Google Chrome 6.0.480.0 Google Chrome 6.0.480.0 Windows 7 Windows 7
          Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.4 (KHTML, like Gecko) Chrome/6.0.480.0 Safari/534.4
        • @wzyboy, 没错,只是觉得好囧。你怎么在机箱里接上一个开关的?然后你怎么拨它?是把机箱敞开着么?

          Google Chrome 5.0.375.125 Google Chrome 5.0.375.125 Windows 7 Windows 7
          Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4
        • @Tomy, 不是, 是我爸搞的, 他动手能力很强.

          他在机箱的下面下方打了一个洞, 洞口大小和USB接口差不多, 然后单刀双掷开关放在那里…

          Opera Mini 4.2.14427 Opera Mini 4.2.14427 J2ME/MIDP Device J2ME/MIDP Device
          Opera/9.80 (J2ME/MIDP; Opera Mini/4.2.14427/19.892; U; en) Presto/2.5.25
  10. 实际上真不用这么麻烦。。
    远景的chz技术有做一个程序:http://bbs.pcbeta.com/viewthread.php?tid=644755
    用这个只要执行,就可以自动恢复整个启动设置。

    Firefox 4.0b3 Firefox 4.0b3 Windows 7 Windows 7
    Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3) Gecko/20100805 Firefox/4.0b3
    • @Jia Guoming,
      其实在Linux底下只需一个指令,就可以了,用DD备份你的MBR,然后再用DD还原就可以了,反正上个时代的和这个时代常见的启动器都不会对其他分区做修改(矛头都是指向MBR)。
      其实次世代架构的电脑最幸福(我是指使用EFI BIOS的架构,如苹果的x86架构、IA-64架构等),因为用GPT,所以没有启动的烦恼(因为没有启动器这回事了)

      Google Chrome 9.0.566.0 Google Chrome 9.0.566.0 Windows 7 Windows 7
      Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.566.0 Safari/534.11
  11. 最好是用精简版的Linux发行本配合我在上面回的回复里的方法。
    (我是来挖墙角的,我从第30个Post看到这里。)

    Google Chrome 9.0.566.0 Google Chrome 9.0.566.0 Windows 7 Windows 7
    Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.566.0 Safari/534.11

Leave a Reply


[ Ctrl + Enter ]

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

Trackbacks and Pingbacks: