Types of Filesystems
My Setup
# nvme-os
@ /
@home /home
@.snapshots /.snapshots
@log /var/log
@pkg /var/cache/pacman/pkg
@machines /home/jay/machines
@media /home/jay/media
@flatpak /var/lib/flatpak
@flatpak-home /home/jay/.var/app
Mount Drives
Existing Drive
# note desired parition name and UUID
lsblk -f
# make mount directory and
# ex. /hdd-4tb or /mnt/hdd-4tb
sudo mkdir -p /<mount-dir>
# mount partition
# ex. /dev/sda2 /hdd-4tb
sudo mount -t ext4 /dev/<partition-name> /<mount-dir>
# give user permissions
sudo chown -R $USER:$USER /<mount-dir>
# update fstab
# ex. UUID=XXXX-XXXX /<mount_dir> ext4 defaults 0 0
sudo vim /etc/fstab
NTFS Drive (Windows)
# install required package
paru -S ntfs-3g
# mount drive partition
# ex. /dev/sda2 /hdd-4tb
sudo mount -t ntfs-3g /dev/<partition-name> /<mount-dir>
# if error regarding unsafe state of partition
# else skip these 3
sudo umount /dev/<partition-name>
sudo ntfsfix /dev/<partition-name>
sudo mount -t ntfs-3g /dev/<partition-name> /<mount_dir>
New Drive (format)
# note desired drive name and UUID
lsblk -f
# make new partition table
# ex. 1 partition: g n Enter Enter Enter Enter w q
fdisk \dev\<drive-name>
# format and mount partition
mkfs.ext4 -L <partition-label> /dev/<partition-name>
# can be btrfs or another filesystem
Mount BTRFS Subvolumes
Existing Subvolume
# note desired drive UUID
lsblk -f
# backup existing dirctory (if needed)
# ex. sudo mv ~/games ~/games.bak
sudo mv <mount-dir> <mount-dir>.bak
# make new dirctory
# ex. sudo mkdir -p ~/games
sudo mkdir -p <mount-dir>
# add mount to fstab
# ex. UUID=abcd-1234 /var/lib/libvirt/images btrfs noatime,compress=zstd:1,subvol=@games 0 0
sudo vim /etc/fstab
sudo mount -a
# take ownership
# ex. sudo chown -R $USER$:$USER ~/games
sudo chown -R $USER$:$USER <mount-dir>
# restore and remove backups
# ex. sudo cp -a ~/games.bak/* ~/games
sudo cp -a <mount-dir>.bak/* <mount-dir>
# ex. sudo rm -rf ~/games.bak
sudo rm -rf <mount-dir>.bak
New Subvolume (specific drive)
# find drive
lsblk -f
# <drive-label> - so its clear, could be called anything
# <partition-name> - partation where subvolume should be created ex. nvme1n1p1
sudo mkdir -p /mnt/<drive-label>
sudo mount /dev/<partition-name> /mnt/<drive-label>
# make desired subvolumes
#ex. sudo btrfs subvolume create /mnt/nvme1n1p1/@games
sudo btrfs subvolume create /mnt/<drive-label>/@<subvol-name>
# unmount drive
sudo umount /dev/<partition-name>