WIndows 10 & symbolic links problems

I have a dual boot configuration composed of Windows 7 and Windows 10. Both are configured a C: disk as system and D: as data disk, which includes Users directory. And I have also another (physical, too!) disk, let's call it V:, with photos and other stuff.

On Windows 7, to access photos from D: disk I've made a symbolic link (junction) like this (historical reasons):

mklink /j d:\photos v:\photos

And I can fully access all folders in d:\photos. So I tried to do the same on Windows 10, but it's not working properly as I wish. I can enter the d:\photos, but no other sub-directory is accessible neither I can write anything inside d:\photos. But I can access v:\photos without problems...

If I click with the Windows Explorer on for ex. d:\photos\folder1, I get "The system cannot move the file to a different drive". If I check security tab on that folder, I find the message "The requested security information is either unavailable or can't be displayed".

I've already tried a few things, but without success. Can be the problem that C: and D: are on the same SSD, and V: is another HD? Any ideas what to do?

Thanks!


Solution 1:

While junctions are supported across local drives, you will probably have better luck with actual directory symbolic links. Win7 (everything since Vista, more specifically) supports these, though XP and older do not. Symlinks store actual destination names (so, as long as the other drive is V: on both OSes, it should work). My best guess is that junctions may use an identifier other than drive letter and when you switch OSes, some of that identifying data isn't understood by the other OS. They obviously don't just use the name, or you would be able to make a junction to a mapped network drive, and you can't.

The syntax to create a true symlink for a directory is the same as creating a junction, except use the /D flag for mklink, rather than /J. Note that, by default, only Administrators can create symlinks (not sure why this is enforced for symlinks and not for junctions, but c'est la vie). So, launch Command Prompt as Admin (and yes, it must be CMD; mklink is a CMD built-in, not its own executable that could be called by, say, Powershell) and try mklink /d d:\photos v:\photos.

Note that you can also use mklink without any flags to create file symlinks, or with the /H flag to make file hard links. Not relevant here, since you're trying to link directories rather than files, but potentially useful info for the future. Most people aren't aware that NTFS supports hard links (since... Windows 2000, I think?) and symlinks (since Vista), even if they know about junctions (which aren't quite a full symlink, or you could create one to a network drive).

Solution 2:

I had the same issue; this seems to be caused by changing the install location of apps to another drive.

What solved it for me was setting the save location for new apps back to C, and then rebooting into command prompt (hold shift while restarting) and deleting "System Volume Information\wpappsettings.dat" on the drive in question.