Since getting my first SSD a few years ago, I've found the use of the command line utility mklink absolutely invaluable to managing the limited space SSDs provide.
I use it for moving steam games, user and program data directories, and any programs accidentally installed on my SSD. Mklink creates file system level 'shortcuts' which allow you to move a directory to another location/drive and link it back to the place where it is expected to be, and any program trying to access the link is redirected to where it points.
But I've noticed that there isn't really much talk of mklink on these forums (that I've seen in accessible places anyway), I was wondering if people know about this great resource for SSD management, or if it's not as widely known as I think it should be
I'm considering writing a guide to using mklink, but not sure if it's really needed. Thoughts?
I highly go against using "links" from a SSD to an HDD. There's just too much that could go wrong...I like the "Native" way and installing whatever you need manually via C or D drive.
To an inexperienced user - links can possibly cause a catastrophe!
That's what I prefer too, but a link is the only way to install the steam application on the SSD and then install the games on the HDD. I don't mind waiting for games to load, but I can't stand waiting for the hard drive to wake up and start spinning just to start steam.
To an inexperienced user - links can possibly cause a catastrophe!
Well, I was planning on posting it on Tom's Hardware, and not Facebook
(sorry, couldn't resist that once I thought it)
The idea of being against a tool is kind of strange. They aren't dangerous if used properly, and they don't 'break' in such a way that you lose the data your linking to (worst case scenario, if your target changes you just need to remake a link). The only time you can get into trouble is if you try to move (the wrong) components of windows.
I hate the idea of being forced to use my computer differently to keep data off my SSD. The fact is many things automatically store to your C drive, or default there, and putting them elsewhere is an ongoing chore. While I also natively install programs to my HDD, if I forget to do so, it's much simpler to move and link than it is to uninstall and reinstall.
To windows only people the idea of symlinks is scary, to anyone who's comfortable with POSIX OS's symlinks come naturally. The entire POSIX world is built on the idea of symbolic links. NT actually makes heavy use of them internally, you just don't see them as a user.
All a symlink does is create an entry in the local file table that points to a different volume, it's a way to remap storage and organize folders / files into a more logical way then random drive letters.
Assume a 80GB SSD as your root (C:\) drive, and a 1TB HDD as your data drive (D:\). You can map folders on the "D:" drive to the "C:" drive in any location you want.
mklink /d C:\Games D:\Stuff\Games
That will create a folding under C:\ named Games that references to D:\Stuff\Games, to ALL programs this folder will appear to be a native folder to the C volume. This is indispensable as you can link folders in as many ways as you want. I like to have certain games on my SSD but others on my HDD, they all are installed inside the exact same folder yet physically reside on different volumes.
You can go one step further with Windows 7 and create symlinks to folders on network shares.
C:\Games\Emulators (local folder for emulators)
Z:\Data\Emulators\PSX-Images (network share that holds ISO's)
And now all access to that folder will be done over your network share. The benefit of this is that you can sync common files across all PC's in your home. Instead of each PC having it's own copy of the PSX-Images folder, each can share the exact same set of data. You can get really creative, and recreate the power of POSIX file systems inside NT.
A slightly more advanced method is to mount your HDD as a folder instead of a drive letter. NT allows you to mount volumes to NTFS folders instead of needing a drive letter for everything.
C:\Games can be the mount-point of the 1TB data HDD.
Then create a folder named
mklink /d c:\Games\Game1 C:\SDD\Game1
"Game1" now shows up along the other games in your Game HDD volume but is instead residing on the SDD (for whatever reason). You can use this technique to get granular with which data / programs you want to accelerate with the SDD.
Unfortunately Windows NT doesn't allow you to divide the OS itself onto different volumes like POSIX OS's do. C:\Windows, C:\Program Files and C:\Program Files (x86) all need to reside on the same root volume, otherwise Windows NT can start acting unpredictably.
So there you go, a quick and dirty guide on how to use symlinks for mapping directories. You can actually map files as well, that's a bit more complicated and required to dissect program installations.
There is a possibility that this can be applied to the unpleasant Winsxs-zilla, you can move from my dear ssd to my new HDD?
To windows only people the idea of symlinks is scary, to anyone who's comfortable with POSIX OS's symlinks come naturally. The entire POSIX world is built on the idea of symbolic links. NT actually makes heavy use of them internally, you just don't see them as a user (....) So there you go, a quick and dirty guide on how to use symlinks for mapping directories. You can actually map files as well, that's a bit more complicated and required to dissect program installations.
I know it's late in the game for the original poster, but to those who've stumbled upon this, my experience has been positive.
This is a great idea, I used it to move my 25 Gig C:\Windows\Installer folder from my SSD to a spindle.
However, I keep things like C:\WIndows\Winsxs on the SSD because I believe those files, while huge, are oft-accessed, so moving them would of course be defeating the purpose of the SSD.
All in all---the use of the symlink has never caused me any problems, I've moved the big space-hogs and I manage to still get by on a 128 Gig SSD and have 35 Gig free. And I've got some massive installs including 3 separate versions of Visual Studio (of which I symlinked the MSDN Help files to a spindle), Adobe Master Collection, every MS Office program ever released, etc, etc. And I still have plenty of breathing room to use the SDD as the temp location for Photoshop and Premier Pro editing.
Now you have a C:\Data folder and a D:\Data folder.
Why would you want two copies of the same thing? (other than for backup)
Well you don't as the stuff in C:\Data REALLY resides in D:\Data
Hey, I'm short of space on my C: drive so I'll just delete all of the files in C:\Data as I will still have them in D:\Data.
Whoops, I'm SURE I only deleted the files from C:\Data but they're ALSO gone from D:\Data and now I don't have a copy of them at all.
I know you can do the same think with Net Use Z: \\MyPc\C and then delete stuff from the C: drive because you've got a copy on the Z: drive.
So you DO need to be careful using any of these methods
A couple of years ago there were more threads about Symlinks. At the time ssd's were a lot more expensive. Users were purchasing small capacity ssd's because of the high cost.
A lot has changed since then. The cost of owning an ssd has been reduced quite a bit. The 128GB ssd's became the "sweet spot". Users could install their operating system, software applications, utilities, and some favorite games on the ssd. A hard disk drive was used as a secondary drive to store data files and additional games.
Things have changed again. According to industry reports and publications the 256GB ssd's have become the new "sweet spot".