Capture and apply Windows Full Flash Update (FFU) images
Deploy Windows faster on the factory floor by using the Full Flash Update (FFU) image format. FFU images allow you to apply an image of a physical drive, including Windows, recovery, and system partition information all at once directly to a different drive.
Unlike the file-based WIM format, FFU is a sector-based file container that stores one or more partitions. Sector-based imaging means that FFUs take less time to deploy, but have larger files sizes than WIMs. See WIM vs. VHD vs. FFU: comparing image file formats for information about the differences between image formats.
Starting with Windows 10, version 1903, you can optimize your FFUs into new portable FFUs where:
- The drive that an FFU is applied to can be smaller than the drive it is captured from.
- You can choose a partition to dynamically expand or shrink based on the size of the new drive.
- You no longer have to manage the recovery partition separately for differently-sized drives.
Note
Applying an optimized FFU requires Windows 10, version 1903; WinPE version 1903; or later.
Limitations
- If you don't optimize your FFU, the drive that an FFU is applied to has to be the same or larger than the drive it is captured from
- FFU captures of encrypted disks are not supported
- Captures of disks that have Volume Shadow Copy Service (VSS) enabled are not supported
- Splitting compressed FFUs is not supported
- Capturing an FFU captures and entire disk, with no mechanism to exclude specific files
- You can't capture an FFU of a hard drive that uses MBR-based hard partitions
What you need to work with FFUs in Windows
To capture, deploy, and mount FFU images with DISM, you'll need to work in a Windows 10, version 1709 or later; or WinPE for Windows 10, version 1709 or later environment. To deploy portable FFUs, you'll need WinPE for Windows 10, version 1903 or later.
To capture and deploy FFUs using the instructions below, you'll also need:
- A Windows PC that has been generalized with Sysprep. We'll refer to this as the reference PC. For a walkthrough on how to create an image that's ready for deployment, see the OEM Windows deployment lab.
- A PC to deploy the FFU image to. We'll refer to this as the destination PC. The hard drive on this PC will be overwritten, so make sure you're using a PC that doesn't have any information you want to keep.
- The latest version of the ADK, from Download the Windows ADK
- Storage
USB storage, formatted as NTFS with enough space to save the FFU. 16 GB is enough space to store an FFU of a basic Windows image. You can use the same USB drive for WinPE and storage if you follow the instructions for creating a multipartiton USB drive. For best performance, you want to maximize I/O between where your FFU is stored and the destination PC. For best performance use a USB 3.0 drive to store the image, and an internal SSD for the destination device.
or
Network storage where you can keep your FFU image. For optimal performance, use a 1 Gb or faster network.
Capture an FFU
Boot the reference PC using WinPE bootable media.
Identify the drive to which you'll be capturing the image from. You can use diskpart, or add Windows PowerShell support to WinPE and use Get-Disk for scriptability and more complex setups such as a server with multiple disks.
diskpart list disk exit
The output will list your drives. Make a note of the disk number in the
Disk ###
column. This is the value that you'll use when capturing your image.DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 238 GB 0 B * Disk 1 Online 28 GB 0 B DISKPART>
Use DISM to capture an image of all the partitions on the physical drive. For disk X:, the string used with
/capturedrive
will look like this:\\.\PhysicalDriveX
, where X is the disk number that diskpart provides. For example, to capture Disk 0, you'd use/CaptureDrive:\\.\PhysicalDrive0
.For more information about PhysicalDrive X, see CreateFile function.
To see command line options for capturing FFUs, run
dism /capture-ffu /?
or see DISM Image Management Command-Line Options. Note that you shouldn't have to specify a PlatformID when capturing a desktop image.The following command captures an FFU image of PhysicalDrive0 called WinOEM.ffu. The /name and /description arguments allow you to set information about your image. This information is displayed when you use
dism /get-imageinfo
. /name is required, /description is optional.DISM.exe /capture-ffu /imagefile=e:\WinOEM.ffu /capturedrive=\\.\PhysicalDrive0 /name:disk0 /description:"Windows 10 FFU"
This command also gives a name and description to the FFU image. Name is a required parameter.
Optimize an FFU
The /Optimize-FFU
DISM option allows you to choose a partition that will automatically expand or shrink after the FFU is applied to a disk:
Copy the FFU file to a technician PC running Windows 10, version 1903 or later. You can't run
/optimize-ffu
on the same disk as the captured FFU.Note
You can only run the
/Optimize-FFU
command on Windows 10, version 1903, or later.Optimize the FFU.
Dism /Optimize-FFU /ImageFile:flash.ffu
Note
By default, when you deploy Windows to a differently-sized drive the Windows partition will expand or shrink so that it can be as large as it can be. If you're using a data partition, you can choose to have this partition expand or shrink instead by using the
/PartitionNumber
option, for example:Dism /Optimize-FFU /ImageFile:flash.ffu /PartitionNumber:2
To learn more, see DISM Image Management Command-Line Options: Optimize FFU
If you plan to apply this FFU to drives that are smaller than the original drive, check your FFU to see what the new minimum drive size needs to be:
Dism /Get-ImageInfo /ImageFile:flash.ffu
Deploy Windows from WinPE using an FFU
Boot your destination PC to WinPE.
Note
If you're applying an optimized FFU, you have to use WinPE, version 1903, or later.
Connect a storage drive or map the network location that has your FFU file and note the drive letter, for example, N.
Identify the drive to which you'll be applying the image:
diskpart list disk exit
Note the drive number in the
Disk ###
column.Apply the image to the cleaned drive. Here, we're applying n:\WinOEM.ffu to Disk 0.
DISM /apply-ffu /ImageFile=N:\WinOEM.ffu /ApplyDrive:\\.\PhysicalDrive0
To see the commands available with /apply-ffu, run
dism /apply-ffu /?
or see DISM Image Management Command-Line Options.
Capturing and applying FFUs on differently-sized drives
If you've optimized the FFU, DISM automatically resizes the Windows partition (or selected partition) to expand or shrink to fill the available space.
If you don't optimize the FFU, or if you're deploying Windows 10, version 1809 or earlier, you'll only be able to apply the FFU to drives that are the same size or larger than the original. You'll also need to do some extra work to manage the recovery partition and partition sizes before and during deployment to make the best of use of space:
On the reference PC, install Windows with no recovery partition, and set up the Windows partition as the final partition on the drive. To set this up, use Windows Setup or a deployment script.
On the destination PC, deploy the FFU. For larger drives, there will be unused space at the end.
Using Diskpart, expand the Windows partition to fill the empty space.
Then, shrink the Windows partition to make room for the recovery partition.
Configure your recovery partition.
Example, using Sample scripts: create recovery partition.
ApplyRecovery.bat
Mount an FFU for servicing
You can use DISM to mount FFU images for servicing. Like with other image formats, you can mount and modify an FFU before committing changes and unmounting. Mounting an FFU for servicing uses the same /mount-image
command that you use for mounting other image types. When mounting an FFU, you'll always use /index:1
when mounting.
Unlike WIM images, FFU images get mounted as virtual hard disks. Files appear in the specified mount folder, but since FFUs can contain more than one partition but only have one index, DISM maps only the Windows partition from the mounted FFU to the mount folder.
To mount an FFU
Open a Command Prompt as administrator.
Mount the image using
dism /mount-image
. This example mounts D:\WinOEM.ffu to C:\ffumount:dism /mount-image /imagefile:"D:\WinOEM.ffu" /mountdir:"C:\ffumount" /index:1
To see available command line options for
/mount-image
rundism /mount-image /?
or see DISM image management command line options.Service your image. For example, to enable the legacy components feature:
dism /image:"C:\ffumount" /enable-feature:legacycomponents
To see available options, run
dism /image:<path to mounted image> /?
orUnmount your FFU image and commit or discard changes. If you use /commit, your changes will be saved to your FFU file.
To unmount your FFU and commit changes, you'd use
/unmount-image
with the/commit
option:dism /unmount-image /mountdir:"C:\ffumount" /commit
If you decide to not keep the changes you've made to the FFU, you can use
/unmount-image
with the/discard
option:dism /unmount-image /mountdir:"C:\ffumount" /discard
Related topics
WIM vs. VHD vs. FFU: comparing image file formats
Planning a Multicast Strategy in Configuration Manager
Capture and Apply Windows, System, and Recovery Partitions