DISM FFU = Full Flash Update,整盘镜像(包含全部分区表 + 所有分区);推荐在 WinPE 环境执行捕获 / 应用 核心 FFU 子命令:/Capture-Ffu捕获整盘、/Apply-Ffu写入磁盘、/Split-Ffu拆分 FFU 为 SFU 分片、/Optimize-Ffu跨磁盘大小适配优化

DISM FFU 配套链 全枚举实例(完整闪存更新 FFU,PE/WinPE 离线部署专用,管理员权限)

前置说明

  1. FFU = Full Flash Update,整盘镜像(包含全部分区表 + 所有分区,区别于 WIM 仅捕获文件);推荐在 WinPE 环境执行捕获 / 应用
  2. 核心 FFU 子命令:/Capture-Ffu捕获整盘、/Apply-Ffu写入磁盘、/Split-Ffu拆分 FFU 为 SFU 分片、/Optimize-Ffu跨磁盘大小适配优化
  3. 配套通用 DISM:/Get-ImageInfo查看 FFU 信息;/Mount-Image挂载 FFU 修改;/Unmount-Image卸载提交 / 放弃;/LogPath日志;/ScratchDir临时缓存目录
  4. 物理磁盘标识:\\.\PhysicalDrive0,用 diskpart list disk查询磁盘编号;路径带空格必须英文双引号包裹
  5. 限制:压缩 FFU 不能拆分;拆分 FFU 捕获时必须/Compress:none;应用 FFU 会全盘覆盖,清空目标磁盘所有数据

一、单命令实例

序号 命令 简要说明
1 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" 捕获磁盘 0 整盘,生成 FFU 镜像,指定镜像名称
2 DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0 将 FFU 镜像完整写入磁盘 0,全盘覆盖
3 DISM /Split-Ffu /ImageFile:"D:\images\win.ffu" /SFUFile:"D:\images\win.sfu" /FileSize:4096 拆分未压缩 FFU,每片 4096MB,生成 win.sfu、win2.sfu 等分片
4 DISM /Optimize-Ffu /ImageFile:"D:\images\win.ffu" 优化 FFU,支持恢复到容量更小的目标磁盘
5 DISM /Get-ImageInfo /ImageFile:"D:\images\win.ffu" 读取 FFU 镜像基础信息(名称、描述、版本)
6 DISM /Mount-Image /ImageFile:"D:\images\win.ffu" /MountDir:"C:\ffumount" /index:1 挂载 FFU 到本地目录,用于离线修改系统文件
7 DISM /Unmount-Image /MountDir:"C:\ffumount" /commit 卸载挂载的 FFU,提交保存所有修改写入 FFU 文件
8 DISM /Unmount-Image /MountDir:"C:\ffumount" /discard 卸载挂载 FFU,丢弃全部修改,不保存

二、双参数混合组合

序号 命令 简要说明
9 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /Description:"OEM出厂镜像" 捕获整盘 FFU,附加镜像描述文本
10 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /Compress:none 无压缩捕获 FFU,用于后续拆分 SFU 分片
11 DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SFUFile:"D:\images\win*.sfu" 应用拆分后的 SFU 分片镜像到磁盘 0
12 DISM /Split-Ffu /ImageFile:"D:\images\win.ffu" /SFUFile:"D:\images\win.sfu" /FileSize:4096 /CheckIntegrity 拆分 FFU 并开启完整性校验
13 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /LogPath:"C:\dism_ffu.log" 捕获 FFU,输出独立日志文件
14 DISM /Optimize-Ffu /ImageFile:"D:\images\win.ffu" /LogPath:"C:\opt_ffu.log" FFU 磁盘适配优化,输出日志

三、三参数混合组合

序号 命令 简要说明
15 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /Compress:none /Description:"Uncompressed for split" 无压缩捕获,带描述,为后续拆分做准备
16 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /LogPath:"C:\capture.log" /ScratchDir:"C:\temp" 捕获 FFU,自定义临时缓存目录 + 日志路径
17 DISM /Mount-Image /ImageFile:"D:\images\win.ffu" /MountDir:"C:\ffumount" /index:1 /LogPath:"C:\mount.log" 挂载 FFU 并输出挂载日志
18 DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0 /LogPath:"C:\apply_ffu.log" /ScratchDir:"C:\tmp" PE 下应用 FFU,自定义临时目录与日志

四、多参数复杂混合组合(4 个及以上参数,PE 生产部署配套链)

序号 命令 简要说明
19 DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /Compress:none /Description:"OEM Uncompressed" /LogPath:"C:\capture.log" 无压缩捕获整盘 FFU,填写描述,输出捕获日志(准备拆分)
20 DISM /Split-Ffu /ImageFile:"D:\images\win.ffu" /SFUFile:"D:\images\win.sfu" /FileSize:4096 /CheckIntegrity /LogPath:"C:\split.log" 拆分 FFU 为 4G 分片,完整性校验,输出拆分日志
21 DISM /Mount-Image /ImageFile:"D:\images\win.ffu" /MountDir:"C:\ffumount" /index:1 && DISM /Image:"C:\ffumount" /Enable-Feature /FeatureName:NetFx3 && DISM /Unmount-Image /MountDir:"C:\ffumount" /commit 挂载 FFU,离线开启.NET3.5 功能,提交修改并卸载镜像
22 DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0 /LogPath:"C:\apply.log" /ScratchDir:"C:\tmp" && diskpart /s "D:\scripts\fixpart.txt" PE 应用 FFU 镜像,写入日志,完成后执行 diskpart 修复分区标识

五、运维完整配套脚本片段(WinPE CMD,管理员)

@echo off
::1. 查看磁盘编号,确认PhysicalDriveX
diskpart /s listdisk.txt
::2. 捕获整盘为FFU,无压缩,准备拆分
DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM" /Compress:none /LogPath:"C:\capture.log"
::3. 拆分FFU为4GB分片
DISM /Split-Ffu /ImageFile:"D:\images\win.ffu" /SFUFile:"D:\images\win.sfu" /FileSize:4096 /CheckIntegrity
::4. 查看FFU镜像信息
DISM /Get-ImageInfo /ImageFile:"D:\images\win.ffu"
::5. PE环境将FFU恢复到目标磁盘
DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0 /LogPath:"C:\apply.log"

六、无效 / 边界说明

错误命令 原因
DISM /Split-Ffu 对默认压缩 FFU 拆分 压缩 FFU 无法拆分,捕获时必须/Compress:none
DISM /Apply-Ffu 写入正在运行的系统盘 在线系统无法覆盖系统盘,必须在 WinPE 执行 Apply-Ffu
DISM /Capture-Ffu /CaptureDrive:PhysicalDrive0 缺少\\.\前缀,物理磁盘路径格式错误
挂载 FFU 不写/index:1 FFU 仅支持索引 1,挂载 FFU 必须指定 /index:1
普通用户执行 DISM FFU 操作 捕获 / 应用 / 修改 FFU 必须管理员权限
DISM /Optimize-Ffu 旧版 PE Optimize-Ffu 最低要求 WinPE 1903+

七、运维场景快速选型

  • PE 捕获整机整盘 FFU 镜像:DISM /Capture-Ffu /ImageFile:"D:\images\win.ffu" /CaptureDrive:\\.\PhysicalDrive0 /Name:"Win11OEM"
  • PE 将 FFU 镜像恢复到目标磁盘:DISM /Apply-Ffu /ImageFile:"D:\images\win.ffu" /ApplyDrive:\\.\PhysicalDrive0
  • 无压缩 FFU 拆分为 4GB 分片:DISM /Split-Ffu /ImageFile:"D:\images\win.ffu" /SFUFile:"D:\images\win.sfu" /FileSize:4096
  • FFU 跨磁盘大小适配优化:DISM /Optimize-Ffu /ImageFile:"D:\images\win.ffu"
  • 挂载 FFU 离线修改系统,保存变更:DISM /Mount-Image /ImageFile:"D:\images\win.ffu" /MountDir:"C:\ffumount" /index:1
PS C:\WINDOWS\system32> dism /?

部署映像服务和管理工具
版本: 10.0.26100.5074


DISM.exe [dism_options] {Imaging_command} [<Imaging_arguments>]
DISM.exe {/Image:<path_to_offline_image> | /Online} [dism_options] {servicing_command} [<servicing_arguments>]

描述:

  DISM 枚举、安装、卸载、配置和更新 Windows 映像中的功能和程序包。可以使用的命令取决于提供的映像以及映像是处于脱机还是运行状态。


FFU 命令:

  /Capture-Ffu            - 将物理磁盘映像捕获到新的 FFU 文件中。
  /Apply-Ffu              - 应用 .ffu 映像。
  /Split-Ffu              - 将现有 .ffu 文件拆分成多个只读已拆分 FFU 文件。
  /Optimize-Ffu           - 优化 FFU 文件,使其其可应用于不同大小的存储
。

WIM 命令:

  /Apply-CustomDataImage  - 冻结自定义数据映像中包含的文件。
  /Capture-CustomImage    - 将自定义设置捕获到 WIMBoot 系统上的增量 WIM 文件中。捕获的目录包括所有子文件夹和数据。
  /Get-WIMBootEntry       - 显示指定磁盘卷的WIMBoot 配置项。
  /Update-WIMBootEntry    - 更新指定磁盘卷的 WIMBoot 配置项。
  /List-Image             - 显示指定映像中的文件和文件夹的列表。
  /Delete-Image           - 从具有多个卷映像的 WIM 文件删除指定的卷映像。
  /Export-Image           - 将指定映像的副本导出到其他文件。
  /Append-Image           - 将其他映像添加到 WIM 文件中。
  /Capture-Image          - 将驱动器的映像捕获到新的 WIM 文件中。捕获的目录包含所有子文件夹和数据。
  /Get-MountedWimInfo     - 显示有关安装的 WIM 映像的信息。
  /Get-WimInfo            - 显示有关 WIM 文件中的映像的信息。
  /Commit-Wim             - 保存对安装的 WIM 映像的更改。
  /Unmount-Wim            - 卸载安装的 WIM 映像。
  /Mount-Wim              - 从 WIM 文件安装映像。
  /Remount-Wim            - 恢复孤立的 WIM 安装目录。
  /Cleanup-Wim            - 删除与损坏的已安装 WIM映像关联的资源。

通用映像处理命令:

  /Split-Image            - 将现有 .wim 文件拆分为多个只读拆分 WIM (SWM) 文件。
  /Apply-Image            - 应用一个映像。
  /Get-MountedImageInfo   - 显示有关安装的 WIM 和 VHD 映像的信息。
  /Get-ImageInfo          - 显示有关 WIM、VHD 或 FFU 文件中映像的信息。
  /Commit-Image           - 保存对装载的 WIM 或 VHD 映像的更改。
  /Unmount-Image          - 卸载已装载的 WIM 或 VHD 映像。
  /Mount-Image            - 从 WIM 或 VHD 文件装载映像。
  /Remount-Image          - 恢复孤立的映像装载目录。
  /Cleanup-Mountpoints    - 删除与损坏的已安装映像关联的资源。

映像规格:

  /Online                 - 以正在运行的操作系统为目标。
  /Image                  - 指定脱机 Windows 映像的根目录的路径。

DISM 选项:

  /English                - 用英文显示命令行输出。
  /Format                 - 指定报告输出格式。
  /WinDir                 - 指定 Windows 目录的路径。
  /SysDriveDir            - 指定名为 BootMgr 的系统加载程序文件的路径。
  /LogPath                - 指定日志文件路径。
  /LogLevel               - 指定日志(1-4)中所示的输出级别。
  /NoRestart              - 取消自动重新启动和重新启动提示。
  /Quiet                  - 取消除错误消息之外的所有输出。
  /ScratchDir             - 指定暂存目录的路径。

若要获得有关这些 DISM 选项及其参数的详细信息,请在紧挨着 /? 之前指定一个选项。

  示例:
    DISM.exe /Mount-Wim /?
    DISM.exe /ScratchDir /?
    DISM.exe /Image:C:\test\offline /?
    DISM.exe /Online /?

 

使用DISM命令将WIM映像转换为FFU映像,您可以执行以下步骤:

  1. 加载WIM映像: 使用dism /Mount-Image命令加载WIM映像文件到一个临时目录中。假设安装映像文件为C:\path\to\install.wim,您可以执行以下命令:

    cmdCopy Code
    dism /Mount-Image /ImageFile:C:\path\to\install.wim /Index:1 /MountDir:C:\Mount
  2. 转换为FFU映像: 使用dism /Capture-Image命令将挂载的WIM映像转换为FFU映像。假设要将映像保存为C:\path\to\install.ffu,您可以执行以下命令:

    cmdCopy Code
    dism /Capture-Image /ImageFile:C:\Mount /CaptureFile:C:\path\to\install.ffu /Name:"Custom FFU Image" /Description:"Description of the image" /Compress:Recovery

    在这个例子中,/Name参数用于指定FFU映像的名称,/Description参数用于指定FFU映像的描述,/Compress参数用于指定压缩级别。

  3. 卸载映像: 转换完成后,卸载挂载的WIM映像:

    cmdCopy Code
    dism /Unmount-Image /MountDir:C:\Mount /Commit

    此命令将保存对映像所做的更改。

  4. 清理: 清理任何临时文件或目录。

请注意,转换为FFU映像的过程可能需要一些时间,具体时间取决于映像的大小和您的系统性能。

posted @ 2024-04-10 14:58  suv789  阅读(130)  评论(0)    收藏  举报