我会这样做:
sda1 安装了 xp1;
做另一个主分区 sda2;
激活 sda2;
用 xp 安装盘启动安装, xp 把激活的主分区称为 "c盘",你看到 sda2 被安装程序叫做 "c盘"。把 xp2 安装到 "c盘",让安装程序格式化 "c盘" (sda2)以确保可以启动(如果 sda2 是 linux 或其他东东创建的,不格式化可能不能启动)
安装的结果, sda1 和 sda2 各有一套完整的 xp,各自有 ntldr,boot.ini 等等,互不接管,互相不知道对方的存在,哪个主分区被激活就启动哪个 xp。 xp1 把 sda1 叫做 "c盘",xp2 把 sda2 叫做 "c盘"。
现在 sda2 是激活的,开机直接会启动到 xp2。激活 sda1,下次启动的就是 xp1。
下一步是做到启动时有菜单。可以用 grub4dos。我做过在预装 vista 的机器另做主分区安装 xp,然后在 xp 的 boot.ini 加 c:\grldr=vista;
menu.lst:
timeout 0
title vista
root (hd0,0)
chainloader +1
没有 makeactive,否则下次就是 vista 直接启动了。两个 xp 的情形没有试过,可能需要 makeactive 比较好,因为 xp 好像倾向于把激活的分区叫做 c 的。
其实杀鸡焉用牛刀, grub4dos 在这里用并不舒服。有很多居住在 mbr 里的小代码就可以舒服地完成。他们的工作基本是,你选择了哪一个,就激活哪一个,然后引导激活分区。激活一下通常是保险的,虽然 sda1 里的 xp 通常不需要激活就可以用 chainloader+1 引导(如果激活的分区是 linux),但是我不清楚在 sda1 为激活状态时 chainloader sda2 里的 xp 会不会有古怪发生。
以前我用过 boot-us 来完成这个工作,有一个问题,在有隐藏的恢复分区的 vista 机器上装另一个主分区 xp以后,加上扩展分区,4个主分区被用尽,如果再装 linux,就只能在逻辑分区,这时候用 boot-us 来直接引导 linux 就做不到了,只能用 grub4dos 在第二层菜单,要选择两次。这就是为什么我看到
这个东西 要眼前一亮的原因。 现在改用这个了,他有一个特性是我不需要的,就是会隐藏非活动的 ntfs/fat 主分区,这样你的这两个 xp 不但独立,而且互不可见。要想看见也可以做到,用磁盘管理给他分配一个盘符就行了。作者说将会加入是否隐藏的选择在不久的将来。