Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376043
  • 博文数量: 59
  • 博客积分: 2490
  • 博客等级: 大尉
  • 技术积分: 795
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-16 16:25
文章分类

全部博文(59)

文章存档

2011年(1)

2010年(9)

2009年(21)

2008年(28)

我的朋友

分类: WINDOWS

2008-04-28 13:13:40

前天笔者在博客中谈论了两个启动管理器均为 Boot Manager 的 Windows 配置为多重操作系统共存时的安装顺序问题《Boot Manager 时代的多重引导 -Windows Vista RTM 与 Windows Vista SP1/Server 2008 共存的安装顺序》。今天笔者再谈论一下配置多重操作系统共存时容易遇到的另一个常见问题:多重启动菜单的显示语言。

这 个问题主要是在配置两个语言版本不同的 Windows 共存时容易出现,多重启动菜单的显示语言将以最后安装的那个系统的语言为准。例如假设我们配置一个中文系统与一个英文系统的共存,如果按照“先英后中”的 顺序安装,多重启动菜单就会显示为中文;如果按照“先中后英”的顺序安装,多重启动菜单就会显示为英文。

那么,如果因为安装顺序问题,多 重启动菜单的显示语言不是我们希望显示的语种,我们应该如何修改多重启动菜单的显示语言呢?下面笔者将按照 NTLDR(对应 Windows 2000/XP/Server 2003)与 Boot Manager(对应 Windows Vista RTM/Vista SP1/Server 2008)两种启动管理器的情况分别说明。

NTLDR:

在 NTLDR 时代,NTLDR 启动管理器由硬盘活动分区根目录中的三个文件组成:NTLDR、NTDETECT.COM、BOOTFONT.BIN。其中,NTLDR、 NTDETECT.COM 做为 NTLDR 启动管理器的主体,每种语言版本的 Windows 都拥有各自语言版本的 NTLDR、NTDETECT.COM 文件。例如,中文版 Windows 有中文版的 NTLDR、NTDETECT.COM,英文版的 Windows 有英文版的 NTLDR、NTDETECT.COM。在配置两个 NTLDR 系统的多系统共存时,正是由于后安装的系统用自己的 NTLDR、NTDETECT.COM 替换了原有的 NTLDR、NTDETECT.COM,所以会引起 NTLDR 多重启动菜单的显示语言发生变化。

BOOTFONT.BIN 则是为双字节字符集(DBCS)版本的语言提供显示支持而设的字库文件。只有在这个字库文件的支持下,采用双字节字符语言文字的 NTLDR 菜单才可以正确显示字符;而非双字节字符语言的 NTLDR 菜单则无需 BOOTFONT.BIN 的支持。例如,采用汉字的中文即属于双字节字符语言,中文版 Windows 需要中文版的 NTLDR、NTDETECT.COM、BOOTFONT.BIN 三个文件才可以正常工作;英文则不属于双字节字符语言,因此英文版 Windows 只需要英文版的 NTLDR、NTDETECT.COM 两个文件即可。

现在,假如我们按照“先中后英”的顺序配置了两个 NTLDR 系统的共存,现在希望将多重启动菜单由英文恢复为中文,应该如何操作呢?首先,我们从中文版 Windows 安装程序中提取出中文版的 NTLDR、NTDETECT.COM 文件,将其复制到硬盘活动分区根目录,替换英文版同名文件。其次,检查一下硬盘活动分区根目录是否存在 BOOTFONT.BIN,如果存在,再检查它是不是中文的版本。假如 BOOTFONT.BIN 不存在或有所损坏,再提取出中文版的 BOOTFONT.BIN 文件复制到活动分区根目录即可。反过来说,如果我们希望将多重启动菜单由中文修改为英文,那么后一个步骤就可以省略了,只需复制英文版的 NTLDR、NTDETECT.COM 即可。

Boot Manager:

Boot Manager 的组成结构与 NTLDR 有较大不同。除了硬盘活动分区根目录有一个 BOOTMGR 隐含文件外,在活动分区的 BOOT 文件夹中存在着以所有语言类型命名的若干个子文件夹(例如 zh-cn 等),每个子文件夹都拥有一个不同语言版本的 BOOTMGR.EXE.MUI 文件。

Boot Manager 启动菜单的显示语言保存在 BCD 引导配置数据库里,当 Windows 启动时,Boot Manager 首先从 BCD 中读取 Boot Manager 菜单的语言版本信息,然后再调用 BOOTMGR 与相应语言的 BOOTMGR.EXE.MUI 组成相应语言的启动菜单。例如,假设 BCD 记录着 Boot Manager 的显示语言应该是简体中文,那么 Windows 就会调用 C:\BOOTMGR 与 C:\BOOT\zh-cn\BOOTMGR.EXE.MUI 文件,生成简体中文的 Boot Manager 菜单。其它语言的情况也是如此。

所以说,Boot Manager 不存在不同语言版本的文件互相替换的问题。如果我们需要修改 Boot Manager 菜单的显示语言,无需像 NTLDR 那样手动替换文件,只要修改一下 BCD 引导配置数据库中有关 Boot Manager 显示语言的信息即可。具体做法为:
 
以管理员身份打开 CMD 命令提示符,输入并执行如下命令:
 
BCDEDIT -SET {BOOTMGR} LOCALE ZH-CN (此命令将把 Boot Manager 多重启动菜单,也就是选择需要启动哪一个操作系统的选择菜单的显示语言修改为简体中文)
 
BCDEDIT -SET {CURRENT} LOCALE ZH-CN (此命令将把当前运行的 Windows Vista/Server 2008 操作系统的 F8 高级启动菜单的显示语言修改为简体中文,Boot Manager 允许我们把多重启动菜单及 F8 启动菜单分别设置为不同的语言,这是 NTLDR 无法实现的一个新功能)
 
BCDEDIT -SET {MEMDIAG} LOCALE ZH-CN (此命令将把 Windows 内存诊断工具的显示语言修改为简体中文)
 
最后,再以管理员身份输入并执行 BCDEDIT /ENUM ALL 命令,查看一下上述项目的 LOCALE 值是否已经修改成功即可。
2008年4月8日 13:21 by alx-zj

# re: Boot Manager 时代的多重引导(续) -多重启动菜单的显示语言

谢谢两位指正。

再总结一下:

BCDEDIT /SET {Bootmgr} locale zh-cn(启动管理器显示语言)

BCDEDIT /SET {Current} locale zh-cn(当前系统高级选项显示语言)

BCDEDIT /SET {memdiag} locale zh-cn(内存诊断程序显示语言)

但还是得通过 BCDEDIT /ENUM ALL 查看一下“从休眠恢复”的 GUID,例如上例中的 {1e8093ef-b781-11db-9b67-fbd650ea275c} ,然后执行

BCDEDIT /SET {1e8093ef-b781-11db-9b67-fbd650ea275c} locale zh-cn(把“从休眠恢复”的显示语言也改掉)。

最后再通过 BCDEDIT /ENUM ALL 重新查看,所有的 locale 都显示为 zh-cn 就对了。


阅读(1937) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~