配置 Symbols File 的远程调用
在 File--> Symbol File Path 中填写如下信息:
制作从移动硬盘引导启动的 VistaPE 宣告失败(非 WIM 模式)
连续三天完成了 VistaPE 的系列实践并在 Blog 上发布了文章,于是在今天下午决定一鼓作气完成从 UFD 动硬盘存储上启动 VistaPE 的试验,结果以失败而告终。
如我所料 VistaPE 无法实现从 UFD 移动存储上启动,主要就是因为在生成 BCD 配置文件时所产生的 GUID 值,而这个 GUID 值就是取自默认的磁盘分区 C,当我直接把移动硬盘挂载到系统后,按照硬盘启动的制作过程进行,在准备最后的生成 BCD 文件时提示我的 GUID 无法从库中提取存储数据。没有过多地测试直接恢复了我的移动硬盘,之后重新启动了系统,发现我的系统无法启动了,仔细一看提示才发现我之前生成的 BCD 覆盖了我宿主系统的引导信息。Faint!
无奈,使用安装光盘上的恢复功能重新生成了我宿主系统的 BCD 配置文件,系统才得以恢复正常。看来想在 UFD 移动存储设备上直接启动 VistaPE 并不是容易的事情。只能抽时间找环境再做测试!设想,如果我拔掉所有内置的磁盘驱动器,然后只挂接 UFD 移动存储设备,然后用光盘方式的 VistaPE 引导不知道是否可以生成 BCD 。获取还有其他办法,因为从1月份的 WindowsITPro 杂志中获知国外的一个达人在获得微软的认可后为当地的警察局设计了一套可以运行在 UFD 设备上 XP 系统。也就是说有可能微软为了避免此类的应用被滥用而在 VistaPE 中加入了限制措施。要知道现在一个大容量的 UFD 太便宜了,而且很多人迫切需要一个更加小巧便捷的操作环境来满足自己的某些工作需要。还需要再揣摩揣摩!
今天就到此为止吧!周末还是应该放松放松!
实现从硬盘引导 VistaPE
之前的 Blog 陈述了我对 VistaPE 的一些看法,谨代表个人看法。下来此篇 Blog 将与大家分享我是如何实现从硬盘引导 VistaPE 的。
这次实践所需的环境与定制个性化 VistaPE 时的一样,我将会使用 Virtual PC 2007 来作为硬盘启动 VistaPE 的测试环境。同样我仍然强烈地推荐使用 Vista 系统作为宿主环境。
之前定制个性化 VistaPE 时,我并没有安装 VistaPE 支持的组件支持,作为今后的使用工具我个人认为还是有必要把这些组件都安装进入到我的个性化 VistaPE 中去。为此,我们首先需要将之前做好的映像重新 mount 到我们的特定目录性,之后通过“peimg”工具来查看我们已安装的组件,和安装新的组件,之后我们会重新封装这个映像并从最终的映像文件中删除所有未安装的程序包,来有效地减少整个映像的大小,最后将我们修改过的 VistaPE 制作成一个 ISO 文件,供我们稍候在虚拟机实践硬盘启动 VistaPE 中使用。具体步骤如下:
1、装入基本的 VistaPE 映像,也就是将 winpe.wim 文件内容影射到我们的 mount 目录中,并且我们可以对其进行修改。
2、查看当前映像中已经安装的内置组件支持,并安装我们需要的内置组件。
注:在 INS 列中,(+)表示已经安装的组件包,(-)则表示为安装的组件包。下图则显示了默认映像中内置组件的安装情况。
如果要安装其中未安装的组件我们则使用参数“/install”即可,具体的命令如下:
注:其中“*HTA*”即“WinPE-HTA-Package”,为了快速执行可以使用通配符。此外,官方文档中提及的“WinPE-SRT-Package”组件并不包含在我下载的简体中文版的WAIK中。
3、准备映像,删除我们未安装得组件,以减少映像大小。
4、重新封装映像,将更改提交至映像。
[code] imagex /unmount c:\vistape\mount /commit
注:在提交更改前,请找到本机“%windir%\system32\winload.exe”这个文件拷贝到“C:\vistape\mount\windows\system32\”下,因为根据实际测试发现WAIK自带的原始模板中并没有这个文件,由此会导致我们以硬盘启动 VistaPE 时因无法找到文件而启动失败。
5、替换默认的 Boot.wim 文件。
6、因为是制作硬盘启动的 VistaPE ,所以我们要先制作一张 CD-ROM 的 ISO 镜像文件,以便我们在虚拟机中测试。
在晚上上述的准备工作后,我们就可以开始实践以硬盘方式启动 VistaPE,因为 Vista 使用 BCD 来替换 boot.ini,所以我们需要使用BCDEdit(管理 BCD 存储的命令行工具)来重新生成我们的启动配置文件。为此,打开我们事先准备好的虚拟机(内存应该分配512M,否则将导致 VistaPE 运行失败),并载入我们上面制作好的 ISO 文件。成功引导进入 VistaPE 系统后,打开命令行模式,用 diskpart.exe 为硬盘重新分区格式化,并将 ISO 中的 VistaPE 解包至硬盘上,并重新生成硬盘引导用的 BCD 文件。具体步骤如下:
1、首先我们进入 VistaPE 命令行模式,准备硬盘驱动器。
select disk 0
clean
create partition primary size=512
select partition 1
active
format fs=ntfs
exit
2、将 VistaPE 文件复制到硬盘。
xcopy d:\boot\*.* /e /f c:\boot
copy d:\bootmgr c:
del c:\boot\bcd
3、配置 BCD 存储,重新生成引导配置文件。
bcdedit -store c:\temp\bcd -create {bootmgr} /d "Microsoft Boot Manager"
bcdedit -store c:\temp\bcd -set {bootmgr} device boot
bcdedit -store c:\temp\bcd -create /d "Microsoft Windows Vista PE" -application osloader
bcdedit -import c:\temp\bcd
注:在上面的命令中惠返回一个 GUID 值,请记录下来并替换下面命令行中的 GUID。
bcdedit -store c:\boot\bcd -set GUID osdevice partition=c:
bcdedit -store c:\boot\bcd -set GUID device partition=c:
bcdedit -store c:\boot\bcd -set GUID path \windows\system32\winload.exe
bcdedit -store c:\boot\bcd -set GUID systemroot \windows
bcdedit -store c:\boot\bcd -set GUID winpe yes
bcdedit -store c:\boot\bcd -set GUID detecthal yes
bcdedit -store c:\boot\bcd -displayorder GUID -addlast
至此我们就完成了计算机的准备工作没,现在可以重新启动计算机并从硬盘启动 VistaPE。以硬盘启动 VistaPE 的过程就完成了,在 BCD 生成过程中会涉及到一个 GUID (全局统一标识符),这个 GUID 生成的算法可能用到了以太网卡地址、纳秒级时间、芯片ID码或许多可能的数字,由于猜测可能我们制作出来的硬盘启动的 VistaPE 不能应用在所有的计算机或移动硬盘上,具体成功与否我们还有待测试,可能会出现的关键阻碍就是我们在移动硬盘上制作的硬盘方式引导的 VistaPE,并不能在所有的计算机上运行。希望结果不会是这样的。
好了,以硬盘启动的 VistaPE 制作过程到这里就告一段落,实际测试表明以硬盘方式启动 VistaPE 时,启动速度确实快了不少,而且当计算机内存为128M时仍然正常启动运行,当然在 VistaPE 中作的修改也会得到保存。
此外发现一个有趣的现象,使用硬盘启动 VistaPE 后,硬盘上的 C 盘盘符会自动变为X,当用其他介质引导时磁盘盘符会恢复为 C,也就是说微软将 VistaPE 默认引导磁盘盘符定义为 X ,而且是无法更改的。
关于移动硬盘使用硬盘启动方式的 VistaPE 测试结果我会尽快向大家提供,也希望大家能继续关注我的 Blog,我也非常愿意与大家分享我的心得体会。