Win32-based UI application for backup and restore of Windows-based system images (Windows partition) using Windows Imaging Format (WIM) in WinPE environment.
The UI application "WIM-Backup" offers the possibility to create offline backups of Windows partitions (e.g. hard disk C:) in a WinPE environment. The Windows Imaging Format (WIM) is used for this purpose.
WIM-Backup is a Win32 application created in (Microsoft) C and Visual Studio 2010. Of course, you can also compile the project using a newer version of Visual Studio, such as 2019, or you can use an already compiled release version.
WIM-Backup offers a free backup option for a Windows-based system. So you don't always need a commercial software.
In the process of troubleshooting and fixing bugs on Windows 10-based systems, I repeatedly had to perform new installations of the operating system. This process proved to be very time-consuming in some cases. So I came up with the idea of backing up the Windows image so that it could be restored without much effort if necessary. This was the birth of WIM-Backup.
The solution consists of the following four components:
The following sketch roughly illustrates the essential relationships.
The instructions described below are necessary because the solution requires the use of a WinPE-based boot medium. However, this must not be made available for licensing reasons.
In short: I am not allowed to provide a bootable ISO file with the solution. You will have to create it yourself.
Assuming that the processing of the previous steps was successful, the next step is to create a WinPE-enabled boot medium. This contains the WIM-Backup solution. To do this, start the Deployment and Imaging Tools Environment with administrative privileges.
Copy the amd64 directory to a folder that does not yet exist, for example C:\Temp\media.
Tip: Copy the desired commands to the clipboard (to the right of the respective command), this way you can speed up the creation process considerably.
copype amd64 c:\Temp\media
dism /mount-image /imagefile:C:\Temp\media\media\sources\boot.wim /mountdir:C:\Temp\media\mount /index:1
mkdir C:\Temp\media\mount\Tools
You also need to copy the winpkeshl.ini file to C:\Temp\media\mount\Windows\System32.
Finally, the mounted image must be un-mounted and the WinPEMedia ISO file must be created.
Do not forget to close all windows/files/applications that are open on the mounted directory. Otherwise, DISM will complain that it cannot complete the unmounting process.
dism /unmount-image /mountdir:C:\Temp\media\mount /commit
cd ..
cd "Windows Preinstallation Environment"
MakeWinPEMedia.cmd /iso C:\Temp\media C:\temp\wim-backup-114.iso
Of course, any other tool, such as Ventoy, can also be used for this purpose - so it doesn't necessarily have to be Rufus: Ventoy on GitHub
The following animation shows WIM-Backup in action when creating a backup.
For more information about WIM backup, such as how to use it, see the Wiki.
It is very difficult to give a general answer to this question. I estimate the time required to work through the instruction steps at around 30 to 60 minutes.
The issue is with the license terms. According to this, I am not allowed to provide a pre-built image based on WinPE. That is the reason why every developer has to create his own ISO image. The internal use of this image (within the own team) should then not be a problem.
WIM-Backup uses the dism.log file to identify possible errors. To do this, this file is checked for the occurrence of the pattern "Error" and a general error message is issued after a backup/restore operation is completed.
You can find the dism.log file under the following file path: %systemdrive%\Tools\dism.log. Here, the %systemdrive% environment variable in WinPE normally points to the x:\ drive.
Yes, the list below shows the currently known restrictions:
Thanks to all for using WIM-Backup.
Please refer to the Code of Conduct for this repository.
This program code is provided "as is", without warranty or guarantee as to its usability or effects on systems. It may be used, distributed and modified in any manner, provided that the parties agree and acknowledge that the author(s) assume(s) no responsibility or liability for the results obtained by the use of this code.