首页 > 系统维护 > 正文

使用bcdedit引导第二块硬盘上的系统
2014-06-24 22:06:14   来源:   评论:0 点击:

我的台式机情况描述: 家中的台式机挂载4块硬盘,从Disk0~Disk3。Disk0是120G的SSD,其余的都是HDD,容量500G、1T、2T不等,之前一直用的单系统Win8.1,安装在SSD,后来想学习QT的开发,发现QT的开发环...
我的台式机情况描述:
        
       家中的台式机挂载4块硬盘,从Disk0~Disk3。Disk0是120G的SSD,其余的都是HDD,容量500G、1T、2T不等,之前一直用的单系统Win8.1,安装在SSD,后来想学习QT的开发,发现QT的开发环境不兼容Win8.1,而且开发的时候需要连接我的N9进行一些调试,在虚拟机里面的话不太方便,于是便没有在虚拟机中搭建开发环境。反正其他硬盘容量够大,于是便在Disk1中挪出50G的主分区,安装Win7,在Win7中搭建好QT的开发环境。系统启动时,要进入Win7的话,调出BIOS的启动顺序菜单,选择从Disk1中启动即可。这种启动方式是多硬盘环境,且不同的系统安装在不同的硬盘这种情况最常用最方便的启动方法。 在Win8中,那个Win7的系统分区是隐藏的,没有分配驱动器号,同样在Win7中,Win8的系统分区也是没有分配驱动器号,这样,两个系统相互独立,互不干扰。这样的环境创建好之后系统一直很正常。
        几个月前的一天,刚开机的时候,想按键盘F11调出BIOS启动菜单,发现不起作用,试了几次都不行,但是进了系统之后,键盘按键、鼠标都是正常的。我的是无线蓝牙键盘,支持进入BIOS,能被BIOS识别加载,之前都好好的,怀疑是不是USB口接触不好了,于是换遍所有的USB口,还是不行。进入系统之后,一切又是正常的。看来BIOS自检的时候没有加载到USB口上的设备。找出家里的老的PS/2接口键盘接上主机,启动时,BIOS自检阶段键盘还是不起作用,一直要到进入系统时,键盘才能用。这下麻烦大了,应该是BIOS损坏或者出错,造成启动自检阶段无法加载外设。这种情况头一回碰见,我也不敢随意清除BIOS重新设置,因为清除之后,第一次需要进入BIOS设置好,否则要按F1键继续才能引导系统,万一,清除了,我的键盘还是无法检测到,那时候,就连F1都按不了,机子都无法继续引导启动,这种情况的话就彻底没办法。
        妥善的办法就是用多系统引导工具,在系统启动的时候,选择要启动的系统。 首先想到用Win8系统自己的boot manager引导多系统,以前设置过Win7的多系统引导,但是那个情况是同一块硬盘上两个主分区安装两个系统,重新查阅了一下bcdedit命令行,发现没有适合两块硬盘上的系统引导设置。在网上google一番,也都是那种情况,都是提到同一块硬盘上不同分区上的系统引导bcdedit编辑,没有两个硬盘上系统引导的bcdedit设置方法,而且不确定能否用boot manager引导另外一块硬盘上的系统。于是换个思路,用Grub4DOS来引导,这个肯定可以引导多硬盘上的多系统,由于USB口无法加载,所以我的工具都无法使用,就用Win8的boot manager引导Grub4DOS,再由Grub4DOS来引导系统。经过一番设置,Grub4DOS加载运行了,但还是老问题,在Grub4DOS加载的这个阶段,键盘还是无法使用,无法选择菜单启动系统,还是默认进入Win8。这个办法看来不行了。
        还是来深入研究Win8的boot manager,发现Win8的boot manager相对于Win7的来说,有了变化,首先是变成了图形界面,支持鼠标操作,其次boot manager出现的时间不是在BIOS自检完之后立马加载,而是经过Win8的系统检测之后,在系统登录界面之前出现。当发现支持鼠标操作的时候,我猜测应该是那个阶段是由Win8的系统加载键盘和鼠标了,那肯定就能使用我的键盘来选择引导哪个系统。但是google了很长时间,都没有找到在bcdedit中如何设置以便引导第二块硬盘上的系统,反倒是发现Win8的boot manager有个legacy模式,这个模式就是Win7的引导模式:BIOS自检完之后立马出现引导菜单。如下设置:bcdedit /set {current} bootmenupolicy Legacy,要恢复Win8的GUI界面引导,如下:bcdedit /set {current} bootmenupolicy Standard。
        实在没有找到引导第二块硬盘上系统的bcdedit命令,发现一个小工具:VisualBCD,也就是图形化的编辑bcdedit命令的工具,安装好之后,研究了一番。没有直接加载第二块硬盘上那个隐藏的Win7系统的方法,看着VisualBCD的操作方式,忽然想到,将Win7的系统分区先分配一个驱动器号,我将B:分配给了那个分区,在VisualBCD中可以创建引导B:的菜单项。启动系统一下,成功了,在Win8的boot manager界面出现Win7的引导菜单,同时那个时候,鼠标键盘可以使用,选择Win7,系统重新启动,进入了Win7。我又回到Win8,将Win7那个分区B卸载掉,隐藏,重新引导,同样还是能够进入Win7。至此,终于可以用Win8的boot manager引导第二块硬盘上的Win7了,这个结论至少网上我还没有发现确认过。之后,我尝试将Win8的boot manager改成legacy模式,就是BIOS自检完,立马出现引导菜单,因为这种引导方式,选择Win7的话,就是引导进入Win7,选择Win8的话,就是引导进入Win8,而不是GUI模式下:选择Win7的话,系统还要重新启动。但是在legacy模式下,键盘鼠标没有加载,还是无法使用键盘,无法选择系统引导。只能切换回GUI模式。
        引导的问题总算解决了,但是我的主板,BIOS自检没有加载外设的原因,一直不清楚,凑活着用吧。
      
        过了一阵子:

        前几天,在笔记本上在已有Win8的基础上,同样在第二块硬盘安装Win7,发现系统自动将Win7的引导选项加入了启动菜单,于是对照笔记本的引导菜单,将台式机的引导菜单自己手动生成,终于成功,下面是具体步骤:
        首先将引导文件做一备份:bcdedit export d:\jzp.bak,同时再复制一个,这样对备份文件先进行操作,没有问题再倒入系统的引导中。
        
        1、创建Vista之后的系统入口,会生成一个唯一的ID号
        bcdedit /stroe d:\jzp.bak /create /d "Windows 7 x64" /application osloader
      
        2、这一步是关键,设置系统分区所在盘,这个至今在网上没有找到这方面的介绍,在此作为首发,哈哈:
        bcdedit /store d:\jzp.bak /set {id} device partition=\Device\HarddiskVolume2
        
HarddiskVolume2这个值需要根据你的机子里面硬盘的安装接口顺序来判断,如前面的图,是我的台式机的硬盘安装顺序,Disk0是SSD,也就是我的Win8系统所在的硬盘,Disk1是HDD,也就是我的Win7系统所在的硬盘,现在要将Win7加入引导菜单,由于是Disk1,所以就必须写成partition=\Device\HarddiskVolume2

        再看下图是我的笔记本的硬盘顺序:
        
         在笔记本中,Disk0是HDD,是Win7所在的系统,Disk1是SSD,是我Win8所在的硬盘,所以要在Win8下加入Win7的引导,就必须写成
partition=\Device\HarddiskVolume1
   
        3、设置osdevice所在分区,和上面必须一致:      

        bcdedit /store d:\jzp.bak /set {id} osdevice partition=\Device\HarddiskVolume2
         
        4、
设置path:
        bcdedit /store d:\jzp.bak /set {id} path \Windows\system32\winload.exe

        5、设置地区,我的是英语:
        bcdedit /store d:\jzp.bak /set {id} locale en-US

        6、设置inherit:
        bcdedit /store d:\jzp.bak /set {id} inherit {bootloadersettings}

        7、设置systemroot
        bcdedit /store d:\jzp.bak /set {id} systemroot \Windows

        8、设置resumeobject
        bcdedit /store d:\jzp.bak /set {id} resumobject {id}

        9、设置nx
        bcdedit /store d:\jzp.bak /set {id} nx OptIn

        10、将引导菜单加入最后:
        bcdedit /store d:\jzp.bak /displayorder {id} /addlast

        11、设置菜单选择的时间10秒:
        bcdedit /store d:\jzp.bak /timeout 10

        至此,所有需要设置的参数就都设置好了,仔细检查一下没有问题,倒入系统即可:
        bcdedit import d:\jzp.bak


        


        希望这篇的内容对大家有所帮助,另外,有前辈知道我台式机自检阶段检测不到外设的情况的问题,望不吝赐教啊

相关热词搜索:硬盘 乌鲁木齐苹果电脑装系统

上一篇:用友PDM与ERP对接时物料命名规则需要注意
下一篇:解放你的手指-由浅入深了解机械键盘走进键盘中的“贵族”

分享到: 收藏

新公网安备 65010302000460号