I have an old laptop which I use on college. An i3, 8GB, 1TB HDD (5400rpm) and a 120GB SSD. I have a Windows 2016 running on the SSD, which uses about 90GB of that drive (OS plus other software). Since I need to use some Office tools, I can't simply uninstall it. However I'm also trying to use a Debian based OS (Pop!_OS, by System76), so naturally I dual booted the hell out of it.

I've installed the Linux based OS on the HDD, but not surprisingly it's as slow as I expected.

I do want to install both OSes on the SSD, although I'm pretty sure that I can't fit both on those < 120GB.

Is there a way to put only the Linux 'core' on those 30GB and all of the less accessed files on the HDD?

I have no problem re-installing Linux since it's a fresh install.

Are LVMs the solution for this? Should I set the root to the SSD and everything else to the HDD?


I have Debian Gnu/Linux. I have had in installed for a few years, and have lots and lots of packages installed. I am using 13GB out of a 20GB partition. I have another partition for /home (51GB/90GB).

I have not yet learned about LVM.

I have done a few things to stop things using too much space:

  • I moved my Microsoft Windows VM to an external hard-disk, as it was the single largest contributor to disk usage, even though it only had a few apps installed.

  • I made an opt directory on /home, and linked to it from /opt (and same for /usr/local. I did this so that these files would not be wiped on OS upgrade (but it also saves space on /. The some trick can be done with some of the other directories.

| improve this answer | |

In the following, I assume your 1TB HDD is /dev/sda and the SSD is /dev/sdb. If it is not, please make the substitution.

Yes, you can install Linux to /dev/sdb (your SSD) while Windows stays on /dev/sda (your HDD) after making a little elbow room. Fortunately the Linux OS and its apps are much smaller than their Windows counterparts, so you don't need to learn the intricacies of LVM.

Copy \Users from the SSD to the HDD in Linux; make sure you have everything, compare after the copy to make sure you have them all. Then boot Windows and tell it to use D: (the HDD) for Users by:

Open File Explorer, and click on Quick Access if not open.
Click the user folder that you want to change to select it, then click the Home tab on the Ribbon; the Home tab appears.
In the Open section, click Properties.
In the Folder Properties window, click the Location tab; click Move.
Browse to the new place for this folder, and click Select Folder then click OK.
Confirm you want to move all files from the old location to the new location by clicking Yes then close File Explorer.
The next time you start File Explorer, the User folder will appear in the new location.

Delete the Windows Swap file by disabling Windows Swap (and, if you have it, delete the Hibernation file) then recreate them on D: after a reboot.

You will have put the infrequently used files of Windows off on the HDD, as well as made space for Linux.

Reinstall Linux to the SSD, and tell it in the install process that you want / (root) on the SDD, but /home will be on the HDD in the ext4 partition you made in the install.

Complete that, and you've done the same thing for both OS; the data's on the HDD, but the programs are on the SSD.

| improve this answer | |
  • I was about to suggest the same procedure. You seem to make arbitrary assumptions on what is where (sda/sdb), though. Also, can you expand upon the part "tell it to use the HDD for Users"? Up to now, I do this on a per-user basis using directory junctions (the Windows equivalent of symlinks). – Hermann Apr 22 '19 at 18:52

To keep both OSes on the SSD, you would have to partition the SSD. You could use Gparted on most Linux OSes and Disk Management on Windows to partition the drive. When you are done partitioning, you can install the Linux OS on the empty partition that will come up as another part of the same drive on the OS installer.

Warning: Any partitions you make will be permanent

Side Note: It might be worth trying to install a lighter weight distro, to see if that goes fast enough

| improve this answer | |

Here's what I did:

I set up the GNU distro root (/) to the SSD along with Windows, using 80GB to the Microsoft's OS and 40GB to Linux. About the HDD, I used it to store /home and /swapfile (I know that it's not the best practice to use it on a slow drive but I barely use those 8GB memory). I'm thinking of a cron job to avoid filling the SSD. Half the HDD is reserved to Linux and half to Windows.

| improve this answer | |
  • Since I'm a new contributor, unfortunately I have no rights to upvote the answers, but thanks for reminding me to mark the solution! – Victor Camilo Apr 24 '19 at 13:20
  • I think you can always upvote answers to your questions no matter your rep. You cannot upvote answers on other questions before a certain threshold though. – Rui F Ribeiro Apr 24 '19 at 15:10
  • Unfortunately, I really can't. Here's the message I get after trying to upvote: Thanks for the feedback! Votes cast by those with less than 15 reputation are recorded, but do not change the publicly displayed post score.. As soon as I get to 15 I'll be sure to upvote the replies. – Victor Camilo Apr 25 '19 at 16:33
  • Now you can ;-) – Rui F Ribeiro Apr 25 '19 at 16:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.