Before you start
Objectives: learn how to mount images, make changes, and comit changes by using ImageX and DISM tool.
Prerequisites: you have to have WAIK for Win 7 installed.
Key terms: image, mount, dism, wim, imagex, unmount, commit
Image Location
We have our DVD in our DVD drive, so let’s find our image. We will browse to the [DVD Drive]:\sourcesfolder. There we can find ‘install.wim‘ image.
Image 192.1 – install.wim Image Location
Install.wim, which is a Windows image file, stores all five Windows 7 edition (we can see them below the install.wim image). Because of Single Instance Storage, if some file is common between all five of those editions, the wim file will only store one copy of that file. That’s why our image is only 2,1 GB in size for all editions of Windows 7.
Now, we will copy install.wim image from the DVD to our hard drive, to the C:\images folder in our case. We will also create new folder inside of C:\images folder, which we will use to mount our image. We will call it ‘mount’. The content of C:\images folder now looks like this:
Image 192.2 – images Folder Content
Remember, in order to use ImageX and DISM we have to have Windows 7 Automated Installation Kit (WAIK) installed on our computer. Next, what we need to do is run the Deployment Tools Command Prompt from the Start Menu > Microsoft Windows AIK. We will make sure to open it with elevated privileges (right-click, Run as administrator).
Mount Image Using ImageX
To mount our image we can use ImageX or DISM tool. In this case we will use ImageX. First, we will gather information about our image. To do that we will enter the following command: imagex /info c:\images\install.wim (imagex /info ‘image source’).
Image 192.3 – Gathered Information
As we can see, we get a report in xml format. At the top we can see image GUID, number of images, compression, etc. Below we can see Available Image Choices. This portion is important because here we see which index number belongs to which edition of Windows. So, for example in our case, we see that Image Index ‘5’ belongs to the Windows 7 Ultimate edition. Another example is Home Premium which has index number 3.
Image 192.4 – Ultimate Edtition
Image 192.5 – Home Premium Edition
When we mount an image, we have to designate which image edition we want to mount. We will do that using particular Index Number. Let’s try that now. We will mount our image using the /mountrwparameter. We use /mountrw so we can read as well as write to that image (mount rw, read-write). If we only want to read the image, we would use the /mount parameter. So, the whole command is: imagex /mountrw c:\images\install.wim 5 c:\images\mount.
Image 192.6 – Mounting in Progress
The c:\images\install.wim is the image we are mounting. Number 5 is the index number and it determines that we want to mount the Windows 7 Ultimate edition. C:\images\mount is the folder which we use to mount our image.
Remember, we don’t have to use the image from the DVD. We could also use some image that we prepared ourselves. Now, when we mount our image, the content from the wim image (install.wim in our case) is extracted and copied to our mount folder (C:\images\mount in our case). When the mount is complete, we can go to that folder and browse for files.
Image 192.7 – Content of mount Folder
Remember, wim image stores files inside the image trough a file-based mechanism instead of sector based mechanism. That means that we can easily access the content of the wim file once it is extracted using ImageX or DISM, and also work with it as we like. We can copy files from it, add new files, install new drivers, enable or disable features and language packs. All files that we see in the mount folder will be copied to our hard drive when the actual installation happens. Let’s see the Users folder.
Image 192.8 – Users Folder
We can add new folders and files to that image. Just for demonstration we will add new folder named ‘info’ and a text file named ‘Read me’ inside of the mount folder. We can create our text file somewhere else on our computer and copy it to the mount folder. We have to have administrative privileges to copy our text file to the mount folder.
Image 192.8 – info Folder and Read me file Added
So, we are actually making changes to our image as if we are sitting on the machine with the loaded Windows 7 Ultimate. We have access to all files.
Unmounting
After we have made all changes we will unmount our image. When we unmount our image with ImageX, we have a choice of either committing the changes (saving the changes that we made in the wim image), or discarding all changes. If we run the unmount command without the /commitparameter, the changes we made will not be saved.
To unmount our image and save all changes we will enter the following command: imagex /unmount c:\images\mount /commit. Also, we should exit the mount folder in Explorer before we unmount our image.
Image 192.9 – Unmounting Successfull
In our command we use the /unmount parameter to unmount our image. We had to specify the location of our mounted image, which is in our case C:\images\mount folder. Also we use the /commitparameter to save all changes that we made to our image. Also notice that we got an error but we don’t actually have to worry about that in this case. This error happened because we had our mount folder opened in Explorer when we were unmounting our image.
Mount Image Using DISM
Now we will use DISM to mount the same image again. The command to mount image using DISM is:dism /mount-wim /wimfile:C:\images\install.wim /index:5 /mountdir:C:\images\mount. The /mount-wim parameter tells DISM that we want to mount existing image. With /wimfile parameter we specify which image we want to mount. With /index parameter we specify which edition we want to mount. With/mountdir parameter we specify where we want to mount our image.
Image 192.10 – Mounting Error
Notice that we got an error. The specified image is already mounted for read/write access. This means that the image somehow is still mounted. We can try and unmount our image again using ImageX tool, but this time without the /commit parameter. If we used DISM to mount our image we should try and unmount our image, without committing changes. Also, to recover from this error we can try and use theimagex /cleanup command to delete all resources associated with mounted wim image that has been abandoned. If that doesn’t work we can also try and run dism /cleanup-wim command. If that doesn’t work, we can try and restart our machine. If that doesn’t work we can try and use another mount folder. If that does not work, we have to clear all our temporary directories, and also in Registry browse to “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images” and delete any keys below this.
Errors can occur because of various reasons, like corrupt drivers, viruses, etc. We should always have a backup of our image, because our images could get corrupt when we are working with it.
Image 192.11 – ImageX Cleanup Command
Now let’s try to mount our image using DISM again. This time everything works as expected.
Image 192.12 – Mounting Completed Successfully
Once the mounting is complete let’s verify that the changes we made are still there. Let’s browse to our mount folder.
Image 192.13 – Mount Folder
As we can see on the picture, our ‘info’ folder and ‘Read me’ text file are there. Now, DISM gives us a bit more options. We can use DISM with the /get-mountedwiminfo parameter to see all mounted images.
Image 192.14 – Mounted Wim Info
If we had more than one image mounted we would see them all. We can also use DISM to check the edition of the mounted image. To do that we would enter the command: dism /image:c:\images\mount /get-currentedition. The /image parameter specifies the mounted image we want to check, and /get-currentedition is used to check mounted edition.
Image 192.15 – Check Mounted Edition
Notice that the current edition is Ultimate. We can also use the /get-drivers parameter to see any installed third-party drivers in the mounted image.
Image 192.16 – Get Drivers
In our case there is only one third-party driver in the driver store. Using DISM we can add drivers or even remove drivers from the image. Next, we can also use the /get-features parameter.
Image 192.17 – Get Features
Using /get-features parameter we can view all available features on the edition of Windows that has been mounted. We can see the feature name and the status (enabled or disabled).
Unmounting
Once we are done working with the image, we can unmount our image using the /unmount-wimparameter. We have to specify the mount directory with the /mountdir: parameter. Also, we can use either the /commit parameter (which will save the changes that we made to our image), or use the/discard parameter if we don’t want to save our changes. In our case we will not save any changes. The command is: dism /unmount-wim /mountdir:c:\images\mount /discard. We should exit the mount folder before we unmount it.
Image 192.18 – Unmounting Completed Successfully
Image was unmounted, changes were discarded and files were closed.
Remember
In order to use ImageX and DISM we have to have Windows 7 Automated Installation Kit (WAIK) installed on our computer. When mounting images we have to specify which image do we want to mount and where do we want to mount it to. When the mount is complete we can access and work with all files in the mount folder. When unmounting we can decide if we want to keep the chages we made to our image.
Commands that are mentioned in this article
ImageX commands:
- imagex /info c:\images\install.wim – gather information about install.wim image
- imagex /mountrw c:\images\install.wim 5 c:\images\mount – mount install.wim image with index number 5, with read-write access, to the mount folder
- imagex /unmount c:\images\mount /commit – unmount image from the mount folder and commit all changes that we made
- imagex /cleanup – delete all resources associated with mounted wim image that has been abandoned
DISM commands:
- dism /mount-wim /wimfile:C:\images\install.wim /index:5 /mountdir:C:\images\mount – mount install.wim image with index number 5 to the mount folder
- dism /getmountinfo – see all mounted images
- dism /image:c:\images\mount /get-currentedition – check edition of the mounted image
- dism /image:c:\images\mount /get-drivers – check drivers on mounted image
- dism /image:c:\images\mount /get-features – check features on mounted image
- dism /unmount-wim /mountdir:c:\images\mount /discard – unmount image from mount folder and discard all changes
Paths that are mentioned in this article
- [DVD Drive]:\sources – folder on DVD installation media which contains image file which we used in this tutorial
- C:\images – folder on our computer where we have copied install.wim image
- Start Menu > Microsoft Windows AIK > Deployment Tools Command Prompt – path to the Deployment Tools CMD