Trying to use a small ssd and a large hard drive

Hey look, it’s my first post!
In my setup, I have 2 drives that I use. First, I have a smaller, faster 200 GB ssd that I installed EndeavourOS on, and second, I have a slower, 2 TB hard drive that I used for all my large programs, games, and documents when I was on Windows. As I’ve been using my system, I’ve been looking for ways to free up space on my ssd. My go-to on Windows was to move programs to my hard drive, but looking at this post on the Arch Linux wiki, it seems to me like that just doesn’t happen on Linux. So, I’m not really sure what to do. Will I just have to leave my 2 TB disk just sitting there? I looked into something like UnionFS and, I may be misunderstanding it, but I don’t think that’s what I need considering the hastle mentioned in the linked post.
What should I do? Is there a better solution I’m missing?

Thanks for help in advance!

Maybe you can move you’re home folder to the 2TB hard drive. This way all you’re documents, download files and pictures are stored on you’re second drive.

i would say everything is possible on linux… you could also put /usr/bin/ on a separate drive… but this is not convenient.
What you could easily do is to use big-slow-hd for data, you can let /home on ssd too and then create folders for documents, pictures, music, video on the slow-hd and bind them to the folders on the ssd under your /home/username/
so that they behave like being on the same disk.

will be like this:

  • install EnOS to SSD, and boot into it
  • create folders on hdd and edit fstab:
UUID=uuid-of-slow-hdd	/mnt/data	 ext4	defaults,relatime,data=ordered 0 0
/mnt/data/pictures /home/username/pictures auto	bind	0 0
/mnt/data/documents /home/username/documents	auto	bind	0 0
/mnt/data/music /home/username/music   auto    bind    0 0
/mnt/data/video /home/username/video   auto    bind    0 0


I think the first thing we need to know to help is how your system is currently set up. if you can post the result of:

sudo blkid

that would help. An idea of the split between programs and data would also help. My own set up has all ‘data’ on a separate drive, with all the ‘standard directories’ redirected to it with soft links - which means that / and /home together only take up about 35-40 Gb while my data exceeds 1 Tb. If this might solve your problem, we’d be happy to show you how…

Edit: or bind mount them instead for the same result :grin: (post above crossed with mine)

Welcome to the forum!

If i understand your problem correctly, you could use some space from the hard drive and format it to e.g. ext4. Then check which data takes very much space from the SSD, e.g. command

   du -hd 1 /

Then basically move the ”big stuff” from SSD to HDD to suitable folders, and mount the new folders accordingly.

But how to move stuff depends on where it currently is. You’ll need root rights to move system folders. But moving system folders may be really tricky if they are currently in use!

Moving just user data is much easier, but not trivial…

That sounds like it would work- What’s the best way to do that? Would I need to set up something like a symbolic link so that the folder on the ssd would point to my moved home folder on the hard drive? or could I set some default on Linux so that the file system knows that the folder moved?

Oh, so basically we mount the hdd, but then tell fstab that things like /home/username/pictures are mounted on the hdd?

Ah, here is the output of that. Note that there is an additional ssd, /dev/sdb, that currently has Windows on it and I’m going to uninstall and move to another computer later.

/dev/nvme0n1p1: UUID="0639-EEF4" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="567f4b52-bc68-6e42-91df-5d28aedd2bf3"
/dev/nvme0n1p2: UUID="6d652097-6ffa-43db-9146-1cd651113103" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="c4b6c954-9b92-fe43-b2a3-96297d703a6e"
/dev/nvme0n1p3: UUID="97b9c16e-cf85-4938-9ebb-6956b326934f" TYPE="swap" PARTUUID="d300b1f7-fdae-fb4a-b4c3-d11c15764fc8"
/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="05ef8e8b-f750-435a-98b3-019d337ccc79"
/dev/sda2: LABEL="Spinning" BLOCK_SIZE="512" UUID="7A125E9E125E5F67" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="969aa72d-7d4a-49b7-9944-0066e9cee5a9"
/dev/sdb1: LABEL="Recovery" BLOCK_SIZE="512" UUID="AC46A2F446A2BF08" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3aee7247-d2c3-4b96-a22e-86deae5fd66c"
/dev/sdb2: UUID="4053-94CE" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="7364fa3a-ea8b-40b6-9435-bf55db105030"
/dev/sdb3: PARTLABEL="Microsoft reserved partition" PARTUUID="895d2390-9c18-46f0-b537-ca5dda125176"
/dev/sdb4: LABEL="SSD" BLOCK_SIZE="512" UUID="E476B29776B269C6" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8b966f12-2bfd-4375-bf6a-00d414931da6"
/dev/sdb5: BLOCK_SIZE="512" UUID="0EE2A233E2A21F49" TYPE="ntfs" PARTUUID="81a60792-20a4-4103-bce1-74e9243671a9"
/dev/sdc1: LABEL="ENDEAVOUROS" UUID="C2C2-15C4" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="0284b0a6-01"

I’m still in a fine situation right now, but I would like to get the problem solved sooner rather than later.

That makes sense. I think that would work for one off things, like a particularly large document and the like. Would the other solutions here would work for recurring things, like downloads?

folders are saved on hdd and mounted into your filesystem on the ssd to be exact :wink: so they behave like being on the ssd but are stored on the hdd. Also nice if you reinstall system as you simple can wipe the SSD and reinstall and then after first boot bind them again

1 Like

Do you want/can reformat the HDD? Or you need to keep files/OS on it?

To help us understand and clarify what you want to achieve, could you show the output of the following command:

  lsblk -fm

and explain the contents of each partition?

Thank you so much for all your help. Sorry, for wasting you time, I was away for a family event. I can reformat the HDD if need be. Here is the output of lsblk -fm:

sda                                                                                                   1.8T root  disk  brw-rw----
├─sda1                                                                                                 16M root  disk  brw-rw----
└─sda2      ntfs         Spinning 7A125E9E125E5F67                        1.1T    39% /mnt/Spinning   1.8T root  disk  brw-rw----
sdb                                                                                                 223.6G root  disk  brw-rw----
├─sdb1      ntfs         Recovery AC46A2F446A2BF08                                                    499M root  disk  brw-rw----
├─sdb2      vfat   FAT32          4053-94CE                                                            99M root  disk  brw-rw----
├─sdb3                                                                                                 16M root  disk  brw-rw----
├─sdb4      ntfs         SSD      E476B29776B269C6                                                  222.5G root  disk  brw-rw----
└─sdb5      ntfs                  0EE2A233E2A21F49                                                    527M root  disk  brw-rw----
nvme0n1                                                                                             232.9G root  disk  brw-rw----
├─nvme0n1p1 vfat   FAT32          0639-EEF4                             299.1M     0% /boot/efi       300M root  disk  brw-rw----
├─nvme0n1p2 ext4   1.0            6d652097-6ffa-43db-9146-1cd651113103  121.6G    37% /             215.4G root  disk  brw-rw----
└─nvme0n1p3 swap   1              97b9c16e-cf85-4938-9ebb-6956b326934f                [SWAP]         17.2G root  disk  brw-rw----

sda1 is my large but slow 2 tb hard drive. Currently, it has some documents and the programs from that I was using on Windows, but am slowly moving to linux. sdb is where Windows is installed, and the drive will be removed. nvme0n1 is where Endeavouros is installed. Again, not out of space yet.

Thank you again for your help, you’ve been so nice! :yellow_heart:

Welcome @Dr_KittyKat

I read fast the thread !
You have 2 solutions :

1/ Use the 61% freespace you have on sda and add a partion on it with ext4 that would be your /home

sda divided in 2 partitions :

  • ntfs resize it first smaller
  • ext4 /home. use the free space after resize (would be where your data goes from Eos)

nvme0n1 just uses it for system knowing that 20 or 30Go is enought for it if you maintain and clean with paccache regulary.

  • fat32 1mo
  • ext4 /
  • swap

2/ Resize your sda like 1/ with same ext4
Then use nvme0n1 only for EndeavourOS system and data, so when your disk is full push and backup your data on sda ext4…