欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

Windows XP 的 MSCONFIG.EXE 引起 BOOT.INI 中文字符丢失的 BUG

前几天新闻组中有位仁兄发现了中文版 Windows XP 内置的 MSCONFIG.EXE 系统配置实用程序一个奇怪的问题。这位老兄的 BOOT.INI 配置文件的内容为:

[boot loader]
timeout=3
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 /usepmtimer /NoExecute=OptOut
C:\BOOT\BOOTDISK.bin="由虚拟启动软盘启动"

在 Windows XP 中运行 MSCONFIG.EXE,切换至 BOOT.INI 选项卡,未做任何修改点击“确定”退出,再打开 BOOT.INI 发现已变为:

[boot loader]
timeout=3
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 /usepmtimer /NoExecute=OptOut
C:\BOOT\BOOTDISK.bin="由虚拟启动

BOOT.INI 丢失了若干中文字符。
 
笔者对此问题进行了多次测试,随便更换了其它一些中文字符,均发现有丢失字符的现象。而且,即使 BOOT.INI 设置了“只读”属性也不例外。

由于通过记事本手动编辑 BOOT.INI 不会遇到此问题,所以可以判定这是 MSCONFIG.EXE 的 BUG。

在微软官方发布解决方案之前,做为替代解决方法,我们可以通过如下方式避免遇到此问题:

1.在 BOOT.INI 中不使用中文字符。

经笔者观察,如果 BOOT.INI 不使用中文字符则不会遇到此问题,可以放心使用 MSCONFIG.EXE。

2.通过其它方式编辑 BOOT.INI。

如果觉得通过记事本手动编辑 BOOT.INI 容易出错误,我们可以使用其它软件代替 MSCONFIG.EXE 编辑 BOOT.INI:

(1).在控制面板中打开“系统”属性,切换至“高级”选项卡,点击“启动和故障恢复”。但这里的功能略显简单,只能选择默认操作系统选项及设置启动菜单等待时间,不能直接修改启动选项名称(只提供间接调用记事本打开 BOOT.INI 的“编辑”按钮)。

(2).使用 BOOTCFG 命令。BOOTCFG 是一个基于命令行的 BOOT.INI 编辑工具,它拥有两种启动方式,一是在 CMD 命令提示符中启动、二是在 Windows 故障恢复控制台中启动。需要注意的是两种版本的 BOOTCFG 可以使用的参数并不完全相同。CMD 中的 BOOTCFG 我们可以在 CMD 中执行 BOOTCFG /? 查看其参数说明;故障恢复控制台中的 BOOTCFG 我们可以参考微软知识库文章 KB291980:
http://support.microsoft.com/kb/291980/

(3).使用超级兔子、优化大师等第三方软件,编辑 BOOT.INI 都是这些优化软件的必备功能之一。

3.将 Windows Server 2003 的 MSCONFIG.EXE 复制到 Windows XP 使用。

经笔者观察,Windows Server 2003 自带的 MSCONFIG.EXE 并没有 Windows XP 的丢失中文字符的问题,这是一个 Windows XP 专有的 BUG。因此,我们可以将 Windows Server 2003 内置的 MSCONFIG.EXE 复制到 Windows XP 中使用。

需要注意的是,Windows XP SP3 及 Windows Server 2003 SP2 提供的最新版的 MSCONFIG.EXE 均提供了一个额外的“工具”选项卡,如附件的截图所示,里面可以调用很多常用的系统工具,旧版的 MSCONFIG.EXE 没有“工具”选项卡,因此我们复制 Windows Server 2003 的 MSCONFIG.EXE 时最好选择 Windows Server 2003 SP2 的版本。
已发表 2008年8月12日 13:30 作者 alx-zj
Attachment(s): MSCONFIG 新增的选项卡.JPG

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2008年8月19日 3:33 by Masaki

# re: Windows XP 的 MSCONFIG.EXE 引起 BOOT.INI 中文字符丢失的 BUG

- -

我只是把下面的

C:\BOOT\BOOTDISK.bin="由虚拟启动软盘启动"

复制到我的 boot.ini 最下一行

也就成这样:

[boot loader]

timeout=10

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" /noexecute=optin /fastdetect

然后,再用文中所述的步骤做……没有发现会缺少二个字节的字符的问题……

Windows XP SP3,简中- -+谢谢……

2008年8月19日 13:58 by alx-zj

# re: Windows XP 的 MSCONFIG.EXE 引起 BOOT.INI 中文字符丢失的 BUG

[boot loader]

timeout=10

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" /noexecute=optin /fastdetect

C:\BOOT\BOOTDISK.bin="由虚拟启动软盘启动"

这个内容经过测试是有问题的。

说说您的看法?

(必填) 
必填 
(必填)