Wrote Ideas Down, Together With Skills- an Alva Chien's Blog

© 2004 - 2016 Alva Chien, All Rights Reserved.

重学Windows(一):Boot Options

在Windows Vista出现之前,Windows的Boot Options是存储在Boot.ini文件(支持BIOS的机器)或者NVRAM (non-volative RAM,支持EFI的机器,通常是Itanium处理器的机器)中。

一个常见的Boot.ini文件格式如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)/WINNT="Microsoft Windows 2000 Professional" /fastdetect


Microsoft提供了一个命令行工具(BOOTCFG)来修改Boot.ini文件以及EFI NVRAM中的信息。该程序路径为:%Systemroot%/System32(Windows XP或Windows Server 2003)。当然,对Boot.ini文件,采用Notepad可能更快一点。要修改Boot.ini文件,可以先使用attrib -s -h -r Boot.ini来清楚其文件属性,修改完成再使用命令attrib +s +h +r Boot.ini加上属性。(s: System, h: Hidden, r: Readonly)。

另外一个有用的工具是MSCONFIG,其中也提供了一些常用的修改选项。

在Windows Vista及以后的操作系统中,Microsoft修改了Boot Options的选项,所有的信息被存储在一个Firmware-independent的系统,称为Boot Configuration Data (BCD),并提供了一个全新的命令行工具BCDEdit.exe,Boot.ini文件已经失去了原有的意义 。当然MSCONFIG命令同样可以使用。

Vista同样把Windows NT以来一直沿用的boot loader(ntldr.exe)替换为三个组件:Windows Boot Manager (Bootmgr.exe),Windows operating system loader (Winload.exe)以及Windows resume loader (Winresume.exe)。在这个新的体系中,Windows Boot Manager是一个通用的boot loader,而其他两个是分别针对正常启动和Resume启动进行了优化。Windows Boot Manager会显示boot menu以供用户选择,如果有多个操作系统的话,这个程序驻存在每个Windows 分区的根目录。

BCD的运行效果 
我机器上的Bcdedit.exe的运行结果

常用的几个BCDEDIT的参数(详细的命令,可以使用/?获取):

  • 增加Boot Entry:使用copy命令,如:bcdedit /copy {current} /d "DebugEntry";或者create命令,如:bcdedit /create /d "My Windows Vista" /application osloader
  • 更改Boot Entry顺序:使用displayorder命令,如:bcdedit /displayorder {49916baf-0e08-11db-9af4-000bdbd316a0} /addlast。其中/addlast为displayorder的可选项,共有三个可选项:/addlast, /addfirst和/remove。
  • 更改Boot Entry的Friendly Name:使用set命令,如:bcdedit /set {current} description "Windows Vista NullModem"。
  • 设置default启动项:使用default命令,如:bcdedit /default {cbd971bf-b7b8-4885-951a-fa03044f5d71}。如果想把默认启动项设置为Vista之前的版本(如Windows XP),可以用:bcdedit /default {ntldr}
  • 设置timeout:使用timeout命令。

详细的BCDEDIT的参数属性:MSDN中的解释

最后,在Vista运行BCDEDIT,记得首先设置一下Administrator的权限。

阅读更多
版权声明:© 2004 - 2016 Alva Chien, All Rights Reserved. https://blog.csdn.net/alvachien/article/details/2386243
个人分类: Windows Programming
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭