【奇思妙想】——双XP系统的启动引导

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
anriqing
帖子: 189
注册时间: 2008-08-19 12:59
送出感谢: 0
接收感谢: 0
联系:

【奇思妙想】——双XP系统的启动引导

#1

帖子 anriqing » 2008-12-16 19:44

问题的由来是这样:我们公司用的系统是英文版XP,有的同事将本本带回家用时,不想用英文版XP,而想换用对我们来说更方便的中文简体版XP,这时候,公司的英文版XP不能删掉,另外还想安装中文简体版的XP,那么双XP的系统应该如何引导呢?同事找到我时,我一下子就对这个问题产生了兴趣。下面是我实现的方法,不知道大家还有什么其他的方法没?

假设第一个XP叫xp1,第二个XP叫xp2,现在xp1可以启动,xp2不可以启动。
1.开机,默认只能进入xp1,在xp2的根目录下,将ntldr改名为ntldr2
2.编写menu.lst如下:

代码: 全选

timeout 5
default 0

title xp1
find --set-root /ntldr
chainloader /ntldr

title xp2
find --set-root /ntldr2
chainloader /ntldr2
3.将menu.lst和GRUB4DOS中的grldr分别拷贝到xp1和xp2的根目录下;
4.重启,从可启动U盘进入DOS环境,进入GRUB4DOS目录下,然后输入以下命令:

代码: 全选

bootlace 0x81
重启即可自由选择xp1,xp2启动。

我觉得这个问题非常有意思,一定还有其他的解决办法,将ntldr改名为ntldr2总让我感觉到别扭。我这里抛砖引玉,期待更高明的办法。
Windows Vista Ultimate SP1 CHS + Ubuntu 8.04.1 desktop i386

CPU:Intel Core 2 Duo T7250 RAM:2048MB DDR2-667
VGA:NVidia Geforce 8400M GS 128MB HD:SumSung 160G 5400R
LAN:Broadcom NetLink WIFI:Intel 3945ABG
WebCam:2.0M
Kabie
帖子: 26
注册时间: 2008-12-16 14:31
送出感谢: 0
接收感谢: 0

Re: 【奇思妙想】——双XP系统的启动引导

#2

帖子 Kabie » 2008-12-16 21:34

:em23
。。。不能直接改C盘的boot.ini吗。。。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: 【奇思妙想】——双XP系统的启动引导

#3

帖子 billbear » 2008-12-17 1:02

我会这样做:
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 不但独立,而且互不可见。要想看见也可以做到,用磁盘管理给他分配一个盘符就行了。作者说将会加入是否隐藏的选择在不久的将来。
头像
anriqing
帖子: 189
注册时间: 2008-08-19 12:59
送出感谢: 0
接收感谢: 0
联系:

Re: 【奇思妙想】——双XP系统的启动引导

#4

帖子 anriqing » 2008-12-17 7:53

Kabie 写了::em23
。。。不能直接改C盘的boot.ini吗。。。
正解。可以在xp1的boot.ini中直接添加对xp2的引导。比如xp2在第二个分区可以这样添加:

代码: 全选

multi(0)disk(0)rdisk(0)partitions(2)\WINDOWS="xp2"
这个应该是最简洁,最Windows的方法。
Windows Vista Ultimate SP1 CHS + Ubuntu 8.04.1 desktop i386

CPU:Intel Core 2 Duo T7250 RAM:2048MB DDR2-667
VGA:NVidia Geforce 8400M GS 128MB HD:SumSung 160G 5400R
LAN:Broadcom NetLink WIFI:Intel 3945ABG
WebCam:2.0M
头像
anriqing
帖子: 189
注册时间: 2008-08-19 12:59
送出感谢: 0
接收感谢: 0
联系:

Re: 【奇思妙想】——双XP系统的启动引导

#5

帖子 anriqing » 2008-12-17 8:01

注意看我的标题哦,奇思妙想。还有什么奇怪的引导方法的,大家尽管说出来。
Windows Vista Ultimate SP1 CHS + Ubuntu 8.04.1 desktop i386

CPU:Intel Core 2 Duo T7250 RAM:2048MB DDR2-667
VGA:NVidia Geforce 8400M GS 128MB HD:SumSung 160G 5400R
LAN:Broadcom NetLink WIFI:Intel 3945ABG
WebCam:2.0M
头像
qlhn
帖子: 736
注册时间: 2006-08-25 10:37
送出感谢: 0
接收感谢: 0
联系:

Re: 【奇思妙想】——双XP系统的启动引导

#6

帖子 qlhn » 2008-12-17 11:07

感觉4楼的最简单。
头像
anriqing
帖子: 189
注册时间: 2008-08-19 12:59
送出感谢: 0
接收感谢: 0
联系:

Re: 【奇思妙想】——双XP系统的启动引导

#7

帖子 anriqing » 2008-12-17 11:48

好玩嘛~~~看看还有怎样的引导过程? :em01 :em01
Windows Vista Ultimate SP1 CHS + Ubuntu 8.04.1 desktop i386

CPU:Intel Core 2 Duo T7250 RAM:2048MB DDR2-667
VGA:NVidia Geforce 8400M GS 128MB HD:SumSung 160G 5400R
LAN:Broadcom NetLink WIFI:Intel 3945ABG
WebCam:2.0M
头像
32idea
帖子: 1249
注册时间: 2006-12-15 9:32
系统: linux
送出感谢: 2 次
接收感谢: 14 次

Re: 【奇思妙想】——双XP系统的启动引导

#8

帖子 32idea » 2008-12-17 12:21

记得如果不格盘的话,你装两回就会有两个xp可选,只是调用的系统文件夹不同,一个是windows,一个是windows.0,
回复

回到 “启动和引导”