转自:http://blog.sina.com.cn/s/blog_5cf917330100ayc4.html
原作者:fujianabc
大家知道,ntldr只能执行之前编辑好的的boot.ini菜单选项,而无法像grub的menu.lst一样在启动时手动编辑和调整菜单,很缺乏灵活性。
今天我在启动vista时,偶然按了一下F10,发现vista的bootmgr+winload.exe在此时可以手动编辑启动选项,故而查找了一些相
关资料,发现微软竟然在ntldr中包含了显示启动选项和编辑启动菜单这两个隐藏功能,下面我就来说明如何实现这两个功能。
在启动到操作系统选择菜单时,输入unsupporteddebug后,神奇的事出现了:D ,每个boot.ini启动项的标题、路径、启动选项居然能显示出来了:
选中一个操作系统选项,按回车,在boot.ini满足一定的条件时,还能出现启动选项手动编辑菜单:
要出现启动选项编辑菜单,要求boot.ini文件中[operating systems]下面的操作系统项中的任意一行,满足下面条件中任意一条:1、选项中包含/redirect参数,并且标题的引号中的字符长度超过57字节(用不了这么长,可以用彩色标题啊:lol: ,
)
2、选项中包含/debug或/baudrate,并且路径开头不是C:\
3、选项中包含 /win95dos或/win95参数
4、操作系统路径是C:\ (没有任何文件名)
有兴趣的,可以更进一步参考:
另外,关于vista bootmgr的F10编辑菜单的使用可以参考:
C盘根目录下的boot.ini(隐藏文件),请设置显示所有文件并显示系统受保护文件,去掉BOOT.INI的只读属性.使用ansi控制码来控制启动菜单显示出彩色,例如下面的boot.ini:
timeout=30
default=multi(0)disk(0)rdisk(0)partition(0)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(0)\WINDOWS=”[1;32mMicrosoft [1;34mWindows [1;33mXP Professional” /NOEXECUTE=OPTIN /FASTDETECT
c:\Avldrxp.bin=”[1;36mAvlgo - PELDR” /noguiboot
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS=”[1;31mMicrosoft [1;33mWindmows [1;35mSermver 2003″ /noexecute=optout /fastdetect
c:\1.bin=”[1;37mMS-DOS”
以上红色字体是BOOT的原始内容,兰色字体部分为新增的转义部分.修改好BOOT内容,请再仔细检查内容有没有出错,确定没有出错再把BOOT文件改回为只读属性.
关于ansi控制码:
箭头+“[”声明了转义序列的开始
后面的 “1 ”定义了默认的字体宽度。对于文本属性来说,这些值是有意义的:0、1、22、4、24、5、25、7、27,分别表示:默认值、粗体、非粗体、下划线、非下划线、闪烁、非闪烁、 反显、非反显。
30m — 37m 设置前景色
40m — 47m 设置背景色
可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。
他们对应的颜色代码是:
30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”,
40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)。
比如可以 [1;32m;43m 粗体 绿色前景 黄色背景
============================================
注意:boot.ini 是系统重要文件,谨慎修改,只修改 如 “Microsoft Windows XP Professional” 双引号里面的内容,外面的不要修改!