在上一篇日志 — 《HOWTO:在 Windows 7 中嵌入 Windows PE》中,gOxiA 与大家分享了将 Windows PE 嵌入到 Windows 7 中的具体实施步骤,而这篇日志将利用 Windows 7 的新特性 — VHD Native Boot,来实现 Windows PE 以 VHD 方式来引导。就目前的应用而言,此方法真正的使用价值还有待推敲,但是不能否认的是一旦使用 Windows PE VHD Native Boot,那么在 Windows PE 中的修改将会得到保存,如果将网上网友定制的功能丰富的 Windows PE 3.0(此类 PE 集成了很多实用工具,甚至包含了浏览器和QQ,并且桌面也极像 Windows 的标准桌面。)拿来使用,那么该 Windows PE 完全可以作为一个轻量级的系统来进行使用。需要注意的是可能会与授权问题相抵触,使用前需慎重考虑!

        本文侧重点是实现 Windows PE 3.0 的 VHD Native Boot,如果你对 VHD Native Boot 的使用已经相当了解,那么具体操作起来是非常容易的,我们只需要将定制的 Windows PE 3.0 中的 Boot.wim 释放到 VHD 中即可。此外还需注意,Boot.wim 释放后的容量要比 wim 容量大很多,那么在创建 VHD 时一定要将容量设置的大一些。下面是具体的操作指令:

diskpart

create vdisk file=d:\winpe3.vhd maximum=2000 type=expandable

list disk

sel disk 1

create partition primary

format fs=ntfs quick label=WinPE3

assign letter=v

        上面的指令将在 D 盘创建一个动态扩展类型,最大2G的名为 winpe3.vhd 的虚拟磁盘文件。并为其创建一个主分区,使用 NTFS 格式快速格式化,卷标为 WinPE3,并将其盘符分配为 V。“list disk”用于显示当前的磁盘信息,便于之后执行“sel disk n”选择虚拟磁盘。为了方便之后的操作,建议不要退出 diskpart。

        之后使用 imagex 或支持 wim 格式的解压缩软件将其释放到虚拟磁盘 V 上,释放完毕后在 diskpart 下执行“datech vdisk”卸载虚拟磁盘,如果之前已经退出 diskpart,则重新进入后需要先选择 vdisk,即“sel vdisk file=d:winpe3.vhd”,之后再执行卸载虚拟磁盘的命令。

        最后生成 Windows PE VHD Native Boot 的引导信息,并添加到 ToolsDisplayOrder 引导列表中,为此执行如下操作:

bcdedit /copy {current} /d "Windows PE VHD Native Boot"

bcdedit /set {GUID} device vhd=[d:]\winpe3.vhd

bcdedit /set {GUID} osdevice vhd=[d:]\winpe3.vhd

bcdedit /set {GUID} detecthal yes

bcdedit /set {GUID} winpe yes

bcdedit /toolsdisplayorder {GUID} /addlast

        完成所有操作后,重新启动计算机引导时按下空格键调出引导列表,使用 Tab 键切换到 ToolsDisplayOrder 列表,进行选择。

Tags: , , , , , , ,

        gOxiA 的计算机没有光驱,所以从 Windows Vista 发布以来就没再用过光驱来安装操作系统。通常都是使用 U盘或移动硬盘中自己定制的 Windows PE 来引导计算机,进行系统的安装或维护。虽然这样一来已经非常方便、灵活!而且 Windows 7 的备份还原功能也更加实用、再加上 Thinkpad 独有的 R&R,一旦发生系统故障均能够快速的恢复到正常状态。然而,时间久了会发现偶尔要取出移动硬盘或U盘引导定制的 Windows PE时,也会稍显麻烦!能不能有办法将 Windows PE 嵌入到 Windows 7 中呢?!结论是肯定的,早前 gOxiA 写过几篇相关的文章,当时都是基于 Windows Vista 的,虽然操作过程与在 Windows 7 上大致相同,但是由于 Windows 7 具备一些新的特性,加之 WAIK3 的发布,所以在实际实施中还是有一些不同的,所以 gOxiA 决定撰写该日志与大家分享!

        首先,我们先回顾一下 gOxiA 之前写过的相关日志,第一篇是将 Windows PE 部署到一个单独分区中,虽然这种方式某种意义上更加安全、有效。但是实际操作时相当费时费神,所以第二篇提到的方式更适合推广使用。

        本章将引领大家在 Windows 7 操作系统中嵌入一个定制版的 Windows PE v3.0,默认不出现在引导列表中,并且以 RAMDISK 方式来运行。这种做法的好处是,我们可以轻易地在一台已经安装好操作系统的计算机上进行嵌入,根据需要调用 Windows PE 来引导,不破坏默认的引导列表而导致每次引导都会出现选择菜单,由于采用 RAMDISK 方式,所以定制版的 Windows PE 维护起来也更方便,只需要维护一个 WIM 映像文件即可,而且不必担心因为误操作而引起的文件修改或丢失问题。

        关于 Windows PE 的定制 gOxiA 这里不再复述,网上有很多定制的版本和定制工具,当然也可以自己参考 WAIK 文档制作符合自己需求的定制版本。在开始前,请准备一套完整的 Windows PE,他们通常是 ISO 格式,然后将 boot 目录下的 boot.sdi 和 sources 目录下的 boot.wim 拷贝到你本地磁盘上的某一个目录中,本例中是保存到“E:\Personal\Tools\WindowsPE”目录下;最后,在管理员权限下执行“bcdedit /export boot.bak”,将引导信息进行备份。

        下面是 gOxiA 工作 PC 上的 bcd 信息,供参考使用:

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=C:
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {4d3dfcc6-aaf4-11de-a800-00e04c54037c}
displayorder            {current}
                        {4d3dfccb-aaf4-11de-a800-00e04c54037c}
toolsdisplayorder       {memdiag}
timeout                 10

Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {4d3dfcc8-aaf4-11de-a800-00e04c54037c}
truncatememory          0x80000000
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \windows
resumeobject            {4d3dfcc6-aaf4-11de-a800-00e04c54037c}
nx                      OptIn
numproc                 1
usefirmwarepcisettings  No

Windows 启动加载器
-------------------
标识符                  {4d3dfcc8-aaf4-11de-a800-00e04c54037c}
device                  ramdisk=[C:]\Recovery\4d3dfcc8-aaf4-11de-a800-00e04c54037c\Winre.wim,{4d3dfcc9-aaf4-11de-a800-00e04c54037c}
path                    \windows\system32\winload.exe
description             Windows Recovery Environment
inherit                 {bootloadersettings}
osdevice                ramdisk=[C:]\Recovery\4d3dfcc8-aaf4-11de-a800-00e04c54037c\Winre.wim,{4d3dfcc9-aaf4-11de-a800-00e04c54037c}
systemroot              \windows
nx                      OptIn
winpe                   Yes

Windows 启动加载器
-------------------
标识符                  {4d3dfccb-aaf4-11de-a800-00e04c54037c}
device                  vhd=[D:]\ws08r2.vhd
path                    \windows\system32\winload.exe
description             Windows Server 2008 R2
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {4d3dfcc8-aaf4-11de-a800-00e04c54037c}
truncatememory          0x80000000
recoveryenabled         Yes
osdevice                vhd=[D:]\ws08r2.vhd
systemroot              \windows
resumeobject            {4d3dfcc6-aaf4-11de-a800-00e04c54037c}
nx                      OptIn
numproc                 1
usefirmwarepcisettings  No

从休眠状态恢复
---------------------
标识符                  {4d3dfcc6-aaf4-11de-a800-00e04c54037c}
device                  partition=C:
path                    \windows\system32\winresume.exe
description             Windows Resume Application
locale                  zh-CN
inherit                 {resumeloadersettings}
filedevice              partition=C:
filepath                \hiberfil.sys
pae                     Yes
debugoptionenabled      No

Windows 内存测试程序
---------------------
标识符                  {memdiag}
device                  partition=C:
path                    \boot\memtest.exe
description             Windows Memory Diagnostic
locale                  zh-CN
inherit                 {globalsettings}
badmemoryaccess         Yes

EMS 设置
------------
标识符                  {emssettings}
bootems                 Yes

调试器设置
-----------------
标识符                  {dbgsettings}
debugtype               Serial
debugport               1
baudrate                115200

RAM 故障
-----------
标识符                  {badmemory}

全局设置
---------------
标识符                  {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}

启动加载器设置
--------------------
标识符                  {bootloadersettings}
inherit                 {globalsettings}
                        {hypervisorsettings}

虚拟机监控程序设置
-------------------
标识符                  {hypervisorsettings}
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

恢复加载器设置
----------------------
标识符                  {resumeloadersettings}
inherit                 {globalsettings}

设备选项
--------------
标识符                  {4d3dfcc9-aaf4-11de-a800-00e04c54037c}
description             Ramdisk Options
ramdisksdidevice        partition=C:
ramdisksdipath          \Recovery\4d3dfcc8-aaf4-11de-a800-00e04c54037c\boot.sdi

        从上面显示的当前系统的 BCD 信息可以得知,默认 Windows 7 除了标准的系统引导,还有 Windows 恢复环境,Windows 恢复程序以及内存检测程序。其中 Windows 恢复环境就是以 RAMDISK 方式运行的一个 Windows PE,与我们要嵌入类型是一致的。注意:上面信息中包含的 Windows Server 2008 R2 是我附加上去的 VHD Native Boot,可以忽略!在一些品牌机,如 Thinkpad,由于安装有 R&R那么还会看到有关 R&R 的引导信息,也是以 RAMDISK 方式引导,并且会使用默认标识符“{ramdiskoptions}”,而非 GUID。

        现在我们将开始,Windows PE 的嵌入!以管理员权限启动 CMD 环境之后键入如下指令:

bcdedit /create /d "Custom Windows PE v3.0 x86" /device

        执行上面的指令后,将会创建一个名为“Custom Windows PE v3.0 x86”的“设备选项”,并得到一个 {GUID},为了便于识别这里将此{GUID}叫做{SDIGUID},请复制下来备用。然后键入下面的指令,配置该设备选项的引导文件:

bcdedit /set {GUID} ramdisksdidevice partition=e:

bcdedit /set {GUID} ramdisksdipath \personal\tools\windowspe\boot.sdi

        在设备选项的信息配置完毕后,创建一个新的“Windows 启动加载器”,获取到该启动加载器的 GUID 后,添加相关的引导信息,指令如下:

bcdedit /create /d "Windows PE" /application osloader

bcdedit /set {GUID} device ramdisk=[e:]\personal\tools\windowspe\boot.wim,{SDIGUID}

bcdedit /set {GUID} osdevice ramdisk=[e:]\personal\tools\windowspe\boot.wim,{SDIGUID}

bcdedit /set {GUID} path \windows\system32winload.exe

bcdedit /set {GUID} systemroot \windows

bcdedit /set {GUID} detecthal yes

bcdedit /set {GUID} winpe yes

bcdedit /set {GUID} nx optin

        下来我们将这个 Windows 启动加载器,添加到 ToolsDisplayOrder 列表中,这样启动过程中不会进入引导选项列表,当我们需要启动这个 Windows PE 时只需要在引导时按下空格键即可调出引导选择列表,之后使用 Tab 键切换到 ToolsDisplayOrder 列表中,通过上下箭头定位到该 Windows PE 的名称上——“Custom Windows PE v3.0 x86”,按下回车即可开始引导。为此需要执行下列指令:

bcdedit /toolsdisplayorder {GUID} /addlast

        至此便大功告成了,现在可以进行测试感受一下。重新过一边这篇日志,相信细心的朋友会发现为什么创建的启动加载器的 Description 是“Windows PE”,而最终显示结果却是“Custom Windows PE v3.0 x86”。这是因为 RAMDISK 会引用“设备选项”的 Description,gOxiA 也是测试之后才发现这个问题,而为了解决这个问题则选择单独存储一个 boot.sdi,并单独创建一个“设备选项”。如果关联到“Windows 恢复环境”的“设备选项”,那么最终的显示结果会是“Ramdisk Options”,在启动选择里不容易被识别。

        最后需要提醒的是由于本日志系统过滤特殊字符的原因,指令中部分符号是全角字符,实际操作中建议手工对照键入,不要直接复制使用。如果对 bcdedit 命令很熟悉,其实上述一些步骤是可以省略或简化的,这里为了使网友更清晰地了解操作步骤,故完整路演了一遍。

Tags: , , ,

利用 更改相识器的外观 更好的体验多显示器环境

        今天下午为本子扩展了一个19寸的宽屏 Dell 显示器,面子一下大了很多,可视效果提升了不少!特别是扩展模式下,能够将程序拖至到不同的显示器上。要选择多显示器的模式可以使用快捷键“start_key[1] + P”激活选择模式。

image

        虽然扩展模式充分的利用了显示器,但是在实际使用中 gOxiA 因为鼠标快速移动而飞入另外一个显示器,半天没能确定鼠标的位置,而烦恼!甚至有些眼花缭乱,可惜鼠标没有力反馈,否则在穿越各显示器间时还能提供警示!另外,由于当前 gOxiA 将外接显示器放在左边,本子在右边,而默认情况下 Windows 在显示扩展模式下,会将外接显示器置于桌面的右边,那么出于人的思维惯性,gOxiA 此时的大脑、眼睛就更乱了。

        还好,利用“更改显示器的外观”,我可以将外接的显示器根据实际的摆放位置来排列,如下图所示!我们可以鼠标单击显示器2(外接显示器)并拖动它,将他放置在自己习惯的位置上。之前,我将显示器2放置在左边并排排列,但是实际使用中我移动鼠标一旦超出主界面的左边边缘即会进入到扩展显示器(显示器2)中,最后干脆将2者对角放置,那么只有当我的鼠标移动到主界面的左上角才能进入到扩展显示器中,避免了误操作!

display_view1

        之后,我对当前模式进行了截图,发现很有意思,看下图!截取的内容跟我之前设置的外观排列一致!

display_view

        之前很少外接显示器,没有发现该功能,惭愧!以后如果外接多个显示器,使用起来将会非常的方便!

分页: 90/148 第一页 上页 85 86 87 88 89 90 91 92 93 94 下页 最后页 [ 显示模式: 摘要 | 列表 ]