电脑老玩家,可能都不止一个硬盘了,操作系统一般都有不止一个了吧(比如:xp win7)。例如,我有三个硬盘,一个装bsd[学习用],一个是老硬盘装的是xp64(xp也类似)等操作系统,另一个是新硬盘,装了win7(等)操作系统。
硬盘分区地图如下:
640G的是西数蓝盘,1T是西数绿盘。
WB_win和win分别是各自盘上的win7, WB_xp64是 xp64.
以下是编辑引导菜单,使用bcdedit命令。
我的bios是默认640g硬盘为第一硬盘,他引导菜单为(以管理员权限使用命令[bcdedit /enum ]):
Windows 启动管理器
--------------------
标识符 {bootmgr}
device partition=G:
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
default {current}
resumeobject {82c11aef-5789-11df-bf01-9104e01dcd69}
displayorder {current}
{f77b64d1-ed39-11df-8283-0021859df098}
{ntldr}
{f77b64d2-ed39-11df-8283-0021859df098}
toolsdisplayorder {memdiag}
timeout 9
Windows 启动加载器
-------------------
标识符 {current}
device partition=C:
path /Windows/system32/winload.exe
description Windows 7 x64 Ultimate Blue_Disk [日常
locale zh-CN
recoverysequence {192b94f4-3a6d-11de-9f5f-c8fecb488cc9}
recoveryenabled Yes
osdevice partition=C:
systemroot /Windows
resumeobject {235a9c45-0cb9-11df-b46c-806e6f6e6963}
Windows 旧 OS 加载器
------------------------
标识符 {ntldr}
device partition=G:
path /ntldr
description Windows XP x64 Edition Blue_Disk
这个菜单是安装时win7自动建立的(先安装xp64,然后再安装win7,就会有的)
[好了,开始我们的自定义菜单了]
1)先备份引导菜单
a)mkdir BCD (建立一个目录,放置备份引导菜单)
b)bcdedit /export BCD/bcd_blue_disk.bak (备份引导菜单到BCD目录下,存为bcd_blue_disk.bak)
[还原命令: bcdedit /import BCD/bcd_blue_disk.bak]
2)复制当前win7配置(也可以新建一个)
bcdedit copy {current} /d “Windows 7 x64 Ultimate Green_Disk [紧急修复使用]”( {current}表示当前引导win7的ID,你也可以手动指定)
或者:
bcdedit copy {192b94fa-3a6d-11de-9f5f-c8fecb488cc9} /d “Windows 7 x64 Ultimate Green_Disk [紧急修复使用]” ( /d 表示起一个菜单名,双引号中内容就是我起的菜单,可以随便起)
得到一个新的id号
3)修改引导配置[关键步骤]
a)bcdedit /set {f77b64d1-ed39-11df-8283-0021859df098} device partition=/Device/HarddiskVolume3
(一般如果操作系统在同一个硬盘,可以这么写)
bcdedit /set {f77b64d1-ed39-11df-8283-0021859df098} device partition=i: (i: 表示你引导的操作系统所在盘符,我用i:举例)
( /Device/HarddiskVolume3 学过unix类操作系统看着这个熟吧,计算机学深了,发觉都差不多。看我的硬盘分区图,我的win7实际引导文件是不是在第三个硬盘的上第三个分区上。到现在我还没琢磨明白,微软的命名规则,实在不行,自己多猜几回吧)
b)bcdedit /set {f77b64d1-ed39-11df-8283-0021859df098} osdevice partition=/Device/HarddiskVolume3
4) 另一个硬盘下的win7设置(和前面类似)
用F11调出bios菜单,使用另一个win7启动,编辑他的引导菜单,操作步骤同上,只是把partition=/Device/HarddiskVolume3 改为 partition=/Device/HarddiskVolume10 (真的很不明白,微软的设备号命名规则)
5) 如果时VHD引导的话,可以直接用盘符号,我怀疑VHD引导是二次引导,先引导默认分区的引导内核,再引导VHD虚拟硬盘。
(以下是我的vhd,引导菜单)。
[别忘了加载VHD驱动,命令如下: bcdedit /set {f77b64d2-ed39-11df-8283-0021859df098} detecthal on ]
Windows 启动加载器
-------------------
标识符 {f77b64d2-ed39-11df-8283-0021859df098}
device vhd=[H:]/backup/windows7.vhd,locate=custom:12000002
path /Windows/system32/winload.exe
description Windows 7 x64 Ultimate Green_Disk VHD
locale zh-CN
recoverysequence {192b94f4-3a6d-11de-9f5f-c8fecb488cc9}
recoveryenabled Yes
osdevice vhd=[H:]/backup/windows7.vhd,locate=custom:22000002
systemroot /Windows
resumeobject {235a9c45-0cb9-11df-b46c-806e6f6e6963}
detecthal Yes
总结:
看看我的两个硬盘上的win7,各自的引导菜单。
640G 蓝盘:
.......省略
标识符 {f77b64d1-ed39-11df-8283-0021859df098}
device partition=/Device/HarddiskVolume3
path /Windows/system32/winload.exe
description Windows 7 x64 Ultimate Green_Disk [紧急修复使用]
locale zh-CN
recoverysequence {192b94f4-3a6d-11de-9f5f-c8fecb488cc9}
recoveryenabled Yes
osdevice partition=/Device/HarddiskVolume3
systemroot /Windows
resumeobject {235a9c45-0cb9-11df-b46c-806e6f6e6963
......省略
1T 绿盘的:
......省略
标识符 {4e00e83b-ecc7-11df-8549-0021859df098}
device partition=/Device/HarddiskVolume10
path /Windows/system32/winload.exe
description Windows 7 x64 Ultimate Blue_Disk [娱乐]
locale zh-CN
osdevice partition=/Device/HarddiskVolume10
systemroot /Windows
resumeobject {4c1ad84f-58b6-11df-bed1-806e6f6e6963}
......省略
后记:
注意:每个win7所在分区必须有win7特有的隐藏分区(比如200兆未分配分区),不然不能启动另一个硬盘上的win7。partition=/DeviceHarddiskVolume[x] 方法彻底失败了,partition=[盘符:]方法还没测试验证。
今天又试了一遍,发现win7真的很诡异,我把随便编了一个盘符,挂接上,之后重新bcdedit 一遍发现成功了,然后重启。得到如下结果:
Windows 启动加载器
-------------------
标识符 {f77b64d5-ed39-11df-8283-0021859df098}
device partition=/Device/HarddiskVolume8
path /Windows/system32/winload.exe
description Windows 7 x64 Ultimate Green_Disk [紧急修复]
locale zh-CN
recoverysequence {192b94f4-3a6d-11de-9f5f-c8fecb488cc9}
recoveryenabled Yes
osdevice partition=/Device/HarddiskVolume8
systemroot /Windows
resumeobject {235a9c45-0cb9-11df-b46c-806e6f6e6963}
呵呵,win7自动修改了卷标,可以启动了,把它抄下来,然后在另一个硬盘上的win7,以同理方法,做类似处理,好了,一切OK。
但是怎么也不明白,他的卷标策略。