捕获和应用 Windows 完整闪存更新 (FFU) 映像
使用完整闪存更新 (FFU) 映像格式在工厂车间更快地部署 Windows。 使用 FFU 映像,可以一次将物理驱动器的映像(包括 Windows、恢复和系统分区信息)直接应用到不同的驱动器。
与基于文件的 WIM 格式不同,FFU 是一种基于扇区的文件容器,用于存储一个或多个分区。 基于扇区的映像意味着 FFU 的部署时间更短,但文件大小比 WIM 大。 有关映像格式之间差异的信息,请参阅 WIM 与 VHD 与 FFU:比较映像文件格式。
从 Windows 10 版本 1903 开始,你可以将 FFU 优化为新的可移植 FFU,其中:
- 应用 FFU 的驱动器可以小于从中捕获 FFU 的驱动器。
- 可以选择一个根据新驱动器大小动态扩展或收缩的分区。
- 无需再为不同大小的驱动器单独管理恢复分区。
注意
应用优化的 FFU 需要 Windows 10 版本1903、WinPE 版本 1903 或更高版本。
限制
- 如果不优化 FFU,应用 FFU 的驱动器必须与从中捕获 FFU 的驱动器大小相同或更大
- 不支持对加密磁盘进行 FFU 捕获
- 不支持捕获启用了卷影复制服务 (VSS) 的磁盘
- 不支持拆分压缩的 FFU
- 捕获 FFU 会捕获整个磁盘,没有排除特定文件的机制
- 无法捕获使用 基于 MBR 的硬分区的硬盘驱动器的 FFU
在 Windows 中使用 FFU 需要什么
若要使用 DISM 捕获、部署和装载 FFU 映像,你需要在 Windows 10 版本 1709 或更高版本;或者适用于 Windows 10 版本 1709 或更高版本的 WinPE 环境中操作。 若要部署可移植的 FFU,你需要适用于 Windows 10 版本 1903 或更高版本的 WinPE。
若要按照以下说明捕获和部署 FFU,你还需要:
- 已使用 Sysprep 通用化的 Windows PC。 我们将其称为参考 PC。 有关如何创建已准备好部署的映像的演练,请参阅 OEM Windows 部署实验室。
- 要将 FFU 映像部署到的 PC。 我们将其称为目标 PC。 此 PC 上的硬盘驱动器将被覆盖,因此请确保你使用的 PC 没有你想要保留的任何信息。
- 最新版本的 ADK,来自下载 Windows ADK
- 存储
格式化为 NTFS 且有足够空间来保存 FFU 的 USB 存储。 16 GB 的空间足以存储基本 Windows 映像的 FFU。 如果按照有关创建多分区 USB 驱动器的说明进行操作,则可以将同一 USB 驱动器用于 WinPE 和存储。 为了获得最佳性能,你希望最大化 FFU 存储位置和目标 PC 之间的 I/O。 为了获得最佳性能,请使用 USB 3.0 驱动器来存储映像,并为目标设备使用内部 SSD。
或
可用于保存 FFU 映像的网络存储。 为了获得最佳性能,请使用 1 Gb 或更快的网络。
捕获 FFU
使用 WinPE 可启动介质启动参考 PC。
确定要从中捕获映像的驱动器。 你可以使用 diskpart,或将 Windows PowerShell 支持添加到 WinPE,并使用 Get-Disk 进行脚本化和更复杂的设置,例如具有多个磁盘的服务器。
diskpart list disk exit
输出将列出你的驱动器。 记下
Disk ###
列中的磁盘编号。 这是捕获映像时将使用的值。DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 238 GB 0 B * Disk 1 Online 28 GB 0 B DISKPART>
使用 DISM 捕获物理驱动器上所有分区的映像。 对于 disk X:,与
/capturedrive
一起使用的字符串如下所示:\\.\PhysicalDriveX
,其中 X 是 diskpart 提供的磁盘编号。 例如,若要捕获磁盘 0,请使用/CaptureDrive:\\.\PhysicalDrive0
。有关 PhysicalDrive X 的详细信息,请参阅 CreateFile 函数。
若要查看用于捕获 FFU 的命令行选项,请运行
dism /capture-ffu /?
或查看 DISM 映像管理命令行选项。 请注意,不必在捕获桌面映像时指定 PlatformID。以下命令将捕获 PhysicalDrive0 的 FFU 映像,名为 WinOEM.ffu。 /name 和 /description 参数允许设置有关映像的信息。 当你使用
dism /get-imageinfo
时会显示此信息。 /name 是必需的,/description 是可选的。DISM.exe /capture-ffu /imagefile=e:\WinOEM.ffu /capturedrive=\\.\PhysicalDrive0 /name:disk0 /description:"Windows 10 FFU"
此命令还为 FFU 映像提供名称和说明。 名称是必需的参数。
优化 FFU
/Optimize-FFU
DISM 选项允许你选择在向磁盘应用 FFU 后自动扩展或收缩的分区:
将 FFU 文件复制到运行 Windows 10 版本 1903 或更高版本的技术人员 PC。 不能在与捕获的 FFU 相同的磁盘上运行
/optimize-ffu
。注意
只能在 Windows 10 版本 1903 或更高版本上运行
/Optimize-FFU
命令。优化 FFU。
Dism /Optimize-FFU /ImageFile:flash.ffu
注意
默认情况下,将 Windows 部署到不同大小的驱动器时,Windows 分区将扩展或收缩,以便达到最大容量。 如果你使用的是数据分区,则可以选择使用
/PartitionNumber
选项扩展或收缩此分区,例如:Dism /Optimize-FFU /ImageFile:flash.ffu /PartitionNumber:2
若要了解详细信息,请参阅 DISM 映像管理命令行选项:优化 FFU
如果计划将此 FFU 应用于比原始驱动器小的驱动器,请检查 FFU,看新的最小驱动器大小应该为多大:
Dism /Get-ImageInfo /ImageFile:flash.ffu
使用 FFU 从 WinPE 部署 Windows
将目标 PC 启动到 WinPE。
注意
如果要应用优化的 FFU,必须使用 WinPE 版本 1903 或更高版本。
连接存储驱动器或映射包含 FFU 文件的网络位置并记下驱动器号,例如 N。
确定要应用映像的驱动器:
diskpart list disk exit
请注意
Disk ###
列中的驱动器号。将映像应用到已清理的驱动器。 在这里,我们将 n:\WinOEM.ffu 应用到磁盘 0。
DISM /apply-ffu /ImageFile=N:\WinOEM.ffu /ApplyDrive:\\.\PhysicalDrive0
若要查看 /apply-ffu 可用的命令,请运行
dism /apply-ffu /?
或查看 DISM 映像管理命令行选项。
在不同大小的驱动器上捕获和应用 FFU
如果你优化了 FFU,DISM 会自动调整 Windows 分区(或所选分区)的大小,即,扩展或收缩以填充可用空间。
如果未优化 FFU,或者正在部署 Windows 10 版本 1809 或更早版本,则只能将 FFU 应用于与原始驱动器大小相同或更大的驱动器。 你还需要执行一些额外的操作,在部署之前和部署期间管理恢复分区和分区大小,以充分利用空间:
在参考 PC 上,安装不带恢复分区的 Windows,并将 Windows 分区设置为驱动器上的最终分区。 若要进行此设置,请使用 Windows 安装程序或部署脚本。
在目标 PC 上,部署 FFU。 对于较大的驱动器,最后会有未使用的空间。
使用 Diskpart 扩展 Windows 分区,以填充空白空间。
然后,收缩 Windows 分区,为恢复分区腾出空间。
配置恢复分区。
例如,使用示例脚本:创建恢复分区。
ApplyRecovery.bat
装载 FFU 进行维护
可以使用 DISM 装载 FFU 映像以进行维护。 与其他映像格式一样,你可以在提交更改和卸载之前装载和修改 FFU。 装载 FFU 进行维护时,使用与装载其他映像类型相同的 /mount-image
命令。 装载 FFU 时,始终在装载时使用 /index:1
。
与 WIM 映像不同,FFU 映像装载为虚拟硬盘。 文件出现在指定的装载文件夹中,但由于 FFU 可以包含多个分区但只有一个索引,因此 DISM 仅将 Windows 分区从已装载的 FFU 映射到装载文件夹。
装载 FFU
以管理员身份打开命令提示符。
使用
dism /mount-image
装载映像。 此示例将 D:\WinOEM.ffu 装载到 C:\ffumount:dism /mount-image /imagefile:"D:\WinOEM.ffu" /mountdir:"C:\ffumount" /index:1
若要查看
/mount-image
可用的命令行选项,请运行dism /mount-image /?
或查看 DISM 映像管理命令行选项。维护映像。 例如,若要启用旧版组件功能:
dism /image:"C:\ffumount" /enable-feature:legacycomponents
若要查看可用选项,请运行
dism /image:<path to mounted image> /?
或卸载 FFU 映像并提交或放弃更改。 如果使用 /commit,所做更改将保存到 FFU 文件中。
若要卸载 FFU 并提交更改,可以将
/unmount-image
和/commit
选项一起使用:dism /unmount-image /mountdir:"C:\ffumount" /commit
如果决定不保留对 FFU 所做的更改,可以将
/unmount-image
和/discard
选项一起使用:dism /unmount-image /mountdir:"C:\ffumount" /discard