Home Linux System AdministrationBasics How To Mount and Unmount Drives on Linux

How To Mount and Unmount Drives on Linux

by schkn

After creating disk partitions and formatting them properly, you may want to mount or unmount your drives.

On Linux, mounting drives is done via mountpoints on the virtual filesystem, allowing system users to navigate the filesystem as well as create and delete files on them.

In this tutorial, we are going to see how you can mount and unmount drives on your Linux system.

We are also going to see how you can amend the fstab file in order to make your mount settings permanent.

Prerequisites

In order to mount drives and filesystems on Linux, you need to have sudo privileges on your machine.

To verify that you have sudo privileges, you can run the “sudo” command with the “-l” in order to list the privileges you currently own.

$ sudo -l

User <user> may run the following commands on schkn-ubuntu:
    (ALL : ALL) ALL

If you are not sure how to give sudo rights to users on Debian/Ubuntu or CentOS/RHEL, make sure to check our dedicated guides on the subject.

Mount Drives on Linux

In order to mount drives on Linux, you have to use the “mount” command using the following syntax

$ sudo mount <device> <dir>

First of all, you need to check the disk partitions already created on your system that are not already mounted.

To list partitions with filesystems types, use the “lsblk” command with the “-f” option.

$ lsblk -f

NAME    FSTYPE    LABEL        UUID                                    MOUNTPOINT
sda
├─sda1  ext4                   0935df16-40b0-4850-9d47-47cd2daf6e59
sdb
├─sdb1  ext4                   b9df59e6-c806-4851-befa-12402bca5828    /

Alternatively, you can use the “blkid” command in order to locate and list block devices on your system.

Unfortunately, this command does not list the current mountpoints used by your drives.

/dev/sda1: TYPE="ext4" PARTUUID="0935df16-40b0-4850-9d47-47cd2daf6e59"
/dev/sdb1: UUID="b9df59e6-c806-4851-befa-12402bca5828" TYPE="ext4" PARTUUID="269f8db7-90b7-4ebe-acf4-521d6dc2eadb"

In this case, we want to mount the “sda1” partition on our filesystem.

To mount the “sda1” partition, use the “mount” command and specify the directory where you want it to be mounted (in this case, in a directory named “mountpoint” in the home directory.

$ sudo mount /dev/sda1 ~/mountpoint

If you did not get any error messages in the process, it means that your drive partition was successfully mounted!

Check Mounted Drives on Linux

In order to check that your drive partition was correctly mounted, you can use the “lsblk” and inspect the mountpoint column.

$ lsblk -f

NAME    FSTYPE    LABEL        UUID                                    MOUNTPOINT
sda
├─sda1  ext4                   0935df16-40b0-4850-9d47-47cd2daf6e59    /home/user/mountpoint
sdb
├─sdb1  ext4                   b9df59e6-c806-4851-befa-12402bca5828    /

Your drive partition was correctly mounted on the mountpoint, however there is one little gotcha that you need to be aware about when mounting drives.

Using the “mount” command does not make your mounts permanent : you need to add them to the fstab file for them to be permanent.

If you were to reboot your system without adding your mount settings to the “fstab” file, your drive partition would not be mounted on reboot.

Mounting Drives Permanently using fstab

The “fstab” file is a very important file on your filesystem.

Fstab stores static information about filesystems, mountpoints and several options that you may want to configure.

To list permanent mounted partitions on Linux, use the “cat” command on the fstab file located in /etc.

$ cat /etc/fstab

# /etc/fstab: static file system information. 
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system>              <mount point>         <type>  <options>          <dump>  <pass>
UUID=b9df59e6-c806        /                     ext4    errors=remount-ro  0       1

The fstab contains multiple columns :

  • Filesystem : you can either specify a UUID (for universal unique identifier), a label (if you chose a label for your disk), a network ID or a device name (which is not recommended at all);
  • Mountpoint : the directory on the filesystem that you are going to use in order to access data stored on the disk;
  • Filesystem type : the type of filesystem you use to format your disk;
  • Options : some options that you can specify in order to tune your mount (“ro” for a read-only mount or “noexec” to prevent binary execution);
  • Dump : in order to enable to disable filesystem dumping on the system (using the dump command);
  • Pass Num : sets the order used in order for the “fsck” utility to check your filesystem. If you are not mounting the root device, you should set this option to “2” or “0” as “1” is reserved for the root device.

As you can see here, besides mounting the “sda1” partition in the previous section, only the partition with the UUID shown above would be mounted.

In order to get the partition associated with this UUID, you can use the use the “blkid” command in the following way.

$ blkid | grep <UUID>

Given the UUID of the fstab file, this would give us

$ blkid | grep b9df

/dev/sdb1: UUID="b9df59e6"

Using the blkid command, I am able to know that the “sdb1” partition is mounted at boot time.

However, in this case, I need the “sda1” partition to be mounted on boot.

This is what we are going to configure in the next section.

Add Drive Partition to the fstab file

In order to add a drive to the fstab file, you first need to get the UUID of your partition.

To get the UUID of a partition on Linux, use “blkid” with the name of the partition you want to mount.

$ blkid /dev/sda1

/dev/sda1: UUID="0935df16-40b0-4850-9d47-47cd2daf6e59" TYPE="ext4" PARTUUID="7125fcc698a-01"

Now that you have the UUID for your drive partition, you can add it to the fstab file.

Open the /etc/fstab file and add one line for your new drive partition.

$ sudo nano /etc/fstab

# <file system>              <mount point>              <type>  <options>   <dump>  <pass>
UUID=0935df16-40b0-48      /home/user/mountpoint      ext4    defaults    0       0       

Note : if you have trouble seeing entries using the blkid command, try using it using sudo. Some entries may be hidden for non-sudo users.

Save your file and your mount settings should be saved even if you reboot your system.

Congratulations!

You successfully mounted disk drives on Linux and you saved your mount settings using the fstab file.

Listing mountpoints using findmnt

In order to find mountpoints and filesystems on Linux, you can use the findmnt command.

You can either specify the mountpoint or the device name with findmnt.

$ findmnt <device|mountpoint>

In our case, we are going to use findmnt to check if our device was correctly mounted on the target we specified in the fstab file.

$ findmnt /dev/sda1

TARGET                        SOURCE        FSTYPE     OPTIONS
/home/devconnected/mountpoint /dev/sda1     ext4       rw,relatime

Mounting USB drives on Linux

Now that you you know how you can mount drives, let’s see how you can mount USB drives.

When inserting a USB drive into your computer, the first thing that you want to do is to identify the disk name you just inserted.

Identify USB drive name using fdisk

The easiest way to identify USB drive names is to use the “fdisk” command with a “-l” option for listing.

$ fdisk -l

Disk /dev/sdc: 30 GiB, 35899345920 bytes, 167772160 sectors
Disk model: STORE USB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos

As you can see here, you are given the disk model when executing fdisk.

You can make sure that this is the correct drive by executing the “lsusb” command in order to list the USB devices on your machine.

$ lsusb

Bus 001 Device 001: ID 1d6b:0001 Store USB

Now that you have identified your USB drive, it is time to mount it on the filesystem.

Make sure also to have a look at the partitions already created on your USB drive.

$ lsblk

NAME    FSTYPE    LABEL        UUID                                    MOUNTPOINT
sdc
├─sdc1  vfat      USB FLASH    <uuid>

Mount USB drive using mount

Mounting USB drives is not different from mounting normal hard drives on your computer.

In order to mount a USB drive, use the “mount” command and specify the device name you identified in the first section.

Create a mountpoint in your home directory (in this case named “usb“) and use it as a mountpoint.

$ mkdir -p /home/user/usb
$ sudo mount /dev/sdc1 /home/user/usb
$ cd /home/user/usb
$ ls -l

total 200
-rw-------  1 schkn schkn  32768 Apr 20  2019 file1
drwxrwxr-x  6 schkn schkn   4096 May  9 07:01 directory1
lrwxrwxrwx  1 schkn schkn      7 Aug 14 16:38 link1
drwxrwxr-x  2 schkn schkn   4096 Jan  5  2019 directory2

Great! You successfully mounted a USB drive on Linux using the mount command.

Mount USB drive at boot using fstab

As we already learned in the previous section, if you don’t have your device to the fstab file it won’t be mounted automatically.

For your USB drive to be mounted automatically, you need to identify the UUID of your USB drive.

$ sudo blkid /dev/sdc1

/dev/sdc1: LABEL="USB FLASH" UUID="1234-ABCE" TYPE="vfat"

Copy the UUID and add the following content to your /etc/fstab file.

$ sudo nano /etc/fstab

# <file system>     <mount point>       <type>     <options>     <dump>  <pass>
UUID=1234-ABCE      /home/user/usb      vfat       defaults      0       0

Save your file – your USB drive should now be mounted at boot!

Note : not sure about which filesystem to use to format your disk partition?

Read our disk formatting guide on Linux.

Unmounting drives on Linux using umount

On Linux, the easiest way to unmount drives on Linux is to use the “umount” command.

Note : the “umount” command should not be mispelled for “unmount” as there are no “unmount” commands on Linux.

To unmount, you can either specify a directory of a device name.

$ sudo umount <device|directory>

For example, in order to unmount the “/dev/sdc1” device we mounted previously, we would run

$ sudo umount /dev/sdc1

In order to check that the drive partition was correctly unmounted, you can use the “lsblk” command and specify the drive partition name.

$ lsblk /dev/sdc1
NAME   MAJ:MIN    RM   SIZE    RO   TYPE   MOUNTPOINT
sdc1   8:33       0    29.3G   0    part

Alternatively, you can use the “findmnt” command and specify the device name.

$ findmnt /dev/sdc1
<empty>

Removing entries from the fstab file

Even if you unmount drives, they will be remounted (or at least the kernel will try to remount them) at the boot time.

In order for the system to stop remounting your drives at boot, you need to remove them from the fstab file.

Unmounting drives lazily

In Linux, it is also possible to unmount drives lazily when the “-l” option.

$ sudo umount -l <device|directory>

Unmount a device lazily means that you detach the filesystem from the file hierarchy (so the filesystem won’t be accessible anymore) but you clean all references to it when it is not busy anymore.

This command can be particularly handy if you are transferring files on the filesystem or if any long operations are running on the filesystem.

Force drive unmounting

On the other hand, it is possible to force a device unmounting by using the “-f” option or the “–force” option.

$ sudo umount --force <device|directory>

This option is not adapted for local drives as you want them to unmount gracefully not to lose any data.

However, in some cases you might loose connectivity to a NFS drive for example : in this case you can force the drive unmount.

Conclusion

In this tutorial, you learnt how you can mount and unmount drives on Linux using the mount and the umount commands.

You also learnt that you have to use the “fstab” file if you want to make your mount settings permanent on reboots.

Note that the commands are the same if you are dealing with LVM : LVM can be mounted and unmounted and you can even format them as regular drives.

If you are interested in Linux system administration, we have a complete section dedicated to it on the website, so make sure to have a look!

Mount drives on Linux

You may also like

11 comments

Network File System (NFS) Administration on Linux – devconnected January 5, 2020 - 5:37 pm

[…] order to make your mounts persistent, you need to add them to the fstab […]

Reply
Liam January 6, 2022 - 9:29 pm

The terminal says unmount isn’t a command.

Reply
Enrico July 31, 2022 - 9:54 pm

Your spelling is wrong: the command is umount, not unmount
-E-

Reply
Dave August 23, 2022 - 2:09 am

the command syntax is “umount”, leave the “n” out.

Reply
John Webster September 1, 2022 - 12:34 pm

See above. It is umount and not unmount.

Reply
ds March 30, 2022 - 9:16 am

excuse me how can I unmount permanently cus when i reboot its mounting a dev automaticly back

Reply
Huckleberry June 22, 2022 - 9:12 pm

Probably there’s an entry in /etc/fstab file. Delete that line, save update initramfs

Reply
Dave August 23, 2022 - 2:10 am

remove the device from fstab

Reply
Zac Helmberger August 26, 2022 - 1:25 am

I am having trouble unmounting a micro-SD card on Linux Manjaro. Here is what the terminal says:

$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0
└─mmcblk0p1 vfat FAT32 GO62CardA 3269-959F
nvme0n1
└─nvme0n1p1 ext4 1.0 c6c…
$
$ sudo umount /dev/mmcblk0p1
[sudo] password for zac:
umount: /dev/mmcblk0p1: not mounted.

$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
mmcblk0
└─mmcblk0p1 vfat FAT32 GO62CardA 3269-959F
nvme0n1
└─nvme0n1p1 ext4 1.0 c6c…
$

I also get the same result for mmcblk0
Any hints as to what I am doing wrong?

Reply
John Webster September 1, 2022 - 12:37 pm

Note : the “umount” command should not be mispelled for “unmount” as there are no “unmount” commands on Linux.

Noted. However, you have misspelled misspelled. It has 2 ss.

Reply
RT Kegger December 10, 2022 - 6:07 pm

I chased my tail forever trying to get read/write access to a remote hard drive. Between your instructions and changing to root i.e. sudo -i I got it done in just a few seconds

Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.