How to have only Windows folder on 20GB SSD?

3

I know it's super easy to install Linux on multiple drives, but on Windows, I've never seen it before. I want to boot from a 20GB SSD and have everything else on the 1TB HDD. It would look like that :

C:\
Windows

D:\
Program Files
Program Files (x86)
ProgramData
Users

An alternative would be using a mount point for everything but the Windows folder, but I have no idea if this is possible. It would be my preferred solution since it's the closest to Linux' solution.

C:\ [SSD]
Windows
Program Files [MOUNT POINT HDD]
Program Files (x86) [MOUNT POINT HDD]
ProgramData [MOUNT POINT HDD]
Users [MOUNT POINT HDD]

The question is : How?

I want this to be stable enough to install it on a home computer for everyday use.

Linux' easy solution that I envy : How to boot from SSD but have installations and home folder on HDD

Related article about registry : https://support.microsoft.com/en-ca/kb/933700

Related article about junction : https://en.wikipedia.org/wiki/NTFS_junction_point

Related article about mount points : https://support.microsoft.com/en-ca/kb/280297

NatoBoram

Posted 2016-08-24T01:24:11.523

Reputation: 175

Answers

1

Follow the following guides to migrate the corresponding folders to another drive:

Warning: Read up on this article to understand why moving user profiles might pose a threat if you plan on upgrading your OS... More info down below:

  • 'Users' folder :

Two things are important in this step: 1) you have to use the correct drive letters, and 2) you have to use the exact options for robocopy. If you mess up 1), you won’t be able to log in, and if you mess up 2), then you might be able to log in but will have other problems.

Do the following to copy C:\Users to D:\Users. Again, keep in mind the drive letters are remapped:

X:> D:
D:> robocopy /copyall /mir /xj Users E:\Users

/mir option will delete all files in the target if they do not exist in the source. Hence, if you already have D:\Users and want to keep the files, then use /E option:

D:> robocopy /copyall /E /xj Users E:\Users

Again, here D: is C: in actual, and E: is D: in actual. Among robocopy options, if you miss /copyall, then it will not copy the permission information, and after log-in your Windwos 8 apps will crash upon launching. Make sure you get 0 for failed column in the robocopy results output.

After verifying there were no error, do the following to remove the original C:\Users directory:

D:> rmdir /S /Q Users

Create the symbolic link
This is the final step, creating the symbolic link at C:\Users which points to D:\Users. Here the drive letter thing again comes up. Since the symbolic link will be used in actual windows session, you have to use the actual drive letter ,D: as the target. So you end up making a symbolic link at D:\Users (command prompt letter - C: in actual) whose target is also D:\Users. Since you are already at D:, use the following so it is less confusing:

D:> mklink /J Users D:\Users

Junction created for Users <<===>> D:\Users
I have not tried other options, but it seems if you don’t use /J (Junction) option you will have to do a registry hack.

You can verify the link with dir command. You will see:

<JUNCTION> Users [D:\Users]

Anyway, that’s it. When you exit and reboot (select continue to windows 8), you will be able to log in, and when you open up the explorer, you will see that C:\Users is a symbolic link which points to D:\Users.:

D:> exit

  • 'Program Files :

How to move the Program Files folder Even if you have a 128GB SSD, you'll soon fill it up with applications. By this point, it's too late to install them on a different hard drive, unless you want to go through and uninstall and reinstall programs individually. It's possible to move the C:\Program Files folder to a different hard drive but we don't recommend this because the folder is hard-wired into Windows and there will be problems if it isn’t where Windows expects it to be. Plus, it's a very in-depth process to do it properly using symbolic links. For programs that are already installed on your C: drive, it's possible to move their subfolders which are stored within C:\Program Files. Don't forget that if you move programs from an SSD to a hard drive then you will lose the speed benefit of the SSD when launching that program. Keep your most used software on the SSD so that it loads and runs quickly when you need it.

You can’t simply drag program folders to a different drive, though. What you must do is to create what is called a symbolic link. It's a bit like the shortcuts to programs, folders and websites that litter the desktop, but they are more powerful. When Windows or any program tries to access the folder, the symbolic link redirects it to the new location. It is completely transparent to software and Windows.
Symbolic links can be created manually and there is a command line tool called mklink. Expert users can open a command prompt window and enter mklink to see the options. There is no need to resort to complicated commands. though and there is a simple and free utility that does everything for you. Go to mobasoftware.com and download SymMover.

  • 'ProgramData' :

The default path is C:\ProgramData. It is stored here:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\ProgramData

OPTIONS:

1) You can change your default ProgramData path to be an alternative drive. Although doing so, all new users that are created will use the new programdata path. So you may end up having two ProgramData folders at the end of the data.

2) Alternatively, you could use “NTFS Junction Points”. Not many people know of this, but a junction point is a way to force all programs that write to path (c:\programdata) to be redirected to (D:\ProgramData). This is how old programs designed for XP can easily work with Vista and Windows 7 new folder locations(Documents and settings replaced with Users).

So you could create a junction point specificically for the tmp directory that is created by the GR. mkdir D:\ProgramData robocopy /XJ /MIR "C:\ProgramData" "D:\ProgramData" mklink /J "C:\ProgramData" "D:\ProgramData"

The downside is that windows update does not work well with program data on a separate drive. http://support.microsoft.com/kb/949977

Caution: Microsoft doesn't recommend moving system directories, as it will prevent any Windows Updates, Hotfixes, Upgrades, to work properly (it will downright fail!)

Please proceed with caution!

ClobberXD

Posted 2016-08-24T01:24:11.523

Reputation: 191

Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change. – DavidPostill – 2016-08-24T11:07:22.167

I'm okay with relocating every individual folders in the /users/ folder. I've tried to edit registry to install new ProgramData and Program Files to D:, but some programs still use the C:\ drive like Adobe's programs. The person I'm helping needs Creative Cloud but if the registry is edited, it doesn't work at all. Without editing the registry, I can tell Adobe CC to install its things in D:, but it still downloads the installer in the C:\ and the installation fails because of the lack of space. After using all these options (registry and relocating user files), it's still not enough for me – NatoBoram – 2016-08-24T21:02:21.143

-1

You should be able to install Windows the normal way* without any additional steps. Windows 7, 8, and 10 require 16GB for a 32-bit install, or 20GB for a 64-bit install, which just sneaks in at your requirement. Here's a Windows blog post that explains a bit about how the automatic compression works in Windows 10, if you're interested.

Windows 10 is likely your best option, since it allows you to select another drive to put your user files and folders onto (it's a simple option in the Settings app). To install programs onto your HDD, just manually make Program Files and Program Files (x86) folders and tell the programs to install there. The only installers I've ever seen that won't let you pick are for programs that won't work on another drive, but those are pretty rare.

If you want to use an older version of Windows, just manually make your own user folders on the HDD and put your files there instead of in the C:\ drive user folders. Trying to move the official C:\ drive user folders is likely to break something, as Anand pointed out, so just ignore them.

*By "normal way," I mean using/creating a bootable DVD or flash drive and installing from there. You won't be able to upgrade, since there won't be enough space for both the old and new operating systems.

PunctualEmoticon

Posted 2016-08-24T01:24:11.523

Reputation: 167