How to mount and unmount hard drives under Windows (the unix way)
Remove the drive letters using mountvol
or diskmgmt.msc
. Without a drive letter, they won't appear under Computer or Send To.
mountvol Q: /p
Using /p
will actually dismount the device. On older Windows versions, you only have /d
, which only unassigns the drive letter, but keeps the volume mounted.
Reassign when needed, using the volume ID printed by mountvol
:
mountvol Q: \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\
You can also mount the volume on an empty folder (Unix style) using the same tools:
mkdir C:\fs\backup-disk
mountvol C:\fs\backup-disk \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\
All these operations require Administrator privileges.
(In fact, you might even be able to directly use the volume ID in your backup scripts, without having to mount it anywhere. For example, \\?\Volume{1be3da43-6602-11e0-b9e6-f11e1c50f5b5}\projects
instead of Q:\projects
.)
Use DISKPART to set your disk offline
It will stay offline even after a restart or a new power on
Use DISKPART to set it back online
This can be done in scripts
command file to put disk 2 offline:
Offline.cmd
echo list disk > c:\windows\temp\namexxxx.none
echo select disk 2 >> c:\windows\temp\namexxxx.none
echo offline disk >> c:\windows\temp\namexxxx.none
echo exit >> c:\windows\temp\namexxxx.none
diskpart /s c:\windows\temp\namexxxx.none
erase c:\windows\temp\namexxxx.none
pause
command file to put disk 2 online:
Online.cmd
.
echo select disk 2 ........
echo online disk ......
.
Execute as administrator
The correct answer is using the /P parameter to mountvol (see the comments in the accepted answer to understand why /D is not enough) but that only applies to recent windows versions (NT kernel version 6 and up).
The devcon
utility as described in this answer works across all NT versions