HOWTO:制作 Windows 7 加速部署映像(作者:苏繁)
加速部署映像 - 也就是我们通常说的系统模板,通常我们为了提高 Windows 的安装速度,会事先制作一套包含驱动、应用软件、补丁程序以及自定义设置的标准化系统。这样我们在使用该加速部署映像完成安装后,就可以让用户直接使用,不仅在安装方面大大缩短了时间,也提高了用户的体验。
在 Windows XP 时代,我们在定制完毕系统后为了能够让该加速部署映像用于不同 HAL 的电脑,还需要人工执行很多复杂繁琐的操作,最后再使用 Sysprep 执行系统封装准备,完成后对系统打包。如果要实现自动安装,事先还需要使用 setupmgr 制作一份用于 Sysprep 的应答文件。
自 Windows Vista 开始,Windows 的安装和部署发生了质的变化,到了 Windows 7 更是得到了完善和加强。现在我们使用 Sysprep 的 generalize 参数即可制作出一套不受 HAL 限制的通用映像。而自动应答文件富含更多地功能和设置,我们现在需要借助 WAIK(Windows Automated Installation Kit)这个新的 Windows 自动安装工具包来制作 Windows 的应答文件。由于 Windows 安装方式的改进,过去零散的安装文件都被打包在以扩展名为 WIM 的文件中,此外由于采用了文件方式的存储,WIM 不受磁盘大小的约束,能够很轻易的部署到不同容量的分区卷上,并且在释放 WIM 后文件都将紧密排列存储。这样我们维护或部署映像也将更将方便快捷。
由于 Windows 7 的一些新特性,如:系统 oobe 阶段必须创建一个新用户;经过定制后将当前用户配置文件应用于默认用户配置,则需要借助 WAIK 在 specialize 阶段通过 CopyProfile=true 来实现。导致我们不能像以往 Windows XP 那样制作定制的加速部署映像。在 WAIK 的帮助文档中提供了多种安装部署方式的标准流程,鉴于一些环境因素的约束,gOxiA 采用如下的流程来制作 Windows 7 的加速部署映像。
本次测试环境是在 Hyper-V 中创建了一个 Windows 7 的虚拟机,标准安装时直接 Mount 的 Windows 7 Pro ISO,使用虚拟化来创建加速部署映像是非常方便的。如果打算在物理机上实施则可以使用安装光盘、移动U盘或网络安装等方式执行标准化安装。
在完成安装之后,会首先进入 Oobe 阶段,也就是 Welcome 界面。之前 gOxiA 说过 Windows 7 在 Oobe 阶段必须要创建一个用户(注意:这一设计出于安全考虑,默认 Administrator 账户是被禁用的。),此外如果跟随向导完成 Welcome 的操作,那么我们之后执行系统封装时还要执行删除创建的当前用户的操作,比较繁琐。所以我们通过调用 Ctrl+Shift+F3 调用 Audit(审计模式)直接进入系统,这样我们便可以在 Administrator 下定制系统。注意:这一操作会重新启动一次计算机。
在审计模式下我们就可以安装驱动、安装应用软件、个性化定制 Windows 和应用程序。
在上述步骤完成后,我们就可以根据自动化需求来定制应答文件,在技术人员计算机上使用 WAIK 创建应答文件。因为某些软件并非采用 msi 安装方式,所以快捷方式无法应用到今后使用计算机的用户上,而且要统一标准的用户配置文件,必须使用 WAIK 在应答文件中启用 CopyProfile。为了方便日后安装 Windows 7 时减少人工干预度,所以我们还要在应答文件中预先定义好标准设置。下面是一个制作好的应答文件截图,gOxiA 只要对 Specialize 和 OobeSystem 部分进行了定义:
CopyProfile 只能在 Specialize 阶段进行。
要略过 Oobe 阶段(Welcome 界面)的区域和语言选项就需要如下图对 Microsoft-Windows-International-Core_neutral进行设置。
在 Microsoft-Windows-Shell-Setup_neutral 组件中设置 TimeZone 以略过时间和时区设置。
此外,在 Microsoft-Windows-Shell-Setup_neutral 的 OOBE 组件中可以通过设置 HideEULAPage=true 略过最终用户授权协议;HideWirelessSetupInOOBE=true 略过无线网络设置(如果无线可用);NetworkLocation=Work 略过网络位置设置,并将当前网络位置设置为工作网络(如果网络可用);ProtectYourPC=1 略过 Windows 保护级别设置,并将保护级别设置为推荐更新级别。
将创建的应答文件拷贝到 Windows 7 虚拟机上,执行 Sysprep /generalize /oobe /shutdown /unattend:UNATTENDPATH,注意 UNATTENDPATH 为 unattend.xml 的文件所在完整路径。
加载包含了 imagex 工具的 WinPE 工具盘,启动该 Windows 7 虚拟机进入 WinPE 环境。包含 imagex 工具的 WinPE 制作过程可参考之前的帮助文档。
使用 imagex 工具捕获系统映像,并将捕获的映像拷贝到其他位置。如果日后打算通过 Windows 7 的标准安装方式来安装此映像,那么在使用 imagex 捕获映像时应当使用 flags 参数定义当前映像的元数据,这样才能被 Windows 7 Setup.exe 识别。命令行参考如下:
imagex /capture /compress fast C: F:\Backup\Install.wim "Windows 7 Professional x86" /flags "Professional"
之后用这个 Install.wim 替换 Windows 7 SetupCD 中 Sources 目录下的 Install.wim 文件重新打包生成 ISO 使用即可。
至此,Windows 7 加速部署映像的流程即告一段落。此篇日志中的重点就是进入 Audit 模式定制系统,以及创建包含 CopyProfile 参数的应答文件。
HOWTO:制作 Windows 7 加速部署映像(作者:苏繁)的更多相关文章
- 从本机构建Windows应用程序虚拟机映像
下图描述了总体的虚拟机映像的VHD生成,上传以及发布到 Azure 镜像市场的全过程: 具体步骤如下: 在本地计算机(Windows平台)上安装Hyper-V,并安装您所需要的虚拟机操作系统 在此操作 ...
- 制作Windows XP万能克隆镜像
制作Windows XP万能克隆镜像 战前分析:对于Windows XP,制作万能克隆时的一个重要问题就是系统激活,因为Windows XP为了防止盗版,采取了激活机制,当硬件发生改变时,系统就会要求 ...
- 在 Windows Azure 上部署预配置 Oracle VM
Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...
- C# 制作Windows服务安装包
C# 制作Windows服务安装包 这两天公司要用C#写一个windows服务,做成安装安装包.制作的过程中遇到了一些问题,写完之后总结一下.如果以后在用到的话可以可以参考一下,而且由于原来没有做 ...
- 制作Windows U盘镜像
目的:制作windows server 2008 U盘镜像 需要的共具: 1.一个格式为FAT并且至少4G的U盘, 2.UltraISO软件, 3.一个windows server 2008 ISO文 ...
- OpenStack Nova 制作 Windows 镜像
OpenStack Nova 制作 Windows 镜像 windows虚拟机ubuntuimage防火墙云计算 本贴转自http://www.vpsee.com 上次 VPSee 给 OpenS ...
- 制作Windows的ico图标
也不知道这个方法是不是最好的,有时间再查看其它方法 首先设计出图标,png格式即可. 使用一款软件 IconWorkshop 下载了一个试用版,临时制作够用了 制作步骤如下: 1.打开png图片 2. ...
- 在Windows环境下部署Axis2/C服务
Apache Axis2/C是C语言实现的网络服务引擎,基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web service. 下面是本人在Windows 7 ...
- 在GNU/Linux下制作Windows 10安装U盘
今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来.回家前,小仙女已在微 ...
随机推荐
- CStringUtf8ToUnicode
CString CStringUtf8ToUnicode( CString Utf8 ) { int wLen = 0; CString strUnicode; LPSTR pBufChar = NU ...
- Ubuntu 13.04安装搜狗输入法
Ubuntu 13.04安装搜狗输入法 [日期:2013-07-08] 来源:Linux公社 作者:LinuxIDC.com [字体:大 中 小] 目标:在Ubuntu 13.04以及基于U ...
- DOS 循环读取txt每一行内容
在命令行窗口中输入: for /f %i in (f:\mydata.txt) do echo %i 如果要是写成批处理文件run.bat for /f %%i in (f:\mydata.txt) ...
- chrome 插件
SwitchySharp.crx SwitchyOmega.crx Readability_v3.0.15.crx Hackman.crx EditThisCookie_v1.4.1.crx AdBl ...
- 用于主题检测的临时日志(ba86b8a0-7ed7-4b0b-bf1f-ce41aa2a5780 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
这是一个未删除的临时日志.请手动删除它.(ea9f667f-3be0-45c8-ad82-3acf819d571c - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
- 测试服务API的_苏飞开发助手_使用说明
1 工具说明_json对象字符串拼接 2 工具说明_纯字符串拼接
- Dialog对话框
1.显示内容 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle(&q ...
- 循环日期的shell
date="2015-09-23"enddate='2015-11-08'while [[ $date < $enddate ]] do date=`date -d &quo ...
- coalesce
coalesce我理解就是将多个partition合并成少量的partition. data.coalesce(2,true) 第一个参数是partition数量 第二个参数是合并是是否进行shuff ...
- HTTPS传输协议原理
我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SSL进行加密,能保证客户端到服务器端的通信都在被保护起来,那么浏览器是如果实现的呢 ...