SSD - HDD Partitioning | Setup Garuda Linux

Help needed in installing Garuda Linux on SSD and add HDD as a plus space

Recently I installed Garuda Linux on my laptop, I wanted to see how "hard" is it, to download it. I am a Windows user, I use windows almost every day, but I want to change to Linux because I think it would be better for me to use that.

I want to download Garuda Linux to my main PC too (what is currently running Windows), but first I test downloaded it to my laptop.

Downloading Garuda Linux on my laptop

On my laptop there were some things to do (my laptop was running Windows too, when I started to download the Garuda Linux)...

First set some BIOS settings...then some code error was in the downloaded scripts, but I fixed it...then the Disk download did not want to work... It was something about grub-install...then I found my fix, I had to do an other "tactics" at manual partitioning setup...

I used manual partitioning, I created a new Partition Table (Master Boot Record):

Mount Point File System Size Tags
/boot/efi fat32 2GB boot
/ btrfs 15GB root
/home btrfs 10GB
/usr btrfs All the left on GB

This worked pretty well, now I had Garuda Linux on my laptop!

Downloading Garuda Linux on my PC (?)

Okay, now I know that I had to do some partitioning, fix little code, and edit some setting in the BIOS...

But now I want to download Garuda Linux on my PC. On my PC I have an SSD and a HDD (on my laptop there was only one SSD). Currently I have Windows on my SSD (and some apps), and some files, programs on my HDD.

What I want to achieve, is that my SSD runs Garuda Linux, some important apps, where speed matters, and have other apps and files on my HDD (and all the current files are deleted from my SSD and HDD too, so no, I don't need dual booting, and I want to delete all files what are left on, from the Windows).

First up, I don't know, if I did anything bad on my laptop partitioning, did I use the good sizes, do I have to add a new type of works, but I don't know if it could be any better, and, my PC has SDD AND HDD how am I going to set up partitioning like that?

Do I have to do the same partitioning as I did with my laptop, just with my PC's SSD, and then I set up somehow my HDD? But then how will I know if something is on the SSD or the HDD?

I know Linux in basic level, but I am not a professional in manual partitioning, and Linux file system.

My main Questions (please read the upper text to give me the best advice, answer)

  • In the main Installer of Garuda Linux, at the manual partitioning, what I need to set to achieve my goal?

  • Do I need to set my HDD after the main Garuda Linux Installer was succesful?

  • How will I know if a file will be on my SSD or HDD?

Please be accurate and detailed when answering, as I said I am not a professional, I am new to the Linux it's self.

Thank you for reading it, I am thankful if you can give me a good answer!

I know this isn't the intent of the topic, but having /usr in it's own partition is a bad idea on Garuda with btrfs. If you ever have roll-back or boot off a snapshot your system will be totally invalid because the snapshot won't contain /usr.

Also, with btrfs, there is very little reason to partition anything this way.

There are a lot of ways you could do it but I would recommend not using manual partitioning in this case. Just install Garuda on the SSD and ignore the HDD for now. Let Garuda partition the disk and create subvolumes for you.

You don't need to, but I think it would be easier to do so.

Linux treats filesystems a bit differently than windows does. With Linux, no matter how many disks/volumes you have you have a single file tree that starts with /. Everything else gets mounted inside of that. For example, consider the example of when you have 2 partitions, one for / and another for /home. An user or application doesn't need to know that /home is a actually on a different partition. It just writes to /home and the data gets stored wherever /home points to.

Before I can explain how to work with this though, we need to have a basic understanding of how btrfs subvolumes work. Normally, a partition is located at a certain point in the filesystem such as above in the example with / and /home. btrfs adds an additional concept here called subvolumes. Multiple subvolumes can live within a single partition. They can be mounted separately but share the space of the partition between them. So, with the example above, using btrfs, you can have one single partition, and have both / and /home be subvolumes in that single partition.

To answer your question if you let the Garuda installer setup your SSD, it will create a series of subvolumes and properly mount them. After the install. You can setup your HDD.

There is no right way to do this, but here is how I would do it:

  • Create a partition on the HDD
  • Format it with btrfs
  • For everything you want to be stored on the HDD, create a subvolume and mount it at the appropriate location.

For example, let's say you want to store your videos and downloads on the HDD since those are big files which take up a lot of space. You can create a subvolume called videos and mount it at /home/username/Videos and do the same with downloads at /home/username/Downloads


Thanks for the quick reply @dalto !
I kind of get a idea what this is all about...
I could just do it now, but I still have to save my files, what I am going to need (what I don't want to delete). So now, I am going to reliance on my memory...
As I remember, when I reached the partitioning process of the downloader, there was an option like Erase disk when I clicked it, it was all good, but when the system was downloading the files, there the code type error popped up (What I managed to fix later on), so that was why the first installation was not succesful.
However, when this error popped up, the next time I launched up the installation (with the code bug fixed), there was no option as Erase disk, because that process previously was terminated.
The only choice I had left was:
Manual partitioning.
So now...If i launch up the downloader of Garuda Linux and I reach Partititons, and I fix the code bug before, if I click option Erase disk, that will be the good choice, what you mentioned?

And if, I must use Manual partitioning, what values should I set then?

1 Like

When this happens, just use gparted or KDE partition manager from the live ISO and either erase all the partitions or put a new GPT partition table on the disk before running the installer.

Assuming you are UEFI booting(which you should be unless your machine is very, very old), you should create a fat32 partition of 500MB and mount it at /boot/efi and then create a second partition which is btrfs and mount it at /. If you do that, the installer will automatically create all the subvolumes you need inside of it.


Okay! All things are clear now.
I am going to gather my data what I want so save from my current setup, and then I will launch the Downloader of the Garuda Linux.
It will take about 10 mins, and I will be back to here. I will ask new questions if something is not working, till I manage to sucessfully download Garuda, I am going to leave this topic up!
And also, if I am going to need help in the HDD partition creation.


So okay, now I am at the partitioning menu.
I hope, that this is okay, because I can't upload image (I am a new user).
So now...I know my SSD Is a Kingston ...
So the storage device is at good value!
Now I need to click Erase disk?
(And I also done the code fix too!)
Sorry, I am very "shaky" now, so I am going to ask every single thing :frowning:

Yes, as long as you are OK with erasing that disk, you should be good there.


Okay, now I clicked Erase Disk.
I updated the imgur post too, with a new screenshot!
Hopefully the installation will be successful.

1 Like

It is done, now I am auto updating my things, and downloading default apps what it recommends me!
After these I want to do the HDD, so till that I leave the topic open.

Okay. So now all the updates, and everything is working.
Now I need to add my HDD.
You said:

How do I do these steps? @dalto

Can we see the output of:

lsblk -o name,type,fstype,size,uuid,mountpoint

Also, I will be away for a few minutes so I probably won't reply immediately.


The output of lsblk -o name,type,fstype,size,uuid,mountpoint is:

NAME   TYPE FSTYPE    SIZE UUID                                 MOUNTPOINT
sda    disk         111,8G
├─sda1 part vfat      260M EB94-73A9                            /boot/efi
└─sda2 part btrfs   111,5G e1fd8aa5-3909-4e25-beac-5e11b1b3a928 /root
sdb    disk         931,5G
├─sdb1 part            16M
└─sdb2 part         931,5G
sdc    disk iso9660   7,6G 2021-09-26-04-35-27-00
├─sdc1 part iso9660   2,3G 2021-09-26-04-35-27-00
└─sdc2 part vfat        4M 5DAB-7B53
zram0  disk          15,6G                                      [SWAP]

And, it is okay, I have time!
(Also, as I see on the output, the last drive I think, what has 7GB, it is my pendrive, it is still plugged in :smiley: )

OK, first, a couple of critically important assumptions.

  • The 1TB drive, /dev/sdb is your HDD
  • You are OK with erasing whatever is currently on that device

If both of those are OK, the first thing you need to do is start clean, create the partition and format it:

sudo parted /dev/sdb -- mklabel GPT
sudo parted /dev/sdb -- mkpart primary btrfs 1MiB 100%
sudo mkfs.btrfs /dev/sdb1

Then run the lsblk command from above again so we can have the UUID for that partition.


All done. (It wrote something about Information: You may need to update /etc/fstab. too.)
The output of lsblk -o name,type,fstype,size,uuid,mountpoint is:

NAME   TYPE FSTYPE   SIZE UUID                                 MOUNTPOINT
sda    disk        111,8G
├─sda1 part vfat     260M EB94-73A9                            /boot/efi
└─sda2 part btrfs  111,5G e1fd8aa5-3909-4e25-beac-5e11b1b3a928 /root
sdb    disk        931,5G
├─sdb1 part btrfs  931,5G 544359f4-53d2-46f1-ac37-42fa5801c0b5
└─sdb2 part          512B
zram0  disk         15,6G                                      [SWAP]

OK, first we need the root of the btrfs partition mounted temporarily so we can create subvolumes

sudo mount /dev/sdb1 /mnt -o subvolid=5

Then you follow these steps for each things you want to put on your HDD. I will use downloads as an example.

Create the subvolume:

sudo btrfs subvolume create /mnt/downloads

Add the following line to /etc/fstab at the bottom:

UUID=544359f4-53d2-46f1-ac37-42fa5801c0b5 /home/username/Downloads      btrfs   subvol=downloads,defaults,noatime,space_cache,autodefrag,compress=zstd 0 0

Be sure to replace username with your actual username.

Next we test the mount:

sudo mount /home/username/Downloads

Again, replace username with your username


Oookay, I have done everything. So now what I download to /home/myusername/Downloads will be on my HDD? Right?

Should be. You can verify with findmnt /home/username/Downloads or df -h or mount | grep Downloads


Okay. If I want to create a directory (Example: MyWork), do I have to use the same method? And do I have to change anything on the text:
UUID=544359f4-53d2-46f1-ac37-42fa5801c0b5 /home/username/Downloads btrfs subvol=downloads,defaults,noatime,space_cache,autodefrag,compress=zstd 0 0
And also, as I see now I have a Device called primary and I have my folder downloads in it!

You need to change two parts of that. The subvol= part and the /home/username/Downloads part.