Automount Additional Drives at Boot
This tutorial describes the basics of utilizing both systemd mount files and the fstab file located in /etc/ in order to mount static drives during boot. It briefly explains how to find a partition or drive’s UUID, what some options do, and further reading should the information provided be insufficient.
Prerequisites
Section titled “Prerequisites”- Root or sudo access
Safer and Beginner Friendly Method: Mounting Drives with Systemd Mount Files
Section titled “Safer and Beginner Friendly Method: Mounting Drives with Systemd Mount Files”The benefit of mounting via systemd is that even if you get something wrong in your mount file, your system will still boot. Whereas a mistake in the fstab can render your system unbootable.
1. List the UUIDs of your partitions
Section titled “1. List the UUIDs of your partitions”lsblk -fNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTSzram0 [SWAP]nvme0n1├─nvme0n1p1 vfat FAT32 E04D-9F05├─nvme0n1p2├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /└─nvme0n1p6 ntfsnvme1n1└─nvme1n1p1 ext4 4e55896f-3f1f-4bc5-aa8a-fec099689cd9 931.5G 0%In this example, we want to mount an extra drive freshly formatted as ext4. We know it’s a 1TB drive, and know that nothing has been stored on it yet. Therefore, we can determine the partition to be mounted is nvme1n1p1 that has a UUID of 4e55896f-3f1f-4bc5-aa8a-fec099689cd9.
2. Identifying your partition
Section titled “2. Identifying your partition”Often lsblk -f will provide all the information you need to mount your disk with systemd at this point. If you’re still unsure which is the correct partition, you can run the following command:
sudo fdisk -lDevice Start End Sectors Size Type/dev/nvme0n1p1 2048 206847 204800 100M EFI System/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved/dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft basic data/dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI System/dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)/dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows recovery environment/dev/nvme1n1p1 2048 1953523711 1953521664 931.5G Linux filesystemWe already know our UUID in this example. However, fdisk -l can make it a bit more clear to us by showing the exact size of the partition (931.5G) as well as its type (Linux filesystem).
That should make it abundantly clear to us that the partition we want is nvme1n1p1 with a UUID of 4e55896f-3f1f-4bc5-aa8a-fec099689cd9 as described earlier. We knew earlier, but now we just know it for sure.
Once you are confident you’ve found the correct partition, copy the UUID. Copying from the terminal emulator is typically done with ctrl+shift+C.
3. Creating the Systemd Mount File
Section titled “3. Creating the Systemd Mount File”Let us say we want to use this drive primarily for games, a good place to mount that is in your user home. It can be anywhere you want, but for simplicity’s sake we’re going with in /home/user (replace user with your linux username). This matters because the mounting path dictates the name of the systemd mount file. Because this drive is intended for games, we’ll mount it to the games folder in user home, /home/user/games.
For a systemd mount file, that translates to home-$USER-games.mount (forward slashes / get replaced with hypens -) and systemd mount files go in /etc/systemd/system.
Feel free to use your text editor of choice, in this example we’ll be using micro.
micro /etc/systemd/system/home-$USER-games.mountPaste this template into the empty file:
[Unit]Description=
[Mount]What=Where=Type=Options=
[Install]WantedBy=multi-user.targetBelow are descriptions for each field in the file:
Description can be anything you want, it’s for your own recognition.
Put in the UUID you copied earlier. Here it will be UUID=4e55896f-3f1f-4bc5-aa8a-fec099689cd9
This is the mount point. A folder will be created if it doesn’t exist. Here, it will be /home/user/games. Replace “user” with your username if mounting in your home folder.
Filesystem type, here it will be ext4
Any mounting options you want. Here, we’ll use defaults,exec,rw,noatime. No spaces is important here.
Following the example, the filled out mount file should look like this:
[Unit]Description=Mount games drive (/home/user/games)
[Mount]What=UUID=4e55896f-3f1f-4bc5-aa8a-fec099689cd9Where=/home/user/gamesType=ext4Options=defaults,exec,rw,noatime
[Install]WantedBy=multi-user.target4. Finishing Up
Section titled “4. Finishing Up”To mount the drive we just created an entry for, run the following:
sudo systemctl daemon-reloadsudo systemctl enable --now home-$USER-games.mountYou should see the folder you chose for the mount point, and can check the status of the mount with systemctl status home-$USER-games.mount:
● home-user-games.mount - Mount games drive (/home/user/games) Loaded: loaded (/proc/self/mountinfo; enabled; preset: disabled) Active: active (mounted) since Sat 2026-05-02 13:02:31 CDT; 23h ago Invocation: e52ef8fe3d754c64a3825bc1ee89e7da Where: /home/user/games What: /dev/nvme1n1p1 Tasks: 0 (limit: 74118) Memory: 316K (peak: 3.9M) CPU: 5ms CGroup: /system.slice/home-user-games.mount
May 02 13:02:31 cachyos systemd[1]: Mounting Mount games drive (/home/user/games)...May 02 13:02:31 cachyos systemd[1]: Mounted Mount games drive (/home/user/games).- Find the UUID of your partition
lsblk -f- Create the mount file
micro /etc/systemd/system/mnt-foo.mountReplacing mnt-foo with the full path of where you want to mount, swapping the / for -.
- Fill out the mount file
[Unit]Description=Mount drive
[Mount]What=UUID=<partition UUID>Where=/mnt/fooType=somefsOptions=defaults
[Install]WantedBy=multi-user.targetReplacing <partition UUID>, /mnt/foo, and somefs with your UUID, directory, and filesystem. eg., ext4, as well as setting any other options you may want after defaults, such as _netdev for a NAS, or nofail for any non-critical drive.
- Reload your daemon
sudo systemctl daemon-reload- Mount your drive and set it to mount on boot
sudo systemctl enable --now mnt-foo.mountAdditional reading
Section titled “Additional reading”Advanced Method: Adding Entries to /etc/fstab
Section titled “Advanced Method: Adding Entries to /etc/fstab”1. List the UUIDs of your partitions
Section titled “1. List the UUIDs of your partitions”lsblk -fNAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTSzram0 [SWAP]nvme0n1├─nvme0n1p1 vfat FAT32 E04D-9F05├─nvme0n1p2├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /└─nvme0n1p6 ntfsIn our example, we know that we want to mount a Windows partition, which is ntfs. We also know that roughly half its space is available. Therefore, we can determine that the partition we want to mount is nvme0n1p3 and its UUID to be 08A24E90A24E81E4, with a file system of ntfs in this example.
2. Identifying your partition
Section titled “2. Identifying your partition”Often lsblk -f will provide all the information you need to mount your disk through /etc/fstab at this point. If you’re still unsure which is the correct partition, you can run the following command:
sudo fdisk -lDevice Start End Sectors Size Type/dev/nvme0n1p1 2048 206847 204800 100M EFI System/dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved/dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft basic data/dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI System/dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)/dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows recovery environmentWe already know our UUID in this example. However, fdisk -l can make it a bit more clear to us by showing the exact size of the partition (1.4T) as well as its type (Microsoft basic data).
That should make it abundantly clear to us that the partition we want is nvme0n1p3 with a UUID of 08A24E90A24E81E4 as described earlier. We knew earlier, but now we just know it for sure.
Once you are confident you’ve found the correct partition, copy the UUID. Copying from the terminal emulator is typically done with ctrl+shift+C.
3. Adding an Entry to /etc/fstab
Section titled “3. Adding an Entry to /etc/fstab”Now that we’ve obtained the UUID of our partition, it’s time to open up the fstab file.
Feel free to use your text editor of choice. In this example, we will use nano. In order to edit the fstab file, it must be opened as root:
sudo nano /etc/fstabUsing the arrow keys, navigate to the bottom of the fstab file, then create our new entry on an empty new line:
UUID=08A24E90A24E81E4 /media/windows ntfs3 defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000 0 0The break down of this entry is as follows:
-
UUID=08A24E90A24E81E4is the file system we want to mount, identified by its UUID. There are other methods to identify your filesystem, though UUID tends to be safest. Additional methods listed here. -
/media/windowsis the mount point of our drive. The Linux Filesystem Hierarchy Standard says that/media/is the proper location for removable drives to be mounted.windowsindicates the directory we wish to mount our drive to. Each drive we want to mount will need its own directory. -
ntfs3is the filesystem type to be used. We are explicitly using the ntfs3 kernel driver in our example. Other examples would beext4,xfsor similar. This explicit filesystem type declaration can be replaced withautoto allow the mount command to make its best guess. -
defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000: These are mount options:-
defaults: a standard set of options includingrw, suid, dev, exec, auto, nouser, and async. -
nofail: allows the boot process to continue even if this mount fails. -
uid=1000andgid=1000: sets the user and group ownership of the mounted files to the user and group with ID 1000. -
rw: mounts the filesystem as read-write. -
user: allows a non-root user to mount the filesystem. -
exec: allows execution of binaries on the mounted filesystem. -
umask=000: sets the file permission mask to allow read, write, and execute permissions for everyone. -
the first 0dump is typically deprecated in modern systems. Leaving this at 0 won’t hurt anything. Feel free to read more about it here. -
the second 0sets the order for file system checks at boot time. For a root partition, this should be 1 unless your root file system is btrfs, which should otherwise be set to 0. All other file systems in your fstab should be either 0 (disabled) or 2. More information here.
-
For a more in depth look of each option, visit these two fstab man page and mount man page
More info
Section titled “More info”As an aside, all options after the filesystem type declaration are optional if you do not change them from the default.
Thus
UUID=<partition UUID> /media/foo somefs
and
UUID=<partition UUID> /media/foo somefs defaults 0 0
are equivalent. somefs followed by nothing is implicitly somefs defaults 0 0
4. Finishing Up
Section titled “4. Finishing Up”If you wish to mount the drive you created an entry for now, you need to run the following:
sudo systemctl daemon-reloadand then:
sudo mount -aYour drive should now appear under /media/windows and will appear there each time you reboot.
ls /media/windows# '$Recycle.Bin' Linux SteamLibrary# AMD Modding swapfile.sys# Apps pagefile.sys 'System Volume Information'# bootTel.dat PerfLogs Users# Development ProgramData WiiU# 'Documents and Settings' 'Program Files' Windows# DumpStack.log.tmp 'Program Files (x86)' XboxGames# FanControl Recovery xiv_modding# Games RetroArch-Win64# Intel 'Ship of Harkinian'If you wish to create a link to your newly mounted drive in your home directory, you can run the following:
ln -s /media/windows ~/WindowsTo show it worked:
ls ~/Windows# '$Recycle.Bin' Linux SteamLibrary# AMD Modding swapfile.sys# Apps pagefile.sys 'System Volume Information'# bootTel.dat PerfLogs Users# Development ProgramData WiiU#'Documents and Settings' 'Program Files' Windows# DumpStack.log.tmp 'Program Files (x86)' XboxGames# FanControl Recovery xiv_modding# Games RetroArch-Win64# Intel 'Ship of Harkinian'- Find the UUID of your partition
lsblk -f- Open
/etc/fstab
sudo nano /etc/fstab- Create an entry in the bottom of the file
UUID=<partition UUID> /media/foo somefs defaults 0 0Replacing <partition UUID>, foo, and somefs with your UUID, directory, and filesystem. eg., ext4, as well as setting any other options you may want after defaults, such as _netdev for a NAS, or nofail for any non-critical drive.
- Reload your daemon
sudo systemctl daemon-reload- Mount your drive
sudo mount -aThis drive is now mounted, and will now be mounted on boot moving forward as well.