Mount
5 min read
Mounting is a fundamental concept in Linux and other Unix-like operating systems, enabling users to access and manage filesystems, storage devices, and partitions. Mounting is the process of making a filesystem accessible at a certain point in the directory tree. When you mount a storage device or a partition, you attach it to a specified directory, known as a mount point. This allows you to access the contents of the device or partition as if they were part of the overall filesystem.

mount Command
Usage:
shell
mount [options] [source] [mount_point]

# Bind Mounts
mount --bind /var/www /mnt/www

# Loop Device
mount -o loop /path/to/file.iso /mnt/iso

# List mounts
mount -l

The source of the filesystem can be specified in other ways too (depending on the filesystem):
• LABEL=label: Human readable filesystem identifier.
• UUID=uuid: Filesystem universally unique identifier. The format of the UUID is usually a series of hex digits separated by hyphens.
• PARTLABEL=label: Human readable partition identifier. This identifier is independent on filesystem and does not change by mkfs or mkswap operations. It’s supported for example for GUID Partition Tables (GPT).
• PARTUUID=uuid: Partition universally unique identifier. This identifier is independent on filesystem and does not change by mkfs or mkswap operations. It’s supported for example for GUID Partition Tables (GPT).

Options

OptionDescription
-a, --allMount all filesystems in /etc/fstab.
-B, --bindMount a directory somewhere else
-m, --mkdir[=mode]Allow to make a target directory (mountpoint) if it does not exist yet. The default mode is 0755.
-o, --options optsUse the specified mount options. The opts argument is a comma-separated list.
-r, --read-onlyMount the filesystem read-only. A synonym is -o ro.
--source deviceThis option allows you to explicitly define that the argument is the mount source.
--target directoryThis option allows you to explicitly define that the argument is the mount target.
-t, --types fstypeThe argument following -t is used to indicate the filesystem type. The filesystem types which are currently supported depend on the running kernel. See /proc/filesystems and /lib/modules/$(uname -r)/kernel/fs for a complete list of the filesystems.

/etc/fstab
The /etc/fstab file is used to define filesystems to be automatically mounted at boot time. Nowadays the entries in this file will be converted to Systemd-Mounts.

Each file contains a mount instruction like this: DEVICE MOUNT_POINT FILESYSTEM_TYPE OPTIONS DUMP PASS

Example: /dev/sdb1 /mnt/usb ext4 defaults 0 2

• DEVICE: The device or partition to be mounted.
• MOUNT_POINT: The directory where the filesystem will be mounted.
• FILESYSTEM_TYPE: The type of filesystem.
• OPTIONS: Mount options (e.g., defaults, ro, rw).
• DUMP: Used by the dump utility to decide if a filesystem should be backed up.
• PASS: Used by fsck to determine the order in which filesystems are checked.

Mount Options
• async: All I/O to the filesystem should be done asynchronously.
• atime: Update inode access times on each access.
• noatime: Do not update inode access times on each access (useful for performance).
• auto: Can be mounted with the mount -a command.
• noauto: Can only be mounted explicitly.
• defaults: Use default options (rw, suid, dev, exec, auto, nouser, and async).
• dev: Interpret character or block special devices on the filesystem.
• nodev: Do not interpret character or block special devices on the filesystem.
• diratime: Update directory inode access times on each access.
• nodiratime: Do not update directory inode access times on each access.
• dirsync: All directory updates within the filesystem should be done synchronously.
• exec: Permit execution of binaries.
• noexec: Do not permit execution of any binaries.
• group: Allow an ordinary user to mount the filesystem if they are a member of the group owning the device.
• iversion: Increment the inode version field upon each change.
• mand: Allow mandatory locks on this filesystem.
• nomand: Do not allow mandatory locks on this filesystem.
• relatime: Update inode access times relative to modify or change time.
• norelatime: Do not use the relatime feature.
• lazytime: Only update times on the in-memory version of an inode.
• nolazytime: Do not use the lazytime feature.
• ro: Mount the filesystem read-only.
• rw: Mount the filesystem read-write.
• suid: Permit set-user-identifier or set-group-identifier bits to take effect.
• nosuid: Do not permit set-user-identifier or set-group-identifier bits to take effect.
• silent: Suppress some error messages.
• loud: Do not suppress error messages.
• strictatime: Strictly update inode access times on each access.

Filesystem-Specific Options
Each filesystem type may support its own set of mount options. Here are some examples for a few common filesystems:

ext2, ext3, ext4
• acl: Enable POSIX Access Control Lists.
• noacl: Disable POSIX Access Control Lists.
• user_xattr: Enable user extended attributes.
• nouser_xattr: Disable user extended attributes.
• journal: Enable journaling (ext3/ext4).
• nojournal: Disable journaling (ext3/ext4).

btrfs
• compress: Enable compression.
• compress-force: Force compression.
• nodatacow: Disable copy-on-write for data blocks.
• nodatasum: Disable data checksumming.
• subvol: Mount a specific subvolume.

xfs
• logbufs: Number of in-memory log buffers.
• logbsize: Size of each in-memory log buffer.
• noquota: Disable quota enforcement.
• quota: Enable quota enforcement.

nfs
• rsize: Set the read buffer size.
• wsize: Set the write buffer size.
• timeo: Set the timeout value.
• intr: Allow interrupts on hard mounts.
• nointr: Do not allow interrupts on hard mounts.

vfat
• shortname: Define behavior for handling of short filenames.
• iocharset: Character set to use for input and output.
• utf8: Encode and decode 8-bit characters as UTF-8.

Network Filesystems

cifs (Common Internet File System)
• username: Username to connect to the CIFS share.
• password: Password to connect to the CIFS share.
• domain: Domain name for authentication.
• uid: Set the owner of the files.
• gid: Set the group of the files.

nfs (Network File System)
• vers: Specify NFS version.
• proto: Specify transport protocol (tcp or udp).
• mountport: Specify port number for MOUNT service.