Many devices, especially laptops, ship today with a small SSD and a bigger HDD. The device used as the example in this post is an HP ProBook 470 G5 laptop. It’s equipped with a so-called hybrid disk: a 128 GB M.2 SSD and a 1 TB spinner, with formatted capacities of 119 GB and 931 GB respectively. To get the most most out of the laptop, of course I want Windows installed on the SSD. The problem is, with all the software I need to install and space required for user profiles and data, that drive is absolutely too small for my needs to store everything.
Fortunately, there’s an easy solution for this. In fact, that solution reduces the space needed on the system drive so much that I could easily cope with a 64 GB system disk as well. With over 50 GB of software installed, almost 100 GB in user profile folders, over 300 GB for Hyper-V virtual machines and a full-updated version of Windows 10, my Windows system drive C: currently has 86 GB free space with less than 33 GB used (see featured image above the post title). In fact, if I’d remembered to change the installation path in the Office 365 deployment XML file, the space used would be about 3 GB less ;). And, best of all, this solution requires no meddling with the registry or file junctions. I say best of all because, believe me, I have tested those options, too, only to get an unstable and partially non-functional Windows.
For those of you keen to experiment, you can test this yourself (although I strongly advise against it!) by creating respective folders on another disk and editing the registry and changing items highlighted in this screenshot on two keys to point to another drive:
The two identical keys you need to edit:
1.) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 2.) HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion
Should you wish to edit these keys on an offline image, see my tutorial at TenForums.com.
Partitioning as with any device, I started by creating an autounattend.xml answer file to completely wipe both disks, re-partition them and take care of Windows Setup. See my earlier series of posts about how to create and modify answer files to make unattended Windows 10 install media. The main benefit from this is of course to get rid of all bloatware. I wanted the small SSD to contain the all UEFI system partitions and the partition C: for Windows, and the bigger HDD to contain a 120 GB partition D: to install software, a 200 GB partition E: to relocate the Users folder (all user profiles and their data), a 500 GB partition to host my Hyper-V virtual machines, and then to use the rest of the disk for a partition to occasionally deploy and store a VHD to let me play with native boot VHDs. This is how my setup looks in Explorer, drive C: on system SSD and the rest of my partitions on HDD (drives H: and I: are on an external USB3 disk):
OOBE & Relocate Users folder
The other answer file, unattend.xml to take care of OOBE and relocate Users folder from C: to E: drive was next. The answer file shown in that series of posts about creating install media for unattended install I mentioned earlier required one change. In that series, I didn’t want even to mention relocating the Users folder, because I am sick and tired of hearing about and answering nonsensical rumours about how that makes it impossible to update and upgrade Windows.
Using Sysprep to relocate Users folder to another drive is safe, fully supported and I have been using it since early days of Vista. When done, all future user profiles and all their folders will be created on drive specified in the answer file. Because user profiles can grow quite fast, this in my subjective opinion is the single most important thing to do when a system disk is small.To make this happen, I added this one simple setting to my answer file (screenshot from Windows System Image Manager):
The same seen in resulting answer file:Done. Now I just needed to create USB install media, see how-tos in that aforementioned series of posts about unattended install media. Post Install Signing in to desktop the first time after totally “hands-free” installation, one nice thing to notice is how little space is used on the C: drive. Equally nice is to notice that whereas HP’s pre-installed Windows consumed over 5.5 GB of RAM when booted to the desktop, idle and no software running, after wiping everything clean and deploying a clean image, it now uses about 2 GB less:The biggest benefit is of course that all user profiles really were relocated to E:\Users instead of C:\Users, and that the Windows environment variable %userprofile% really recognizes its new home location:In the next screenshot I show the contents of the C: drive, including all hidden items and protected system files and folders, just to show that the Users folder really isn’t there:
Now it is up to me to remember to always install software on drive D: instead of the default Program Files folders on the C: drive. As long as I remember to change the install path, and I certainly do, my small system disk has all the space it will ever need:
That’s it! I just love this laptop, having none of the issues typical for a small system SSD. As I mentioned at the beginning, I could in fact totally cope also with an even smaller system disk.
Author: Kari Finn
A Windows Insider MVP, Kari started in computing in the mid 80’s writing code for VAX / VMS systems. Since then, he’s worked in a variety of IT positions. He specializes in Windows image capture, customization, repair and deployment as well as Hyper-V virtualization. Kari is a proud Team Member at number #1 Windows site TenForums.com.