I have some folder, say C:\foo I want to mount as drive M:\
In linux I would do this with a bind mount.
You can use the subst command in Windows.
subst m: c:\foo
To make a persistent redirection, you can edit the registry. Add a string (REG_SZ) value to:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
Set the name of the value to the drive letter (e.g. M:), then the data to:
This method will work across logins and reboots. I tested this on Windows 2008, so it should also work on Vista, XP, 2003 and 2000.
Subst also works in Vista:
Associates a path with a drive letter.
SUBST [drive1: [drive2:]path]
SUBST drive1: /D
drive1: Specifies a virtual drive to which you want to assign a path.
[drive2:]path Specifies a physical drive and path you want to assign to
a virtual drive.
/D Deletes a substituted (virtual) drive.
Type SUBST with no parameters to display a list of current virtual drives
Subst is the correct answer. You should be aware that subst is a per-session setting. It goes away when you log out and if you use runas to create a secondary logon context your subst-drive won't be there for those apps.
You can create a shortcut (.lnk) in your startup group to re-create those subst drives. The target property of the .lnk needs to be something like this:
C:\Windows\System32\cmd.exe /c subst S: C:\Some\Extremely\Obscure\Path\Of\My\Own\src
We use this technique to ensure that all developers build debug symbols with the same path from S:\
There is also a visual subst applet out there.
Another way to do this, that perhaps plays a bit better with having it mounted on start, is to use the trick at http://windows.microsoft.com/en-us/windows7/Create-a-shortcut-to-map-a-network-drive (i.e. My Computer -> Tools -> Map Network Drive) and take advantage of the fact that your local machine is a network host; I have just mounted, for example,
\localhost\Users\me\Documents\My Dropbox\Portable Music
to M: this way. You might be able to use \localhost\C$\ to access everything, but I had some trouble with that here (although it's worked for me elsewhere).