一 、问题描述
机器上先安装有windows server 2008系统(位于C盘),然后安装一个windows xp的第二系统(位于D盘)。
安装完成,重启电脑,电脑直接进入了windows xp系统,并未像想象中那样出现系统的“选择菜单”。
二 、问题解决
1. Bceedit编辑器命令
打开“百度”“Google”狂搜特搜。找到文章一篇如下:
(注:vista、windows server 2008、windows7的引导方式是相同的)
bcdedit是vista和windows7系统自带的命令行工具,在system32文件夹下,
主要用于多系统的启动数据的配置和自定义winpe的启动配置数据
我们先看一个安装了双系统的启动配置数据菜单
这是xp与vista双系统共存于C盘,我用的是xp,拷贝x86的bcdedit.exe到system32文件加下执行的显示(vista是x64的)
OKey,使用bcdedit实现配置多系统引导,先说下整个过程先,
1 创建{bootmgr}主入口,设置这个入口的device等值
2 创建xp{ntldr}或vista&windows7{GUID}入口,设置device,path等值
3 用/displayorder 将建好的每个入口(菜单项)一个一个加入到引导菜单中
4 用/timeout 设置等待时间
5 用/default 设置缺省菜单(也就是设置默认的启动系统)
首先winkey+R,输入cmd,然后回车打开命令提示符
使用bcdedit /store不针对本机操作
在本机硬盘例如D盘创建bcdcfg文件夹
bcdedit /createstore d:\bcdcfg\bcd 执行后将在bcdcfg文件夹下创建一个新的bcd文件
提示成功完成;
接下来我们添加bootmgr主入口:
bcdedit /store d:\bcdcfg\bcd -create {bootmgr} /d "boot manager"
提示项{bootmgr}成功创建;
设置{bootmgr}的device的:
bcdedit /store d:\bcdcfg\bcd -set {bootmgr} device partition=c:
提示操作成功完成;
添加xp的入口:
bcdedit /store d:\bcdcfg\bcd /create {ntldr} /d "windows xp" --双引号中的字符输入你自己喜欢的
提示项{ntldr}成功创建;
设置{ntldr}的device的值(这里实际是xp所在分区,假设在C盘):
bcdedit /store d:\bcdcfg\bcd -set {ntldr} device partition=c:
提示操作成功完成;
设置{ntldr}的path的值:
bcdedit /store d:\bcdcfg\bcd -set {ntldr} path \ntldr
提示操作成功完成;
下面新建添加vista的入口:
bcdedit /store d:\bcdcfg\bcd -create /d "windows vista" -application osloader
运行后将返回GUID值,提示项{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}成功创建;
{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}是全局唯一识别ID,在空间上和时间上具有唯一性。
输入GUID是一定要认真,错一个字符都将导致启动加载失败,可以先把返回的GUID值认真的输在记事本中,
使用-set命令时执行复制就OK
设置{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的device的值(这里实际是xp所在分区,假设在D盘):
bcdedit /store d:\bcdcfg\bcd -set {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=d:
提示操作成功完成;
设置{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的path的值:
bcdedit /store d:\bcdcfg\bcd -set {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \windows\system32\winload.exe
提示操作成功完成;
设置{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的windows device为d盘:
bcdedit /store d:\bcdcfg\bcd -set {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} osdevice partition=d:
设置{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的windows root为\windows:
bcdedit /store d:\bcdcfg\bcd -set {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} systemroot \windows
到此c盘xp,d盘vista的启动入口都添加完成了,
接下来要干的是把xp的入口{ntldr}和vista的{xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}在启动菜单中通过bootmgr显示出来:
bcdedit /store d:\bcdcfg\bcd -displayorder {ntldr} /addlast
bcdedit /store d:\bcdcfg\bcd -enum
就能发现windows启动管理器和windows旧os加载器了
bcdedit /store d:\bcdcfg\bcd -displayorder {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast
再次运行bcdedit /store d:\bcdcfg\bcd -enum
是不是有什么不同呢,我们又看到windows启动加载器,这个是vista的
bcdedit /store d:\bcdcfg\bcd -timeout 5(将超时时间设置为5秒)
运行bcdedit /store d:\bcdcfg\bcd -enum ,bootmgr下显示timeout为5秒
bcdedit /store d:\bcdcfg\bcd -default {ntldr}(将xp设置为默认启动的操作系统,与5秒后自动启动xp)
到此配置完成。
带 /store 的都是针对自己新建的bcd文件的操作,如果想直接对系统的bcd文件操作就去掉
/store d:\bcdcfg\bcd
e.g. bcdedit /default {ntldr},就是将系统设置默认从xp启动
bcdedit /set {ntldr} description "........................."双引号中输入自己想要的
可以将xp的启动菜单显示相应的字符或汉字,修改vista的只要将{ntldr}替换为{GUID}
bcdedit /set {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} description "Microsoft Wwindows vista x64"
则开机启动项vista的显示为Microsoft Wwindows vista x64
设置关于xp的就告诉bcdedit {ntldr},更改vista的设置就告诉bcdedit {GUID}
安装双系统三系统还是先安装xp要省事。
刚接触命令行不久,最重要的是学会 /?
e.g. bcdedit /? create,会显示bcdedit /create命令的详细用法
一番学习外加动手,对其命令有所熟悉,
但还是无法把“引导机制”理解透彻,也无法“依样画葫芦”而解决问题。
2. bootsect /nt60 SYS解决无系统选择菜单问题
然后再次狂搜特搜。
找到文章:http://blog.csdn.net/ntby/archive/2008/01/14/2043983.aspx
文中提供了“软件:VistaBootPRO 3.1”和“命令:bootsect /nt60 SYS”两种解决方案,
前者感觉太复杂,果断抛弃,选择后者。具体如下:
在XP系统用虚拟光驱加载windows server 2008.iso文件
1.打开“运行” (开始〉运行), 输入 cmd,打开命令行窗口。
2.输入cd X:/boot(x表示光驱盘符)执行,然后输入 bootsect /nt60 SYS执行
命令执行成功,提示如下:
Bootcode was successfully updated on all targeted volumes.
重启电脑,果然出现了系统选择菜单,进入windows server 2008,一切正常。
重启电脑,进入windows xp系统,提示找不到“\ntldr”。
3. 解决ntldr找不到问题
于是,打开C盘,发现其根目录下有文件“ntldr”。打开D盘,发现其根目录下无文件“ntldr”.
代开cmd窗口
cd \ 回车
cd windows 回车
cd system32 回车
bcdedit 回车,有如下显示:
……
Windows 旧 OS 加载器
-----------------------------------------------
标识符 {ntldr}
device partition=D:
path \ ntldr
description windows xp
……
bcdedit –set {ntldr} path c:\ntldr 修改path值为 c:\ntldr
重启,进入windows xp,还是无法引导成功
后一想device是D盘,path却设置C盘,或许问题在此。
bcdedit –set {ntldr} path \ntldr 把path值修改回去
把C盘下的“ntldr”拷贝到D盘根目录
注:在windows server 2008下无法删除或移动C盘下的“ntldr”文件,这个文件正在使用中,
windows server 2008和windows xp都需要ntldr文件。
网上说windows server 2008 不需要boot.ini文件,
经实验发现,删除C盘下的boot.ini文件,则xp系统不能正确引导,说双系统情况下,这个文件是不能删的。
重启,选择windows xp系统,引导成功,顺利进入xp系统
到此,问题完美解决。
本文地址:http://www.cnblogs.com/nrain/archive/2011/06/19/2084712.html