How to install your system to SSD and seamlessly move apps to HDD to save space

InvisiBill

2[H]4U
Joined
Jan 2, 2003
Messages
2,608
My personal partitioning scheme makes it easy for me to selectively move installs on and off my SSD. If you want to have a similar setup with everything on the SSD by default, but easily moved to HDD for space savings, here's how you can do that.
  1. Install only the SSD in your PC.
  2. Install Windows normally.
  3. Create a folder C:\HDD_Files\ (or whatever name you want to use for it).
  4. Install the HDD in the PC.
  5. In Disk Management, mount the disk to the empty C:\HDD_Files\ folder rather than a drive letter like D:.
Anything installed to the C: drive (other than C:\HDD_Files\) will be on the SSD.


If you have a large app that you don't want on the SSD:
  1. Install the app normally to C:\Program Files\AppName\.
  2. Move the AppName folder from C:\Program Files\ to C:\HDD_Files\.
  3. Create a link in C:\Program Files\ pointing to C:\HDD_Files\AppName\.
With step 1, the files are installed to the SSD. Step 2 moves those files to the HDD. Step 3 makes the files on the HDD accessible via the original path on the SSD. Links can easily be created via Link Shell Extension. Just right-click and drag the AppName folder to C:\Program Files\ and select Drop > Junction. C:\Program Files\AppName\ now transparently redirects to C:\HDD_Files\AppName\ at the filesystem level.

If you decide you want to move the app back to the SSD, simply remove the junction in C:\Program Files\ and move the AppName folder from C:\HDD_Files\ back to C:\Program Files\.

This setup will give you a single C: hard drive and the ability to easily move apps back and forth between the SSD and HDD without having to worry about screwing up install directories and such.
 
Sounds like a logical setup if it works for you... For some people it'll be impossible to install some of their larger apps/games to the SSD first and then move 'em to the HDD tho (if they have a relatively small SSD that's already at 70% capacity or w/e)... Tho using hard or symbolic links is still the way to go in most cases imo, just gotta alter the order of steps or the direction the symbolic links are pointing in. Interesting shell extension btw. I've been creating my links manually, gonna have to look into it, thanks!

Thus far I've only really used links for certain games within my Steam folder and one or two other games... Most, if not all, my apps fit in easily within my 80GB SSD along w/Win7 and I've kept the User folder on the SSD as well (tho I manually told Windows to move the Docs folder over to the HDD obviously)...

I've seen a lot of people prefer to move and link their entire User directory to the HDD... But that directory tends to include a lot of program config files and such, is there any benefit to doing that besides reducing write cycles on the SSD? Otherwise I would think you'd be better served w/having that stuff on the SSD (performance-wise), along w/the rest of the OS/apps/etc. Makes image backups of your OS install a lot easier as well.
 
Last edited:
Yeah, if you have something huge that you know you'll want on the HDD rather than the SSD, you can always create C:\HDD_Files\AppName\ manually and put the link in C:\Program Files\ before the install, so that it goes directly to the HDD. My own existing partitioning scheme has my Program Files on HDD by default, and I move them to SSD when I want to speed them up, so I don't have to worry about the size thing myself.

I do have my whole OS partition and my user data partition both on SSD. As you said, it tends to be a lot of small config files and such, which should be the type of file to benefit the most from SSD. I'm not too worried about the number of writes I'm doing, so the extra performance is more appealing to me.

If you use this setup and decide to put your pagefile on the HDD also, you could simply move it from C:\pagefile.sys to C:\HDD_Files\pagefile.sys too.
 
5. In Disk Management, mount the disk to the empty C:\HDD_Files\ folder rather than a drive letter like D:.

That's really easy, thanks.

By the way, if drive D: is mounted to C:\HDD_Files and you run anti virus, the scanner will also scan drive D:, correct?
 
I like that link shell extension, made it easy to drag and drop links of my steamapps into the folder on the SSD.
 
Yeah I leave the user directory on the main HDD but move the other stuff ie documents, videos, music to a seperate hard drive.

Getting an SSD tomorrow so this is good information, I would like to keep all the games "installed" but be able to make the one I am playing for the next 2/3 weeks (before I burnout on it again) as fast as possible.

Thanks for the suggestions and info, I am definitely going to do this.
 
I've been using an ssd for the main system and all other apps and games go on a 500g 16bit cache 7200rpm 3g sata and my GTA4 fps is 63 which was the same as on my 1tb WD cavier black, I was actually afraid the game fps would be lower with the ssd/os 500/data set up but it works great so far.
I have a OCZ Vertex 30g (cheapest model).
I didn't do anything special just when an app asks where I want to install I point it to the 500g drive.
 
And you shouldn't have to do anything else either... The procedure being described in this thread is for people who want to be able to shift their game installs from the HDD to the SSD or vice versa, namely for those w/larger SSD who would like to have the occasional game run from the SSD w/o requiring constant re-installs or uninstalls as they either tire of the game or decide to have it on the SSD. Obviously w/a small 30GB SSD you'd be more limited in your ability to do that so it'd be of little interest.

I've been trying out the utility Neb posted about, Junction Link Magic... Seems pretty neat for keeping track of your links. I still like creating my symbolic links manually at the console (dunno why, seems more straight forward to me than right clicking here and there w/Link Shell Ext.), but for keeping track of 'em or deleting them that utility seems pretty intuitive... Altho I'm not sure I actually used it to remove any links yet, gotta test that. Not that it's a big deal to go find it and delete it manually either...
 
What happens if in the second part step 3 I decided to make a shortcut in C:\Program Files\ that points to C:\HDD_Files\AppName\ instead of using link shell extension?

Does windows get confused, lose performance or it's the same thing as using link shell extension?
 
seamless? no. if this was truly seamless, you would just install an app that would detect which files are unused on your ssd and move them to your hdd automagically. basically the ssd would be a large cache of your most used programs/files
 
What happens if in the second part step 3 I decided to make a shortcut in C:\Program Files\ that points to C:\HDD_Files\AppName\ instead of using link shell extension?

Does windows get confused, lose performance or it's the same thing as using link shell extension?

It won't work. A link is actually a pointer to another location on the filesystem. You can actually have two "files" pointing at the same piece of data on disk. C:\Dir1\stuff.txt and C:\Dir2\stuff2.txt will both point at the same bytes. If you edit stuff.txt, you'll see those changes when you open stuff2.txt.

A shortcut is simply a file whose contents contain the location of another file/directory. Though the Windows UI may make it seem transparent to you at times, Windows is actually opening up that file, reading the location, and opening that file/directory.

Make a shortcut to a file in Explorer, then open up a Command Prompt at that location. The dir command should show you that the file is named "shortcut.lnk". Running "type shortcut.lnk" will display the contents of the file, something like this:
Code:
L   ☺¶☻     └      F     A♀δSóƒ╩☺A♀δSóƒ╩☺A♀δSóƒ╩☺        ☺               ╤ ¶ ▼Pα
O&#9576; &#937;:i&#9658;ó +00¥&#8595; /C:\                   J 1     ;<ö&#9569;&#9658; Dir1  6 &#9830; &#8745;&#9563;;<ö&#9569;;<ö&#9569;*   æ?
  &#945;               D i r 1   ¶ X 2     ;<ÿ&#9569;  stuff.txt  &#9830; &#8745;&#9563;;<ÿ&#9569;;<ÿ&#9569;*   &#8734;&#960;    >
             s t u f f . t x t   &#8593;   I   &#8735;   &#9786;   &#8735;   6       H

With a link, Windows is actually accessing C:\Dir1\stuff.txt or C:\Dir2\stuff2.txt, just as it would any other file, and NTFS is actually transparently directing both locations to the same spot on the disk.
 
Bill, I've never actually mounted a drive to a folder rather than a drive letter. Are there any repercussions to doing so? For instance, what if I mount a secondary drive to the C:\HDD_Files folder and the primary disk fails? Can I put the secondary disk in another machine and have all the files on it visible and accessible? Will it automatically get a drive letter in another machine (or in another install of Windows on the first machine) and function as a normal drive even though it was initially mounted to a folder vs. using it in the traditional manner?
 
He just did that for convenience, but you don't have to mount a drive to a folder at all in order to make use of symbolic links or junctions... But yea, you can re-mount the drive w/a letter on a different system in your scenario and it'll work just fine AFAIK.
 
seamless? no. if this was truly seamless, you would just install an app that would detect which files are unused on your ssd and move them to your hdd automagically. basically the ssd would be a large cache of your most used programs/files

If you've created a hybrid hard drive I'd love to see it ;)

I used this method recently on a new Win 7 install on a 64GB SSD, and with COD4, COD5, Dragon Age, X3:TC, Civ 4, Battlefield 2, Left 4 Dead 2, all installed and ready to play whenever I want, and I still have 50gb of free space on my SSD. That's with no games actually on the SSD. I moved dragon age over since that's the game I am playing daily, and when I am done with it, I will move it back over to the storage drive without having to uninstall it.

It's pretty seamless as far as I am concerned as it beats having to uninstall/reinstall games all the time and I can STILL get the benefit of using an SSD with the game when I want to.
 
Bill, I've never actually mounted a drive to a folder rather than a drive letter. Are there any repercussions to doing so? For instance, what if I mount a secondary drive to the C:\HDD_Files folder and the primary disk fails? Can I put the secondary disk in another machine and have all the files on it visible and accessible? Will it automatically get a drive letter in another machine (or in another install of Windows on the first machine) and function as a normal drive even though it was initially mounted to a folder vs. using it in the traditional manner?

Drive letters are completely a Windows construct. There's nothing on the drive itself that says it's C: or D:. Windows will automatically assign drive letters starting with C:, but it's just a Windows setting. The drive's data is still there regardless of what happens to other drives or if you put it in a different PC.

For example, the SSD Toolbox seems to schedule its jobs based on drive letters. In addition to mounting my SSD's volume to the E:\SSD\ directory, I also mounted it with its own drive letter.
volumemount.png

If I go to E:\SSD\ and S:\ in Explorer, the windows look exactly the same, because they're both pointing to the same location on disk. If I were to plug the SSD into another PC, that same volume might automatically be assigned to D:, but its contents would be exactly the same as this E:\SSD\ & S:\.

If you wanted to drive people completely insane, you could map C: - Z: all to the same volume. You'd have 24 drives listed in Explorer, but the different drive letters would all be pointing to one single volume.
 
If you've created a hybrid hard drive I'd love to see it ;)

I used this method recently on a new Win 7 install on a 64GB SSD, and with COD4, COD5, Dragon Age, X3:TC, Civ 4, Battlefield 2, Left 4 Dead 2, all installed and ready to play whenever I want, and I still have 50gb of free space on my SSD. That's with no games actually on the SSD. I moved dragon age over since that's the game I am playing daily, and when I am done with it, I will move it back over to the storage drive without having to uninstall it.

It's pretty seamless as far as I am concerned as it beats having to uninstall/reinstall games all the time and I can STILL get the benefit of using an SSD with the game when I want to.

Glad to hear it's working well for you. Your situation is exactly the sort of thing I was trying to encourage. You do have to move the files and create the links manually, but as you said, you don't have to uninstall/reinstall or edit config files for a different location or anything. The link allows it to "just work" whether the files are on SSD or HDD.
 
Drive letters are completely a Windows construct. There's nothing on the drive itself that says it's C: or D:.

Yeah, I know that...I just hadn't mounted a drive that way before and wanted you to confirm that if I were to remove the drive and place it in another system, it would just acquire the next available drive letter like any regular disk. Thanks for the detailed explanation. :cool:

And thank you, Impulse, for your earlier response. I know you don't have to mount a drive like that in order to utilize symbolic links and what not; I was just curious why InvisiBill did it that way but now things are clearer. Just a different way of doing things; I guess like many things it boils down to personal preference and what works best for you.
 
Also consider that you could partition the harddisk into smaller partitions, so you could have a My Documents folder, a Games folder, even a \temp\ folder....all on the same harddrive, but not limited to one "folder".

I went with the symbolic link method. Though the only advantage is that your free to browse the harddisk normally instead of just having folders. But having folder would clean up stuff as you would only see 1 drive.
 
Very nice, looking forward to putting this into practice. Thank you OP.
 
When I originally wrote this guide, I had XP x64 with my Program Files directories moved to the HDD during install. Win7 doesn't support that anymore, so I now have my Program Files dirs defaulting to the SSD, and I move apps off to save space (which is how the guide was targeted).

Because Steam can get quite large quite easily, I've got the entire "C:\Program Files (x86)\Steam" dir linked to "E:\Steam" on my HDD. This puts all Steam apps on the HDD by default, but still accessible in the default location on the SSD. For my high-priority Steam games, I link "E:\Steam\steamapps\common\gamename" back to "C:\Steam\steamapps\common\gamename" on the SSD. "E:\Steam\steamapps\common\game2name" remains on the HDD, not taking up valuable SSD space for something I rarely play. It adds a little bit of complexity, but my huge Steam collection stays on HDD, while I'm able to move special games to SSD if I want.

Here's a colored version of the path to show what's on SSD and HDD:
C:\Program Files (x86)\Steam\steamapps\common\gamename
..................................(E:\Steam)........................(C:\Steam\steamapps\common\gamename)

C:\Program Files (x86)\Steam\steamapps\common\game2name
..................................(E:\Steam)
 
When I originally wrote this guide, I had XP x64 with my Program Files directories moved to the HDD during install. Win7 doesn't support that anymore, so I now have my Program Files dirs defaulting to the SSD, and I move apps off to save space (which is how the guide was targeted).

Because Steam can get quite large quite easily, I've got the entire "C:\Program Files (x86)\Steam" dir linked to "E:\Steam" on my HDD. This puts all Steam apps on the HDD by default, but still accessible in the default location on the SSD. For my high-priority Steam games, I link "E:\Steam\steamapps\common\gamename" back to "C:\Steam\steamapps\common\gamename" on the SSD. "E:\Steam\steamapps\common\game2name" remains on the HDD, not taking up valuable SSD space for something I rarely play. It adds a little bit of complexity, but my huge Steam collection stays on HDD, while I'm able to move special games to SSD if I want.

Here's a colored version of the path to show what's on SSD and HDD:
C:\Program Files (x86)\Steam\steamapps\common\gamename
..................................(E:\Steam)........................(C:\Steam\steamapps\common\gamename)

C:\Program Files (x86)\Steam\steamapps\common\game2name
..................................(E:\Steam)

Could you explain what you did a little more in-depth? I'm trying to do the same thing with my steam folder, :D.
 
Forgive me if i am missing the point here, but why bother at all? Isnt the data that is being linked on the SSD accessed from the HDD (where the actual data is stored)? So in the end your still reading from the HDD.... How is this any faster?
 
Forgive me if i am missing the point here, but why bother at all? Isnt the data that is being linked on the SSD accessed from the HDD (where the actual data is stored)? So in the end your still reading from the HDD.... How is this any faster?

It's mainly for convenience. See below:

InvisiBill said:
This setup will give you a single C: hard drive and the ability to easily move apps back and forth between the SSD and HDD without having to worry about screwing up install directories and such.

Impulse said:
The procedure being described in this thread is for people who want to be able to shift their game installs from the HDD to the SSD or vice versa, namely for those w/larger SSD who would like to have the occasional game run from the SSD w/o requiring constant re-installs or uninstalls as they either tire of the game or decide to have it on the SSD.
 
So you basically install the game/games on your SDD then move them to your HDD when not in use. This allows you to run the program regardless of where the install is currently.

For applications that you would never run on your HDD , could you not just install on your SDD and then move that entire folder over to your HDD? You wouldnt be able to run it from your HDD do to the registry entries etc., but that is not the point because when you want to run it you just move it back.

Perhaps I am just blissfully unaware of problems associated with using multiple drives.
 
Could you explain what you did a little more in-depth? I'm trying to do the same thing with my steam folder, :D.

Is there something specific you're confused about? I used the described method to move my whole Steam folder from C:\Program Files (x86)\Steam\ to E:\Steam\. I then used the same method to move E:\Steam\steamapps\common\gamename\ back to the SSD at C:\Steam\steamapps\common\gamename\. Due to the links, the files in E:\Steam\ and C:\Steam\ are still accessible under the original install location of C:\Program Files (x86)\Steam\.


So you basically install the game/games on your SDD then move them to your HDD when not in use. This allows you to run the program regardless of where the install is currently.

For applications that you would never run on your HDD , could you not just install on your SDD and then move that entire folder over to your HDD? You wouldnt be able to run it from your HDD do to the registry entries etc., but that is not the point because when you want to run it you just move it back.

Yup, you could do that too. This way is solely for convenience. Regardless of which drive you have the files on, they're accessible via the original path and everything "just works".
 
I could see this process as a way to benchmark the performance gains of SSD. Run your program from the SDD and record, then move it to your HDD and link it back to the SDD and run again.

Using this method can you spilt the files? For example keep the exe, texture files, or save game directory on the SDD for quick loading while the sound files etc are on your HDD.

I have heard one of the main benifits in terms of gaming is shorter save/load times, so if this was possible you could see the benifit of your SSD without having the entire game installed on that drive.
 
Sounds interesting but also like a lot of work rather then just install programs to say D:\Programs Files and be done with it, but i guess if you often use various apps that need SSD performance it could be useful instead of reinstalling things all the time?
 
Is there something specific you're confused about? I used the described method to move my whole Steam folder from C:\Program Files (x86)\Steam\ to E:\Steam\. I then used the same method to move E:\Steam\steamapps\common\gamename\ back to the SSD at C:\Steam\steamapps\common\gamename\. Due to the links, the files in E:\Steam\ and C:\Steam\ are still accessible under the original install location of C:\Program Files (x86)\Steam\.

I understand how you linked the steam folder on E back to C, so all your stuff is on E. But how do you get your high-demand games back onto C, when there's already a link from E to C?

Also, what is the difference between a junction and a symbolic link? For me, it appears that both function practically the same.
 
I could see this process as a way to benchmark the performance gains of SSD. Run your program from the SDD and record, then move it to your HDD and link it back to the SDD and run again.

Using this method can you spilt the files? For example keep the exe, texture files, or save game directory on the SDD for quick loading while the sound files etc are on your HDD.

I have heard one of the main benifits in terms of gaming is shorter save/load times, so if this was possible you could see the benifit of your SSD without having the entire game installed on that drive.

You could, but it might get very complicated very quickly with a bunch of pointers back and forth. It depends on how elaborate you want to get.


To expand on this, I actually used this (on a single HDD) when I used to two-box WoW. I had junctions created so both copies of the game used the same files and all of my accounts' configs were shared between the installs (meaning any account could log into any copy of the game and get the same settings). However, certain files needed to be unique, so I had to use a combination of symlinks and subfolder junctions as opposed to just simply making a "WoW2" junction pointing at "WoW". Unfortunately, installing patches seemed to break a lot of the links, meaning I usually had to redo most of the setup after each upgrade.

There is also a filesize limitation on some of the LUA files that are used for addons. Auctioneer collected statistics on items being sold, and could get huge on a busy server or after using it for a long time. Unfortunately, the game only allows you to choose a single data file for the whole game, or individual files for each character. With every character using one file, it will fill up more quickly. With each character having their own file, you wouldn't see the stats collected by other characters. It would be preferred to have it per-server, since the prices are applicable only to individual servers (your own copy of the world), but WoW doesn't give you that option. I worked around this by switching to the per-character mode, then symlinking each character's file to a single per-server file that I manually created. The downside here is that I had to manually create each per-server file and replace each new character's file with a link to the appropriate per-server file.
 
Last edited:
Sounds interesting but also like a lot of work rather then just install programs to say D:\Programs Files and be done with it, but i guess if you often use various apps that need SSD performance it could be useful instead of reinstalling things all the time?

Honestly, the guide makes it sound a lot more complicated than it really is. Once you have LSE installed, moving an app is literally a matter of moving its folder to the opposite drive and right-dragging it back to the original location to create a link. To undo it, simply delete the link and move the folder back. You don't have to reinstall anything, or hack any settings referencing the install location, or remember to install certain things to a certain drive.
 
I understand how you linked the steam folder on E back to C, so all your stuff is on E. But how do you get your high-demand games back onto C, when there's already a link from E to C?

The same way. Move the folder from E: to C: and create a link from C: to E:. Notice that the original location on SSD is C:\Program Files (x86)\Steam\, the HDD is E:\Steam\, and the "back to SSD" location is C:\Steam\.
Here's a colored version of the path to show what's on SSD and HDD:
C:\Program Files (x86)\Steam\steamapps\common\gamename
..................................(E:\Steam)........................(C:\Steam\steamapps\common\gamename)

C:\Program Files (x86)\Steam\steamapps\common\game2name
..................................(E:\Steam)

It gets a little confusing, but the path references a certain chunk of data. Hardlinks work by having multiple references to a single chunk of data. In the first game in the above example, all three of the paths point to the exact same data, which happens to be on SSD.
  • C:\Program Files (x86)\Steam\steamapps\common\gamename
  • E:\Steam\steamapps\common\gamename
  • C:\Steam\steamapps\common\gamename

Likewise, both of these paths point to the same chunk of data, which happens to be on HDD.
  • C:\Program Files (x86)\Steam\steamapps\common\game2name
  • E:\Steam\steamapps\common\game2name


Also, what is the difference between a junction and a symbolic link? For me, it appears that both function practically the same.

A junction is a folder and a symlink is a file. http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#hardlinks
 
Back
Top