Mount and Unmount Windows 7 Image Using ImageX and DISM

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.

install.wim

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:

images Folder

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’).

Gathered Information

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.

Utlimate Edition

Image 192.4 – Ultimate Edtition

Home Premium Edition

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.

Mounting-Progress

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.

Content of Mount Folder

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.

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.

Read me

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.

Unmounting Successfull

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.

Mounting Error

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.

ImageX Cleanup

Image 192.11 – ImageX Cleanup Command

Now let’s try to mount our image using DISM again. This time everything works as expected.

Mounting Using DISM Success

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.

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.

Wim Info

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.

Current 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.

Drivers

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.

Features

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.

Unmounting Successfull

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