I know this is a pretty common question, but the Google results don’t seem to offer a good solution and are mostly aimed at people who already know Linux.
I am looking to switch from Windows, where I have my OS and whatever big game I’m currently playing on my 128GB SSD, and everything else (games, most software, documents, ect.) on my 2TB HDD. ELI5, How would I replicate this on Linux? I’m planning on installing Mint, but am open to using Bazzite if it offers any additional tools for this sort of this.
I kinda feel like you’re not getting as many results because it’s not really as complicated in Linux. In Linux, I feel like if it’s a good idea to be able to install an item wherever you want, the install process will usually have a step where you get to choose where to put it.
If you’re installing your games through Steam, there’s also a Storage tab in your Settings that will allow you to create new libraries wherever and then you can just choose whichever one you like to install items to. I think moving your home drive might accomplish most of everything else you want.
I had a very similar setup at one point, and what I did was just install Linux on the SSD. I’d recommend against mounting the HDD as
/home
as it’ll make your file manager feel sluggish, and would be an overall bad experience.I used to just symlink directories from the HDD as
~/Pictures
,~/Music
etc. and most software would just be able to work with those. You don’t really need to move software to your HDD since they rarely take much space, and moving to HDD will make them very slow.For games, Steam and Lutris will let you select the installation directory on a per-item basis so you should be just fine.
That said, maybe you could use this opportunity to get a new larger SSD and then you won’t have to worry about this anymore. Also, you’ll be able to keep your important data on both drives, so you’ll have sort of a backup when something fails. (A more robust backup solution will be better, but hey it’s a start.)
This is a nuanced question with nuanced answers. It really depends on what you want to do and how you want to arrange your data.
Originally, partitioning and
/etc/fstab
were (and still are) used to lay out important directories such as your home directory, temporary directory, etc. You can add entries here to mount other directories to selected location in your directory tree. For example, you could make entries to mount a secondary drive and then redirect/games
to point to that drive. It’s pretty easy to move your home directory or documents somewhere else.However, getting your software to use those directories can vary. Depending on your game launcher of choice, you’d have to figure out how to tell it to install games to your desired location. If you have a more concrete example then I might be able to detail this further.
However, getting your software to use those directories can vary. Depending on your game launcher of choice, you’d have to figure out how to tell it to install games to your desired location. If you have a more concrete example then I might be able to detail this further.
I do use Steam a lot, and I know they have tools for it, but a bunch of my library is installers from GOG and from Devs directly, which I’m sure I’ll struggle to get working in the first place.
You can use something like Lutris and have a different Wine directory for each installed game. These can be placed anywhere on your filesystem that you like.
I’m less familiar with GOG. I do know there are a few different launchers that try to solve this and other problems for managing Windows games.
Heroic Games Launcher or Bottles for GoG and Epic games.
I configured my previous PC that way. I set it up that way during installation. I put /home on the HDD, and everything else on the SSD. This meant that files just go to the right drive by default.
I did have to create a folder on the SSD and change the permissions so steam could put games there. Steam does not have root admin access.
This is an advanced configuration, but you can manage it. Since its during installation, you’re wiping the disks so there’s little risk in trying it again if you don’t get it right on the first try. Linux Mint’s installer has the tools and instructions on how to do this.
The directory structure on Linux works very differently from windows. Things can be linked and everything is a file, and the location of something in the directory structure doesn’t match the hardware its on.
/ is the root directory of the system. /home is where all your files are stored. Select “something else” during the Mint installation and manually set up partitions, to put / on the SSD, and /home on the HDD and it should just work.
I think one of the issues you might be running into is that a lot of linux guides use terminal commands instead of GUI tools, because it’s a lot easier to make a good guide with just terminal commands - the steps are short, you don’t need large images and an image editing program for every step, and they’re less ambiguous than a guide that goes “open this, click here, open that menu, then click there …”. This isn’t actually that complicated once you get the hang of it (at least not for the type of thing you want to do), but it’s definitely intimidating for a new user.
Games and documents should be fairly easy, chances are good that you can connect any drive you already have and it will immediately work. Software is a little more complicated, I’d honestly recommend not bothering with that until you’re more familiar with Linux. The issue here is that almost all software you’ll use on Linux is distributed via package managers (what’s called “app stores” on commercial OSs) and wants to be installed to certain standard locations - you can move those locations to external drives, but you’ll definitely need terminal commands to achieve that, if only because I guarantee that’s there’s no guide that won’t use the terminal.
On the plus side, IME software (excluding games obviously) takes up less space on Linux than on Windows. 128GB is probably enough for all your software.
I can only speak for myself on how I’d do this, but I’d dedicate the non-SSD for
/home
which avoids most of your headaches. For games on your SSD drive you could just make a dedicated/games
folder on your root partition.Personally I’m lucky as I have a 2 TB main SSD (NVMe), so I don’t have to choose. And then 2x4TB for storage, backups, linux ISOs etc.
Obviously you don’t want “just buy a bigger SSD” answer, but I’d definitely consider saving up for that.deleted by creator
A question for others before I write a more thorough reply:
Wouldn’t it be a good solution to move the directories elsewhere but then symlink them to their default locations? You’ll need to think a bit about file permissions while doing that, but are there any other caveats?
For the asker:
UNIX-like systems such as Linux are intentionally made so that a directory can be on a different hard drive than its parent directory. So, you can have /usr/games, including almost everything on it to be on hard drive #1, but then define that /usr/games/quake should be on hard drive #2. The limitation is, you cannot have different parts of the directory tree on the same hard drive. So, if /usr/games/quake is on its own partition, you cannot have /home/plzgivehugs/artwork/bigfiles on the same partition.…except, with symlinks you kind of can.
128gb is not a lot in the modern era.
When you install Linux you will have the options to put different parts of the system on different drives. The root system / contains everything. Within that is /home which contains all user owned files; that’s where your desktop, your files, media, games etc are kept. Outside the home folder all the other folders in / are system folders. But you can have different folders in the Linux system be on different hard drives and partitions - they don’t have to all be together as one simple file system .
Any folder can be on any drive (mounted on any drive) as long as Linux is told where to find things. It’s very common to put the /home folder in its own partition - either on the same physical drive as the main is but in its own partition or it’s own entirely separate physical drive. That keeps all your personal files and folders separate from the OS, so you can easily change the OS and preserve your personal stuff for example.
So in your case you could do this:
- SSD --> / (linux OS partition)
- HDD --> /home
The upside is the OS will load faster on the SSD, and your Home folder with have plenty of space for the future (which will be by far your biggest, as you fill it with games and media). The downside is that games (Steam, GOG etc) will install into /home so will not benefit from the SSD.
The Linux partition / only needs to be about 50gb, so you could make space for games. But check the requirements and recommendations of the Linux distro you’re interested in as its annoying if you run out of space for the OS and would need fixing later. You may need a bit more than 50gb if you’re a heavy user of things like flatpak at the system level for example. The rest of the space on the SSD could be for games:
- SSD - 50gb --> / (linux OS partition)
- SSD - 78gb --> Games partition (/mnt/games)
- HhD - /home partition
The Games partition here would be seen as a separate drive (so would be mounted in Linux somewhere like /mnt/games) for example. This would behave like a Drive D on Windows, appearing in your linux file manager as another drive in the same way a USB or CD drive appear. It can be set up to auto mount when you load Linux so it’s always there.
Or you could mount the space on the SSD as if it is a folder under your home partition - so for example:
- SSD - 50gb --> / (linux OS partition)
- SSD - 78gb --> /home/username/games partition
- HhD - /home partition
This should work - so most of /home is on one drive but one subfolder is on another. It’d look like it was just another folder in your home folder. BUT it could get messy - for example if you ever fiddle with it in the future you could break something. You could even forget you’d done this and break something if you decide to reinstall etc. I’d personally just mount the game partition as it’s own drive so it’s clear what it is.
In either scenario a GOG installer will see the location as a drive or folder and install directly in there if you point it there. If you use Lutris it’s easy to have all your gog games install to one place.
Steam usually installs games into a hidden folder in your home folder (E.g. /home/username/.steam) but you can easily add the drive as an extra library location in Linux in exactly the same way as you can have multiple locations in Windows. Then when you install games you can have the home folder still be the default but specify your Games SSD partition for your flavour of the month big game you want loading fast.
Having said all that the another option to seriously consider is replace the 128gb drive with something new and decent like a 1-2tb SSD. If you have a 128gb drive I’m guessing it’s a few years old so it may pay to future proof your device with a new drive. Moving OS is a good time to look at the hardware as it’s worth doing that just before you install the new OS.
In that situation you could partition the new SSD as follows:
- SSD - 50gb (or more)–> / (linux OS partition)
- SSD - 1950gb --> /home/ partition
- HhD - 2TB --> whatever you want
Then all your files would be on the SSD including all games, so they’d all benefit from the higher speed. The other HDD could be used for anything you like - more files space or backup space or store all your media files that really don’t need to be on the SSD.
Overall, if I were in your situation I’d get a new drive if I could afford one for the best overall experience. If I couldn’t I’d put the OS and a games partition on the SSD and the main home folder on the HDD. This way you could also easily still get a new bigger ssd in the future and migrate your home stuff over to it later on from the HDD.
In terms of the how, when you install Linux the graphical installer will allow you to specify how big the drives should be and where the main system partitions should go. Obviously back up your personal data from the device before you do this!!
I’d let the installer suggest a partition layout (telling it to remove existing windows partitions - back up any data you want to keep!!) and then edit whatever it suggests so that it makes swap and boot partitions for you. Leave the swap and boot partitions as they are. Reduce the OS / partition to 50gb to leave empty space on the SSD, and create a new ext4 partition on the HDD filling it and give that the mount point /home. To make space for the new hdd partition you may need to tell it to delete any existing partitions on the HDD drive if the installer doesn’t (again ensure you’ve backed up shy data you want to keep!).
The spare space on the SSD will be for the games partition. It’s probably easiest to leave that empty at first, install Linux and then once linux is set up boot in and use a partition manager to create the games partition in the empty space. The reason being you will need to specify a “mount point” for Linux to use for that drive - a folder basically - and it won’t exist at the time of install so may be a headache to sort at that stage as a newbie.
So complete the install and boot into your new Linux install and then I’d make a folder in /mnt called games. Easiest way is open a terminal and type:
sudo mkdir /mnt/games
It’ll ask for your admin password, put it in and the folder will be made.
Then you can open a partition manager such as gparted. If gparted isn’t installed then you can install it either from the Mint software store or open a terminal and put in:
sudo apt install gparted
This is using the admin account to use the software manager apt to install the packages for goarted. The software store does the same thing but is point and click.
Run gparted from your main “start” menu and it will show you your SSD and HDD. Select the SSD, select the empty space and add a partition.
Create an ext4 partition filling the empty space, give it a label like Games and then under mount point put /mnt/games
If there are any boxes for automount tick that so it’s available at startup. I’m used to KDE and kparted which has this; gparted may need you to right click on the partition once it’s created to set its properties for automounting.
Then restart the PC and you should be good to.go. The drive should appear in your file manager already mounted and ready for steam to use. I’d use lutris for gog games.
I would put everything I can on the larger drive, and install Mint on the smaller one.
I can always move files to the smaller boot drive later, if I find a reason to.