捕获和应用 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

  1. 使用 WinPE 可启动介质启动参考 PC。

  2. 确定要从中捕获映像的驱动器。 你可以使用 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>
    
  3. 使用 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 后自动扩展或收缩的分区:

  1. 将 FFU 文件复制到运行 Windows 10 版本 1903 或更高版本的技术人员 PC。 不能在与捕获的 FFU 相同的磁盘上运行 /optimize-ffu

    注意

    只能在 Windows 10 版本 1903 或更高版本上运行 /Optimize-FFU 命令。

  2. 优化 FFU。

    Dism /Optimize-FFU /ImageFile:flash.ffu
    

    注意

    默认情况下,将 Windows 部署到不同大小的驱动器时,Windows 分区将扩展或收缩,以便达到最大容量。 如果你使用的是数据分区,则可以选择使用 /PartitionNumber 选项扩展或收缩此分区,例如:

    Dism /Optimize-FFU /ImageFile:flash.ffu /PartitionNumber:2
    

    若要了解详细信息,请参阅 DISM 映像管理命令行选项:优化 FFU

  3. 如果计划将此 FFU 应用于比原始驱动器小的驱动器,请检查 FFU,看新的最小驱动器大小应该为多大:

    Dism /Get-ImageInfo /ImageFile:flash.ffu
    

使用 FFU 从 WinPE 部署 Windows

  1. 将目标 PC 启动到 WinPE。

    注意

    如果要应用优化的 FFU,必须使用 WinPE 版本 1903 或更高版本。

  2. 连接存储驱动器或映射包含 FFU 文件的网络位置并记下驱动器号,例如 N。

  3. 确定要应用映像的驱动器:

    diskpart 
    list disk
    exit
    

    请注意 Disk ### 列中的驱动器号。

  4. 将映像应用到已清理的驱动器。 在这里,我们将 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 应用于与原始驱动器大小相同或更大的驱动器。 你还需要执行一些额外的操作,在部署之前和部署期间管理恢复分区和分区大小,以充分利用空间:

  1. 在参考 PC 上,安装不带恢复分区的 Windows,并将 Windows 分区设置为驱动器上的最终分区。 若要进行此设置,请使用 Windows 安装程序或部署脚本

    Reference PC: Capture the FFU image.

  2. 捕获 FFU

  3. 在目标 PC 上,部署 FFU。 对于较大的驱动器,最后会有未使用的空间。

    Reference PC: Apply the FFU image.

  4. 使用 Diskpart 扩展 Windows 分区,以填充空白空间。

    Reference PC: Expand the Windows partition to fill the empty space.

    然后,收缩 Windows 分区,为恢复分区腾出空间。

    Reference PC: Shrink the Windows partition to make room for the recovery partition

    配置恢复分区。

    例如,使用示例脚本:创建恢复分区

    ApplyRecovery.bat
    

装载 FFU 进行维护

可以使用 DISM 装载 FFU 映像以进行维护。 与其他映像格式一样,你可以在提交更改和卸载之前装载和修改 FFU。 装载 FFU 进行维护时,使用与装载其他映像类型相同的 /mount-image 命令。 装载 FFU 时,始终在装载时使用 /index:1

与 WIM 映像不同,FFU 映像装载为虚拟硬盘。 文件出现在指定的装载文件夹中,但由于 FFU 可以包含多个分区但只有一个索引,因此 DISM 仅将 Windows 分区从已装载的 FFU 映射到装载文件夹。

装载 FFU

  1. 以管理员身份打开命令提示符。

  2. 使用 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 映像管理命令行选项

  3. 维护映像。 例如,若要启用旧版组件功能:

    dism /image:"C:\ffumount" /enable-feature:legacycomponents
    

    若要查看可用选项,请运行 dism /image:<path to mounted image> /?

  4. 卸载 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
    

WIM、VHD 与FFU:映像文件格式的比较

在 Configuration Manager 中规划多播策略

捕获和应用 Windows 分区、系统分区与恢复分区

DISM 映像管理命令行选项

CreateFile 函数