Go Back   Steam Users' Forums > Steam Discussions > Help and Tips

Reply
Click here to go to the first staff post in this thread.  
Thread Tools Display Modes
Old 02-07-2010, 12:06 PM   #1
Ajhayter
 
 
 
Join Date: Nov 2007
Reputation: 45
Posts: 178
Talking How To: Split a Steam Install (Vista/7)

Hi,
This guide is based on an article from www.maximumpc.com and details how to "split" a Steam install across hard drive/directories using a feature introduced in Windows Vista, and also availiable in Windows 7.

This requires full elevated administrative rights on the system in question.

Quote:
Update 17/01/2011
It seems some helpful people have written a tool that does all the hard work, but I would recommend following the post on at least one of your games as a technical exercise. It's quite interesting to know how things work behind the scenes.
The tool works well for 3rd party games that are stored in a single folder but WILL NOT be able to transfer Valve game, as these use a different folder structure. For Valve games, you will need to follow the guide and do it manually.
Tool at http://stefanjones.ca/steam/
Using this method it is possible to have Steam and games installed on a conventional hard drive, with commonly used games installed on a second drive/raid array/SSD.

Important to note is that this works at the operating system level, and Steam won't be aware of any difference.

This can be done for folders (Steamapps/User/Team Fortress 2) and files (Steamapps/Team Fortress 2 Content.cfg). I detail both below.

Overview:
  1. Install Steam and games on Hard Drive 1
  2. Move required games folder/files to Hard Drive 2
  3. Use Windows command to point Steam to folder on Hard Drive 2

Detaild Insructions:
Step 1:
Install Steam/Games on drive of your choice. I recommend a mid sized (500GB) 7200rpm Hard Drive

Step 2:
Move the games you want to change location to your chosen new location. I recommend a supafast SSD of awesomeness.
E.g: You want the files for TF2 on your SSD, copy "Steam/Steamapps/User/TeamFortress2" and everything in it to the new location.

Step 3:
Use the CMD prompt command "mklink" to forge the pointer for the folder.
Code:
mklink /J "C:\Program Files (x86)\Games\Steam\steamapps\<user>\team fortress 2" "E:\Steam\Steamapps\<user>\team fortress 2"
Done! Now, whenever Steam looks for the TF2 folder, Windows will point it to the "E" drive location specified instead of "C" (change drives letters/paths as required).

-------------------------------

Now that is all very well and good for folders, but much of TF2's content is stored in GCF files. As these are in the Steamapps folder, it would be inefficent to redirect the whole folder. Fortunatly we can redirect this too:

Step 1:
As above, install Steam/Games on drive of your choice.

Step 2:
Move the specific file you wish to the new location.

Step 3:
Arrange the hard link for the file.
Code:
mklink /H "C:\Program Files (x86)\Games\Steam\steamapps\team fortress 2 content.cfg" "E:\Steam\Steamapps\team fortress 2 content.cfg"
NOTE: For files, use "mklink /H" as the parameter. For folders and directories, use "mklink /J" as the parameter.

The great thing about this is that since it is done at the operating system level, Steam is unaware of any changes. As such is is next to impossible (i.e. Valve would have to do it on purpose) for this to be broken by updates! Updates and addons will automatically be installed to the new location!

Quote:
Update 17/01/11
Was going over my old threads and wanted to clear something up on this. I didn't actually do this as I only have one HDD, but it seems I still wrote it well enough to help a lot of people, judging by google search of the thread URL.

Just to be clear, the quotes are required in the filepaths, as otherwise CMD thinks a space is the end of the path (e.g. it sees "Program Files" as "Program").
Secondly it seems you need to delete the original files after doing it. I've changed instances of COPY to MOVE so that it accounts for that.

Have fun, and don't blame me if you break it

Last edited by Ajhayter: 01-17-2011 at 02:24 PM.
Ajhayter is offline  
Reply With Quote
Old 02-07-2010, 01:46 PM   #2
joemtnbike
 
Join Date: Apr 2009
Reputation: 1062
Posts: 2,427
This is a great post and should be stickied.
joemtnbike is offline   Reply With Quote
Old 02-08-2010, 10:45 AM   #3
Ajhayter
 
 
 
Join Date: Nov 2007
Reputation: 45
Posts: 178
Quote:
Originally Posted by joemtnbike View Post
This is a great post and should be stickied.
Thanks. I suppose this is technically a bump, but what the hell. It's for GREAT JUSTICE!
Ajhayter is offline   Reply With Quote
Old 02-08-2010, 11:12 AM   #4
psychodude
 
Guest
Posts: n/a
Quote:
Originally Posted by joemtnbike View Post
This is a great post and should be stickied.
It's a great post yes, stickied... no. Valve should just allow installation directories to be picked on Steam instead. It's not a hard thing to do, the only reason why it's not there is just pure laziness.
  Reply With Quote
Old 02-08-2010, 11:31 AM   #5
L.o.D.
 
Join Date: Apr 2006
Reputation: 1647
Posts: 22,674
There's also this one which has been posted around.

Technical background
Windows NT (Windows XP, Vista, 2000 and 2003 ARE Windows NT) uses a filesystem called NTFS. It allows creating junctions. A Junction is a folder which is displayed on let's say C:\Source but it's content is in fact at D:\Destination. So the space is used on D: which allows you to have more data on C: than actially possible. And that's exactly what you may want.

Requirements
  1. Windows NT (again, WinXP, WinVista and so on ARE WinNT)
  2. NTFS-formatted drives (if you still have FAT(32)-formatted partitions, you can use the convert-command to convert your partitions to NTFS, at the cost of readability in Win98/Linux).
  3. Some spare time

Execution
  1. If you're not using Windows Vista, you'll have to get linkd.exe from the Windows Server 2003 Resource Kit Tools. If you're using Windows Vista, you already have a command called mklink which does the job. I'm going to use linkd-syntax in this tutorial, mklink has almost the same syntax. You only have to add the /j-parameter (junction, remember?) You can access help for both tools with the [tool name] /?-command.
  2. Take a look at your folder structure. Where do you want to move the games from and to? In this example, I'll use C:\Steam as the Steam installation directory on a full partition and D:\SteamSpare as the swap space.
  3. Open your console. Press Win+R, type cmd and press enter.
  4. Let's move a third party game first. Move the content of C:\Steam\SteamApps\common\Red Orchestra to D:\SteamSpare\Red Orchestra. You have to move the files and delete the original folder.
  5. Type linkd "C:\Steam\SteamApps\common\Red Orchestra" "D:\SteamSpare\Red Orchestra" in the console.
  6. You're done. Red Orchestra files will take space on D: but will be still avaible to Steam in C:\Steam.
  7. Moving Valve games is more complicated. linkd can only "mirror" folders. Valve games have their data inside GCF-files. So you can only "mirror" the whole SteamApps-folder or use mklink (Vista only, not tested) to move single files. EDIT: Windows XP has a command called fsutil, it can be used to mirror single files.
Alternatively, you can use NT's drive management to mount another partition at C:\Steam\SteamApps. This, however, is less flexible. Will cover it, if any interest is presented.
L.o.D. is offline   Reply With Quote
Old 02-08-2010, 01:43 PM   #6
Glenntja4
 
Guest
Posts: n/a
Great guide, good use of language skills, few or no grammatical errors. But people should be aware off this already, and know how it is done :P
  Reply With Quote
Old 02-13-2010, 01:54 PM   #7
FocusPocus
 
Join Date: Jan 2010
Reputation: 196
Posts: 3,026
Thank you this was exactly what I was looking for, I'll delete steam off my SSD and reinstall on my storage, tyty
FocusPocus is offline   Reply With Quote
Old 02-13-2010, 02:39 PM   #8
FocusPocus
 
Join Date: Jan 2010
Reputation: 196
Posts: 3,026
[Update] Ok i got it to work. I misundestood that you have to move the folder instead of copying the folder, which is why I was getting the second error. Also you are required to use "" marks around the entire path name especially for paths that contain folder names with spaces for example Program Files (x86). I found it easier to install steam on my solid state drive then move the games that do not require a fast harddrive to function onto my storage drive.

OK i'm having some problems, I get a "The syntax of the command is incorrect" but i'm pretty sure i'm typing it right.

Is it case sensitive?

update: I tried adding quotes around both target locations, it seems to solve the syntax problem but now I get a "cannot create a file when that file already exists issue"

Last edited by FocusPocus: 02-13-2010 at 04:13 PM.
FocusPocus is offline   Reply With Quote
Old 02-14-2010, 07:30 AM   #9
seseorang
 
Join Date: Feb 2010
Reputation: 748
Posts: 7,385
I like my method...
Install Steam on a larger hard drive Although if it gets too big, I might have to give it a dedicated hard drive - hehe
seseorang is offline   Reply With Quote
Old 02-20-2010, 04:43 PM   #10
Nitro_hedgehog
 
Join Date: Jul 2007
Reputation: 8
Posts: 332
Quote:
Originally Posted by FocusPocus View Post
[Update] Ok i got it to work. I misundestood that you have to move the folder instead of copying the folder, which is why I was getting the second error. Also you are required to use "" marks around the entire path name especially for paths that contain folder names with spaces for example Program Files (x86). I found it easier to install steam on my solid state drive then move the games that do not require a fast harddrive to function onto my storage drive.

OK i'm having some problems, I get a "The syntax of the command is incorrect" but i'm pretty sure i'm typing it right.

Is it case sensitive?

update: I tried adding quotes around both target locations, it seems to solve the syntax problem but now I get a "cannot create a file when that file already exists issue"
i get the same "cannot create a file when that file already exists" problem.

EDIT: i deleted the empty folder that i wanted it to redirect steam from and it put a shortcut in its place and it works now

also if I rename the folders will the junction update itself?

Last edited by Nitro_hedgehog: 02-20-2010 at 04:48 PM.
Nitro_hedgehog is offline   Reply With Quote
Old 02-25-2010, 08:57 PM   #11
Lawliet89
 
Join Date: Jun 2009
Reputation: 52
Posts: 788
Nice. Beats having to post the same thing all over again. Bumped to get noticed!

Please sticky.
Lawliet89 is offline   Reply With Quote
Old 03-06-2010, 10:10 AM   #12
iGamer
 
Join Date: Nov 2008
Reputation: 0
Posts: 20
+1 on the sticky!
iGamer is offline   Reply With Quote
Old 03-06-2010, 05:58 PM   #13
thisone
 
Join Date: Mar 2010
Reputation: 0
Posts: 5
+1000 for VALVe making this proprietary.

This is a manufacturer's issue, not a customer's.
If I buy a new car I don't want anybody to oblige me as where to
park my car - and a workaround by "car park problem forums" won't
address the issue properly, though it might help.

Anyway, many thanks for your effort!
thisone is offline   Reply With Quote
Old 03-06-2010, 06:04 PM   #14
Seth.Sekhmet
 
 
 
Join Date: Jun 2008
Reputation: 1848
Posts: 3,157
this thread is worthy of a sticky !
Seth.Sekhmet is offline   Reply With Quote
Old 03-13-2010, 10:57 AM   #15
delirium-
 
Join Date: Jul 2009
Reputation: 14
Posts: 463
When I try to link the GCF's with mklink /h I get "The system cannot move the file to a different disk drive."
delirium- is offline   Reply With Quote
Reply

Go Back   Steam Users' Forums > Steam Discussions > Help and Tips


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



All times are GMT -7. The time now is 03:34 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.
Site Content Copyright Valve Corporation 1998-2014, All Rights Reserved.