8

In Win7 you can attach a VHD as a drive, however after a reboot the VHD is no longer attached. Is there anyway to make it permanent?

Wedge
  • 1,617

8 Answers8

11

I don't see a way to re-attach it at boot "natively". You could use a "startup script" with the DISKPART commands to re-attach it, or deploy a script in the "Startup" program group to re-attach it after logon. That's disappointing and hackish, but at least it would give you what you wanted.

@echo off
SET TEMPFILE="%TEMP%\%RANDOM%.TXT"
echo SELECT VDISK FILE=(vdisk filename here)>%TEMPFILE%
echo ATTACH VDISK>>%TEMPFILE%
DISKPART /s %TEMPFILE%
del %TEMPFILE%

It's sad, but it's the best I can see to do for now...

Evan Anderson
  • 142,957
1

You can try using VHD attach. It has option to attach VHD after each boot. Since one part runs as service, no UAC prompt will bother you.

Josip Medved
  • 1,814
1

VHD attach program worked for me. It attaches VHD for all the users. No need to create a start up script or scheduled task. The program attaches VHD itself. you just need to install the program. Attach your VHD file once or go to options -> Add the VHD file and select Auto Attach. Thanks Josip. You are awesome

1

I made a program for this, BMVHDloader.com, Free and still updated all the time. It will be a service on the next release. And its free to distribute since i needed it and the above mentioned was not available. I figure if i needed it and it was not around then i would let everyone have it for free. The one mentioned above (" VHD Attach" ) i believe was made with VB Also this month i am releasing a version for server 2003 and XP. :) Please pass to everyone that needs it and check back for updates on my site. Happy VHD'ing

1

Another way is to attach on service level. You need instsrv.exe and srvany.exe from Windows Resource Kit Tools. Put them to any folder with the following files:

disk-W-install-permanently.cmd

@echo off
echo RUN THIS AS ADMINISTRATOR!
pause
cd %~dp0
copy srvany.* c:\windows\system32\
copy srvany-attach-disk-W c:\windows\system32\
instsrv disk_W_attach "c:\windows\system32\srvany.exe"
regedit disk-W-install-permanently.reg
pause

disk-W-install-permanently.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\disk_W_attach\Parameters]
"AppEnvironment"=""
"Application"="c:\\windows\\system32\\cmd.exe"
"AppParameters"="/c srvany.bat"
"AppDirectory"="C:\\Windows\\System32"

srvany.bat

@echo on 
set log=%temp%\srvany.log

echo log: Running at %date% %time% >>%log%
diskpart /s srvany-attach-disk_W >>%log%
net stop disk_W_attach

srvany-attach-disk-W

select vdisk file=”D:\private\vm\HDD\disk_W.vhd"
attach vdisk
exit

dir /b

disk-W-install-permanently.cmd
disk-W-install-permanently.reg
instsrv.exe
srvany.bat
srvany.exe
srvany-attach-disk-W

Now edit script srvany-attach-disk_W to point to your VHD, execute disk-W-install-permanently.cmd with admin privileges and reboot. That's all!

0

Put the same diskpart /s command into task sheduler with 'highest privileges' checked and 'run it on computer startup'. It works for me (not for boot disk), mounts vhd even before user logs on.

0

There is no native way to do this - Windows does not currently persist attached VHDs across a reboot. A system startup script is going to be your best bet.

mikekol
  • 266
0

I created a batch file that uses diskpart /s and specifies a script to use that attaches my various VHD files. Then I created a scheduled task to execute during startup.

Here is a page I created with a step by step process to do it.

http://coding.infoconex.com/post/2009/11/26/Automatically-attaching-VHD-files-in-Windows-7-and-Windows-2008.aspx