How to Create and Permanently Attach a Virtual Hard Disk in Windows 7

Virtual Hard Disk (VHD) is a file, created in Windows 7, that behaves as a separate usual hard disk drive of the computer. You can keep your favorite files and folders, apply disk encryption etc. Even, you can boot from that virtual disk drive by configuring the boot manager. This tutorial shows how to create a virtual disk drive in Windows 7, attach an existing VHD and lastly, the procedure of making the attachment permanent in step by step.

Create Virtual Hard Disk (VHD)

You can create a virtual hard disk from Computer Management wizard.
Right-click on My Computer and select “Manage”.

or, type compmgmt.msc at the Windows 7 start menu search box and hit Enter. The Computer Management wizard will appear. Now follow the steps below.
Right-click on “Disk Management” under “Storage” and click on “Create VHD”.

In the next wizard select the location and the VHD file name by clicking on “Browse”, put the size of the virtual hard disk in MB and click on OK.

This will create the Virtual Hard Disk with the level Disk 1.

Now right-click on Disk 1 and select initialize then click “Next”.

After initializing the disk, you have to allocate the disk space. So right-click on the unallocated space and select “New Simple Volume”.

In “New Simple Volume” wizard put the volume size and click on “Next”.

Assign a drive letter for the drive by choosing from the drop down list of available letters. Click on “Next”.

Before formatting the volume, choose the file system, give a volume level and click on “Next” then “Finish”.

You are done! You cannotice that your new virtual hard disk has been listed with the other disk drives.

Attach an existing Virtual Hard Disk

Right click on My Computer icon then select “Manage” to open Computer Management wizard. Now under the “Storage” entry, right-click on “Disk management”. Select “Attach VHD” and locate the existing vhd file and click on OK. That’s all.
So after creating a new Virtual Hard drive or attaching an existing one, you can access it from the Windows 7 explorer window.

But the problem is that every time you restart your computer, you lost the virtual drive and you’ll have to reattach the VHD again. There is a simple tricks by which you can make the virtual drive permanent and you won’t have to reattach that after every time you start your computer.
Related: Create Virtual Drive for any folder.

Permanently attach Virtual Hard Disk in Windows 7

To make the virtual hard disk permanent, create a batch file to attach the VHD and run that at start up by creating a registry entry. Here is the complete procedure.
Creating the batch file
Copy the following code and paste in a notepad document.

@echo off
SET TEMPFILE="%TEMP%%RANDOM%.TXT"
echo SELECT VDISK FILE=Your vhd file name with location >%TEMPFILE%
echo ATTACH VDISK>>%TEMPFILE%
DISKPART /s %TEMPFILE%
del %TEMPFILE%

Replace the high lighted part with the vhd file name along with location. As for example  E:myvirtualdrive.vhd
Now save the file as some_name.bat. Also change the “Save as type” to “All files” before saving. After creating the batch file copy the file (some_name.bat) and paste at C: > Windows > System 32 folder. When pasting the file there you will get a security message. Just click on “Continue”.
Creating the registry entry
Press Win key + R and type “regedit” and hit Enter to open the registry editor. Now navigate to the following path from the left pane of the editor:

HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > Run

Now create a new string value under “Run”. Right-click on the empty space of the right pane and select New > String Value.

Give a name of the value. Here it is VHD. Now right click on the value VHD and select “Modify”.

At the Value data field put “c:windowssystem32some_name.bat” and click OK.

Restart your computer. You cannotice the virtual drive that you created or attached has been permanently occupied in the explorer or any other places.

33 COMMENTS

  1. I tried this just now – It doesn’t seem to be working for me. I’ll try it again, but when I restarted my computer the drive didn’t even exist.

  2. Tried it a second time. Still no luck, when the computer restarts, there’s no virtual drive listed in my computer. :/
    The only thing that comes up as different is that when I click atach to the virtual disk, it tells me that it’salready attatched. – could this have something to do with my problem?

  3. Anj: The procedure works fine. I tested that several times. Confirm that you are creating the registry key at the exact location where i said. One more thing when you copy the batch script then please retype the ” signs from your keypad.The problem may be with the rich font.

  4. I created a VHD on a network drive and was able to do a backup to it. So it worked! However, when I try to reattach to the drive later after rebooting, I get the error message: “This version does not support this version of the file format”. Any ideas?

  5. diskpart -s doesn’t seem to work for me. The command prompt just flashed and closed. But it worked if I did line by line inside diskpart command prompt.
    What am I missing?

  6. Put the following code:
    @echo off
    SET TEMPFILE=”%TEMP%%RANDOM%.TXT”
    echo SELECT VDISK FILE= put your VHD file name with its location >%TEMPFILE%
    echo ATTACH VDISK>>%TEMPFILE%
    DISKPART /s %TEMPFILE%
    del %TEMPFILE%
    Remember that if copy this code then paste, you should re-type the ” (quotes) from your keyboard.
    Let me know if this solved your problem.

  7. you have to put the path in “”
    e.g.
    @echo off
    SET TEMPFILE=”%TEMP%%RANDOM%.TXT”
    echo SELECT VDISK FILE= “C:virtuadriveyouspecify.vhd” >%TEMPFILE%
    echo ATTACH VDISK>>%TEMPFILE%
    DISKPART /s %TEMPFILE%
    del %TEMPFILE%

  8. Yea I did all that, changed the ” and still nothing everytime I restart. Getting annoying. Followed it step by step.
    Working with windows 7. I restart it and comes up with CMD saying do I want to make those changes, click yes and nothing.?????

  9. Has anyone confirmed that their batch file actually works before using it in a reboot scenario? Detach the VHD and run the batch. If that works, then figure out 1. Why the batch is not executing at boot time and/or 2. Why it does not attach the vdisk..
    Also, all versions of Windows may not be supported. I know that you cannot _boot_ to a Windows 7 Home edition vdisk. Perhaps there are restrictions on mounting at boot time as well…

  10. I created the script and tested it on Win7-Pro and it works. The VHD is attached and usable. I then made the regedit change and rebooted. It brought up Notepad with the script in it. I tired changing the default assignment of .bat files from Notepad to CMD.exe and made things worse. Now it brings up a Command window which just sits there. I can drag a copy of my .bat file into the window and execute it, but that is way clumsy. I tired reversing the default assignment of .bat files back to Notepad, but that doesn’t take. It is now permanently glued to CMD.exe. A
    Any idea how to undo that assignment and what the assignment should be?

  11. Dear All,
    Its attach, but each and every restart its reloading, again i need give permission
    Is there any solution for this problem
    Thanks in advance, i hope i may get good response from your end

  12. This worked perfectly! Is there a way to make the VHD available while booting the OS to make the choice of other OS installed in the VHD?

    • I created the vhd on my windows 7 system. tested the batch file and it work perfectly when I started 7. I loaded windows 10 on the virtual drive. I restarted my laptop and chose start windows 10 in the boot manager I received this error:VHD_BOOT_INITIALIZATION_FAILED.Do I need to put the batch file in another location or make another entry in the registry?

  13. am I lost something? I don’t understand the 3rd picture. where is the ” vhd_sample.vhd ” come from? does it download from website? please help me….

  14. It’s confusing that it says ‘put “c:windowssystem32some_name.bat” ‘ but in the image you’ve typed it with s. Are we meant to put the s in or not?

  15. Simple VHD Manager is portable freeware which helps VHD users simplify some of these operations:
    – You can easily create VHD/VHDX files
    – You can attach and detach VHD/VHDX/ISO files via drag and drop
    – You can permanently attach a virtual hard disk in Windows 10 , Windows 8,1 , Windos 8, Windows 7
    – You can easily add and/or remove VHD/VHDX/ISO files to the boot menu

  16. I tested edit the registry and this not work for me, so I opted for create a service than launched the disk on every reboot this was the best option and works perfectly.
    Remember.
    – First test your bat works manually
    – Create the services with NSSM
    – Enjoy
    Believe me I try make the registry work for serveral hours without success!

  17. i had create one virtual drive but some registry change then it cannot display to me how can retrieve that virtual drive because i had store some data on that drive

  18. Why do you label your auto attach section as “Permanently attach Virtual Hard Disk in Windows 7”? This is not accurate as the disk number the VHD is attached as changes depending on what other drives you have configured.
    EG if you have a usb stick inserted one day when you boot, the VHD gets one disk number but if the USB stick is missing next time you boot the disk number will be different from the last boot.

  19. it works if you use the \ in the paths, which he leaves out.
    in the script he gives example of E:myvirtualdrive but is should be E:\myvirtualdrive

LEAVE A REPLY

Please enter your comment!
Please enter your name here