How to Mount and Unmount Filesystem / Partition in Linux (Mount/Umount Command Examples)

by Balakrishnan Mariyappan on January 28, 2013

Once you insert new hard disks into your system, you’ll typically use utilities like fdisk or parted to create partitions. Once you create a partition, you’ll use mkfs command to create ext2, ext3, or ext4 partition.

Once you create a partition, you should use mount command to mount the partition into a mount point (a directory), to start using the filesystem.

This tutorial explains everything you need to know about both mount and umount command with 15 practical examples.

The general mount command syntax to mount a device:

mount -t type device destination_dir

1. Mount a CD-ROM

The device file for CD would exist under /dev directory. For example, a CD-ROM device will be mounted as shown below.

# mount -t iso9660 -o ro /dev/cdrom /mnt

In the above example, the option “-o ro” indicates that the cdrom should be mounted with read-only access. Also, make sure that the destination directory (in the above example, /mnt) exist before you execute the mount command.

2. View All Mounts

After you execute mount a partition or filesystem, execute the mount command without any arguments to view all the mounts.

In the example below, after mounting the USB drive on a system, the output of mount looks like the below. As seen below, the USB device (i.e:/dev/sdb) is mounted on /media/myusb, which is displayed as the last line in the mount command.

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /mydata type ext2 (rw)
/dev/sda7 on /backup type vfat (rw)
gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)
/dev/sdb on /media/myusb type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)

You can also use df command to view all the mount points.

# df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sda5      195069136 128345036  56958520  70% /
udev             2008336         4   2008332   1% /dev
tmpfs             806244       928    805316   1% /run
none                5120         0      5120   0% /run/lock
none             2015604       228   2015376   1% /run/shm
/dev/sda6       17729076    176200  16657596   2% /mydata
/dev/sda7       11707200    573312  11133888   5% /backup
/dev/sdb         3910656   2807160   1103496  72% /media/myusb

3. Mount all the filesystem mentioned in /etc/fstab

The filesystems listed in /etc/fstab gets mounted during booting process. After booting, system administrator may unmount some of the partitions for various reasons. If you want all the filesystems to be mounted as specified in /etc/fstab, use -a option with mount as shown below:

Example /etc/fstab file entries:

# cat /etc/fstab
#
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda5 during installation
/dev/sda5 /               ext4    errors=remount-ro 0       1
# /mydata was on /dev/sda6 during installation
/dev/sda6 /mydata         ext2    defaults        0       2
# /backup was on /dev/sda7 during installation
/dev/sda7 /backup         vfat    defaults        0       3

Execute mount command with -a option to mount all the /etc/fstab entries.

# mount -a

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /mydata type ext2 (rw)
/dev/sda7 on /backup type vfat (rw)
gvfs-fuse-daemon on /home/bala/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=bala)

The same -a option can be used with umount to unmount all the filesystems mentioned in /etc/mtab

# umount -a
umount: /run/shm: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /run: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /dev: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
umount: /: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

Some filesystem are not unmounted as its busy or currently in use. Note that the files /etc/mtab and /proc/mounts contents would be similar.

4. Mount only a specific filesystem from /etc/fstab

When you pass only the directory name to mount, it looks for mount point entries, if not found, then search continuous for a device in /etc/fstab and gets mounted.

# mount | grep /mydata

# cat /etc/fstab | grep mydata
##########/mydata was on /dev/sda6 during installation##########
 /dev/sda6 /mydata         ext2    defaults        0       2

As seen above, /mydata directory is not a mountpoint, but it is present in /etc/fstab.

# mount /mydata

# mount | grep /mydata
/dev/sda6 on /mydata type ext2 (rw)

If you execute the same again, you would get the error message as follows:

# mount /mydata
mount: /dev/sda6 already mounted or /mydata busy
mount: according to mtab, /dev/sda6 is already mounted on /mydata

Here you may also pass the device name instead of directory name (to be picked up from /etc/fstab file).

# mount /dev/sda6

Note that the files /etc/mtab and /proc/mounts contents would be similar.

5. View all mounted partitions of specific type

It is possible to list only the specific type of filesystem mounted using the option -l with -t as shown below:

# mount -l -t ext2
/dev/sda6 on /mydata type ext2 (rw)

# mount -l -t ext4
/dev/sda5 on / type ext4 (rw,errors=remount-ro)

As seen above, /dev/sda6 is the only ext2 partition and /dev/sda5 is the only ext4 partition accordingly.

6. Mount a Floppy Disk

The device file for floppy disk would exist under /dev directory. For example, a floppy disk will be mounted as shown below.

# mount /dev/fd0 /mnt
# cd /mnt

After the successful mount, you would be able to access the contents of the floppy disk. Once you are done with it, use umount before you physically remove the floppy disk from the system.

# umount /mnt

7. Bind mount points to a new directory

The mountpoint can be binded to a new directory. So that you would be able to access the contents of a filesystem via more than one mountpoints at the same time.

Use -B option with olddir and newdir to be binded as follows,

# mount -B /mydata /mnt

Now the bind is done and you might verify it as follows,

# mount | grep /mydata
/dev/sda6 on /mydata type ext2 (rw)
/mydata on /mnt type none (rw,bind)

As seen above the bind is done properly. So when you do modification in filesystem in one place, you can see those reflection of it in other mount point as shown below:

# cd /mydata
# ls
test
# mkdir dir1
# mkdir dir2
# ls
test    dir1    dir2
# cd /mnt
# ls
test    dir1    dir2

8. Access contents from new mount point

Mount allows you to access the contents of a mount point from a new mount point. Its nothing but move a mounted tree to another place.

In the example below, the mount point /mydata will be accessed from /mnt using the option -M as shown below:

# mount -M /mydata /mnt/

Once its done, you cant use the old mount point as its moved to a new mount point and this can be verified as shown below:

# mount | grep /mydata
# mount | grep /mnt
/dev/sda6 on /mnt type ext2 (rw)

9. Mount without writing entry into /etc/mtab

During read only mount of /etc/, the /etc/mtab file entries cannot be modified by mount command. However, mount can be done without writing into /etc/mtab by using the option -n as follows,

# mount -n /dev/sda6 /mydata

You cannot see any entry for this /mydata in mount command output and as well from /etc/mtab file as follows:

# mount | grep /mydata
# cat /etc/mtab | grep /mydata

Access the contents of a mounted directory /mydata:

# cd /mydata
# ls
dir1  dir2  test

10. Mount filesystem with read or read/write access

To mount partition as read only, use -r option which is synonym to -o ro.

# mount /dev/sda6 /mydata -r
# mount  | grep /mydata
/dev/sda6 on /mydata type ext4 (ro)

ext3 and ext4 filesystem would still allow you to do write operation when the filesystem is dirty. So, you may have to use “ro,noload” to prevent these kind of write operation.

# mount /dev/sda6 /mydata -t ext4 -o ro -o noload
# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (ro,noload)

To mount a partition with read/write access, use -w option which is same as “-o rw” (i.e : default).

11. Remount the mounted filesystem

In order to mount the already mounted filesystem, use remount option and its normally used to remount the filesystem with read/write access when its previously mounted with read access.

The /mydata mount point is going to be remounted with read/write access from read access as shown below:

# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (ro,noload)
# mount -o remount,rw /mydata
# mount | grep /mydata
/dev/sda6 on /mydata type ext4 (rw)

12. Mount an iso image into a directory

The iso image can be mounted as shown below:

# mount -t iso9660 -o loop pdf_collections.iso /mnt
# cd /mnt
# ls
perl/    php/    mysql/

13. Unmount more than one mount points

Umount allows you to unmount more than mount point in a single execution of umount of command as follows:

# umount /mydata  /backup
# mount | grep /mydata
# mount | grep /backup

14. Lazy unmount of a filesystem

This is a special option in umount, in case you want to unmount a partition after disk operations are done. You can issue command umount -l with that partition and the unmount will be done after the disk operations gets finished.

For instance, consider a scenario that a task (i.e: script or any other command) is doing a copy operation on a disk and at the same time you are allowed to issue a unmount with -l, so that unmount would be done once the copy is over (i.e: the disk operation).

# umount /mydata -l

15. Forcefully unmount a filesystem

umount provides the option to forcefully unmount a filesystem with option -f when the device is busy as shown below:

# umount -f /mnt

If this doesn’t work for you, then you can go for lazy unmount.

Meanwhile, you can also have a look at ps command output that which process is presently using the mountpoint as shown below:

# ps ajx | grep /mydata
 2540  3037  3037  2468 pts/2     3037 D+       0   0:00 cp -r /home/geekstuff/ProjectData/ /mydata

You can also execute fuser command to find out which process is holding the directory for operations.

# fuser -cu /mydata
/mydata:              3087(root)

It gives you the process id with username (nothing but the owner of the process). If you know what that process is, you may want to stop that process and then try the umount again.


Linux Sysadmin Course Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 13 comments… read them below or add one }

1 Bipin January 28, 2013 at 7:24 pm

Thank you for this stuff….. But i have an another doubt is it possible to mount the NTFS filesystem in the system……………….?

2 Giovanni Ferrari January 29, 2013 at 2:24 am

Quote”after mounting the USB drive on a system”…….

Maybe you should tell us about HOW to mount an USB :-)

Rgds

//GF

3 Dave Keays January 29, 2013 at 5:39 pm

At one time, the way I did it involved figuring-out which device in the hub it was attached to. I would plug the device in, wait 5 seconds then issue a dmsg command and filter it on SCSI devices (#dmsg | grep sd). Now, it is automatically mounted under /media/usb.

4 zhiming January 30, 2013 at 8:26 pm

Really useful..Thanks.

5 Jalal Hajigholamali January 31, 2013 at 5:03 am

Hi,

Thanks, very useful article

6 Sundeep Borra January 31, 2013 at 7:13 am

Bipin,

you can mount NTFS disks,
Use ntfs-3g for this
or mount -t ntfs /dev/foo /mnt/point

Usage: ntfs-3g [-o option[,...]]

Options: ro (read-only mount), remove_hiberfile, uid=, gid=,
umask=, fmask=, dmask=, streams_interface=, syncio.
Please see the details in the manual (type: man ntfs-3g).

Example: ntfs-3g /dev/sda1 /mnt/windows
Further Info: Ntfs-3g news, support and information: http://ntfs-3g.org

7 Ethan January 31, 2013 at 7:52 am

helpfull suggestion!
much thanks.

8 Houman Hakami February 2, 2013 at 5:01 pm

Hi, It was very good. Thanks a lot.

9 Bilal Ali February 10, 2013 at 2:47 pm

I am adding one thing which is missing is SAN share nfs & cifs volumes mounting.

# mount IPAddress:/vol/vol_nfs_01_10/qtree_01 /opt/myshare

SAN volume share given by SAN Team.

10 Swapnil February 26, 2013 at 9:13 pm

Install ntfs-3g pkg to mount NTFS FS.

11 Karthik Durairajan December 30, 2013 at 7:39 pm

Hello,

Hope this thread is still active! I’ve setup Cygwin on a windows box for a subversion solution and trying to map SVN repository which is on a network share. I am able to do it by net use command but I need a permanent mount which works regardless of whether the server is being RDPed or otherwise.
I’ve update FSTAB with the following:

//NTSHARE/SVNREP /home/mnt user,rw,auto,errors=remount-ro 0 0

But it doesn’t seem to mount the share as I’d hoped. What am I missing? Any help on this would be greatly appreciated. Thanks.

Karthik

12 Sachin Maurya April 1, 2014 at 1:20 pm

Sir, I have a question regarding the mounting of the nfs ??
I had given the command
“wolf00:/mnt/wolf /mnt/wolf nfs rw,hard,intr 0 0″
will it work fine?becoz its not working in my system . I am currently trying to work on RHEL-4

13 Saleem April 10, 2014 at 6:28 am

Very useful..
Thanks.

Leave a Comment

Previous post:

Next post: