| π Use Case | β¨οΈ Command | π Description |
|---|---|---|
| Mount by type | mount -t ext4 /dev/sda1 /mnt | Attach an ext4 filesystem |
| Mount all in fstab | mount -a | Mount everything from /etc/fstab (skip noauto) |
| Readβonly mount | mount -o ro /dev/sda1 /mnt | Prevent writes |
| Bind mount | mount --bind /old /new | Mirror a directory tree |
| Move mount | mount --move /old /new | Atomically relocate a mount |
| Mount by label | mount -L data /mnt | Use filesystem label instead of device |
| Mount by UUID | mount -U 1234-ABCD /mnt | Use universally unique identifier |
| Remount readβwrite | mount -o remount,rw /mnt | Change a readβonly mount to writable |
| Loopback (image) mount | mount -o loop disk.img /mnt | Mount a file as a block device |
| Verbose mount | mount -v /dev/sda1 /mnt | Show what mount is attempting |
| Bind mount with options | mount -o bind,ro /old /new | Bind and change VFS flags (userspace remount) |
| List mounts with labels | mount -l | Show all mounts plus filesystem labels |
mount [-h|-V]
mount [-l] [-t fstype]
mount -a [-fFnrsvw] [-t fstype] [-O optlist]
mount [-fnrsvw] [-o options] device|mountpoint
mount [-fnrsvw] [-t fstype] [-o options] device mountpoint
mount --bind|--rbind|--move olddir newdir
mount --make-[shared|slave|private|unbindable|rshared|rslave|rprivate|runbindable] mountpoint
mount -t type device dir
This tells the kernel to attach the filesystem found on device (which
is of type type) at the directory dir. The option -t type is optional.
The mount command is usually able to detect a filesystem. The root
permissions are necessary to mount a filesystem by default. See section
"Non-superuser mounts" below for more details. The previous contents
(if any) and owner and mode of dir become invisible, and as long as
this filesystem remains mounted, the pathname dir refers to the root of
the filesystem on device.
If only the directory or the device is given, for example:
mount /dir
then mount looks for a mountpoint (and if not found then for a device)
in the /etc/fstab file. It's possible to use the --target or --source
options to avoid ambiguous interpretation of the given argument. For
example:
mount --target /mountpoint
The same filesystem may be mounted more than once, and in some cases
(e.g., network filesystems) the same filesystem may be mounted on the
same mountpoint multiple times. The mount command does not implement
any policy to control this behavior. All behavior is controlled by the
kernel and it is usually specific to the filesystem driver. The
exception is --all, in this case already mounted filesystems are
ignored (see --all below for more details).
mount [-l] [-t type]
The option -l adds labels to this listing. See below.
lsblk --fs provides an overview of filesystems, LABELs and
UUIDs on available block devices. The command blkid -p <device>
provides details about a filesystem on the specified device.
Don't forget that there is no guarantee that UUIDs and labels are
really unique, especially if you move, share or copy the device. Use
lsblk -o +UUID,PARTUUID to verify that the UUIDs are really unique in
your system.
The recommended setup is to use tags (e.g. UUID=uuid) rather than
/dev/disk/by-{label,uuid,id,partuuid,partlabel} udev symlinks in the
/etc/fstab file. Tags are more readable, robust and portable. The
mount(8) command internally uses udev symlinks, so the use of symlinks
in /etc/fstab has no advantage over tags. For more details see
libblkid(3).
The proc filesystem is not associated with a special device, and when
mounting it, an arbitrary keyword - for example, proc - can be used
instead of a device specification. (The customary choice none is less
fortunate: the error message 'none already mounted' from mount can be
confusing.)
mount -a [-t type] [-O optlist]
(usually given in a bootscript) causes all filesystems mentioned in
fstab (of the proper type and/or having or not having the proper
options) to be mounted as indicated, except for those whose line
contains the noauto keyword. Adding the -F option will make mount fork,
so that the filesystems are mounted in parallel.
When mounting a filesystem mentioned in fstab or mtab, it suffices to
specify on the command line only the device, or only the mount point.
The programs mount and umount(8) traditionally maintained a list of
currently mounted filesystems in the file /etc/mtab. The support for
regular classic /etc/mtab is completely disabled at compile time by
default, because on current Linux systems it is better to make
/etc/mtab a symlink to /proc/mounts instead. The regular mtab file
maintained in userspace cannot reliably work with namespaces,
containers and other advanced Linux features. If the regular mtab
support is enabled, then it's possible to use the file as well as the
symlink.
If no arguments are given to mount, the list of mounted filesystems is
printed.
If you want to override mount options from /etc/fstab, you have to use
the -o option:
mount device|dir -o options
and then the mount options from the command line will be appended to
the list of options from /etc/fstab. This default behaviour can be
changed using the --options-mode command-line option. The usual
behavior is that the last option wins if there are conflicting ones.
The mount program does not read the /etc/fstab file if both device (or
LABEL, UUID, ID, PARTUUID or PARTLABEL) and dir are specified. For
example, to mount device foo at /dir:
mount /dev/foo /dir
This default behaviour can be changed by using the
--options-source-force command-line option to always read configuration
from fstab. For non-root users mount always reads the fstab
configuration.
user option on a line, anybody can mount the corresponding
filesystem.
Thus, given a line
/dev/cdrom /cd iso9660 ro,user,noauto,unhide
any user can mount the iso9660 filesystem found on an inserted CDROM
using the command:
mount /cd
Note that mount is very strict about non-root users and all paths
specified on command line are verified before fstab is parsed or a
helper program is executed. It's strongly recommended to use a valid
mountpoint to specify filesystem, otherwise mount may fail. For example
it's a bad idea to use NFS or CIFS source on command line.
Since util-linux 2.35, mount does not exit when user permissions are
inadequate according to libmount's internal security rules. Instead, it
drops suid permissions and continues as regular non-root user. This
behavior supports use-cases where root permissions are not necessary
(e.g., fuse filesystems, user namespaces, etc).
For more details, see fstab(5). Only the user that mounted a filesystem
can unmount it again. If any user should be able to unmount it, then
use users instead of user in the fstab line. The owner option is
similar to the user option, with the restriction that the user must be
the owner of the special file. This may be useful e.g. for /dev/fd if a
login script makes the console user owner of this device. The group
option is similar, with the restriction that the user must be a member
of the group of the special file.
mount --bind olddir newdir
or by using this fstab entry:
/olddir /newdir none bind
After this call the same contents are accessible in two places.
It is important to understand that "bind" does not create any
second-class or special node in the kernel VFS. The "bind" is just
another operation to attach a filesystem. There is nowhere stored
information that the filesystem has been attached by a "bind"
operation. The olddir and newdir are independent and the olddir may be
unmounted.
One can also remount a single file (on a single file). It's also
possible to use a bind mount to create a mountpoint from a regular
directory, for example:
mount --bind foo foo
The bind mount call attaches only (part of) a single filesystem, not
possible submounts. The entire file hierarchy including submounts can
be attached a second place by using:
mount --rbind olddir newdir
Note that the filesystem mount options maintained by the kernel will
remain the same as those on the original mount point. The userspace
mount options (e.g., _netdev) will not be copied by mount and it's
necessary to explicitly specify the options on the mount command line.
Since util-linux 2.27 mount permits changing the mount options by
passing the relevant options along with --bind. For example:
mount -o bind,ro foo foo
This feature is not supported by the Linux kernel; it is implemented in
userspace by an additional mount(2) remounting system call. This
solution is not atomic.
The alternative (classic) way to create a read-only bind mount is to
use the remount operation, for example:
mount --bind olddir newdir
mount -o remount,bind,ro olddir newdir
Note that a read-only bind will create a read-only mountpoint (VFS
entry), but the original filesystem superblock will still be writable,
meaning that the olddir will be writable, but the newdir will be
read-only.
It's also possible to change nosuid, nodev, noexec, noatime, nodiratime
and relatime VFS entry flags via a "remount,bind" operation. The other
flags (for example filesystem-specific flags) are silently ignored.
It's impossible to change mount options recursively (for example with
-o rbind,ro).
Since util-linux 2.31, mount ignores the bind flag from /etc/fstab on a
remount operation (if "-o remount" is specified on command line). This
is necessary to fully control mount options on remount by command line.
In previous versions the bind flag has been always applied and it was
impossible to re-define mount options without interaction with the bind
semantic. This mount behavior does not affect situations when
"remount,bind" is specified in the /etc/fstab file.
mount --move olddir newdir
This will cause the contents which previously appeared under olddir to
now be accessible under newdir. The physical location of the files is
not changed. Note that olddir has to be a mountpoint.
Note also that moving a mount residing under a shared mount is invalid
and unsupported. Use findmnt -o TARGET,PROPAGATION to see the current
propagation flags.
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
The following commands allow one to recursively change the type of all
the mounts under a given mountpoint.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount(8) does not read fstab(5) when a --make-* operation is requested.
All necessary information has to be specified on the command line.
Note that the Linux kernel does not allow changing multiple propagation
flags with a single mount(2) system call, and the flags cannot be mixed
with other mount options and operations.
Since util-linux 2.23 the mount command can be used to do more
propagation (topology) changes by one mount(8) call and do it also
together with other mount operations. The propagation flags are applied
by additional mount(2) system calls when the preceding mount operations
were successful. Note that this use case is not atomic. It is possible
to specify the propagation flags in fstab(5) as mount options (private,
slave, shared, unbindable, rprivate, rslave, rshared, runbindable).
For example:
mount --make-private --make-unbindable /dev/sda1 /foo
is the same as:
mount /dev/sda1 /foo
mount --make-private /foo
mount --make-unbindable /foo
noauto keyword). The
filesystems are mounted following their order in fstab. The mount
command compares filesystem source, target (and fs root for bind
mount or btrfs) to detect already mounted filesystems. The kernel
table with already mounted filesystems is cached during mount
--all. This means that all duplicated fstab entries will be
mounted.
The option --all is possible to use for remount operation too. In
this case all filters (-t and -O) are applied to the table of
already mounted filesystems.
Since version 2.35 is possible to use the command line option -o to
alter mount options from fstab (see also --options-mode).
Note that it is a bad practice to use mount -a for fstab checking.
The recommended solution is findmnt --verify.
-B, --bind π
Remount a subtree somewhere else (so that its contents are
available in both places). See above, under Bind mounts.
-c, --no-canonicalize β
Don't canonicalize paths. The mount command canonicalizes all paths
(from the command line or fstab) by default. This option can be
used together with the -f flag for already canonicalized absolute
paths. The option is designed for mount helpers which call mount
-i. It is strongly recommended to not use this command-line option
for normal mount operations.
Note that mount does not pass this option to the /sbin/mount.type
helpers.
-F, --fork π΄
(Used in conjunction with -a.) Fork off a new incarnation of mount
for each device. This will do the mounts on different devices or
different NFS servers in parallel. This has the advantage that it
is faster; also NFS timeouts proceed in parallel. A disadvantage is
that the order of the mount operations is undefined. Thus, you
cannot use this option if you want to mount both /usr and
/usr/spool.
-f, --fake π
Causes everything to be done except for the actual system call; if
it's not obvious, this "fakes" mounting the filesystem. This option
is useful in conjunction with the -v flag to determine what the
mount command is trying to do. It can also be used to add entries
for devices that were mounted earlier with the -n option. The -f
option checks for an existing record in /etc/mtab and fails when
the record already exists (with a regular non-fake mount, this
check is done by the kernel).
-i, --internal-only π οΈ
Don't call the /sbin/mount.filesystem helper even if it exists.
-L, --label label π·οΈ
Mount the partition that has the specified label.
-l, --show-labels π·οΈ
Add the labels in the mount output. mount must have permission to
read the disk device (e.g. be set-user-ID root) for this to work.
One can set such a label for ext2, ext3 or ext4 using the
e2label(8) utility, or for XFS using xfs_admin(8), or for reiserfs
using reiserfstune(8).
-M, --move π
Move a subtree to some other place. See above, the subsection The
move operation.
-n, --no-mtab π
Mount without writing in /etc/mtab. This is necessary for example
when /etc is on a read-only filesystem.
-N, --namespace ns π
Perform the mount operation in the mount namespace specified by ns.
ns is either PID of process running in that namespace or special
file representing that namespace.
mount switches to the mount namespace when it reads /etc/fstab,
writes /etc/mtab: (or writes to _/run/mount) and calls the mount(2)
system call, otherwise it runs in the original mount namespace.
This means that the target namespace does not have to contain any
libraries or other requirements necessary to execute the mount(2)
call.
See mount_namespaces(7) for more information.
-O, --test-opts opts π―
Limit the set of filesystems to which the -a option applies. In
this regard it is like the -t option except that -O is useless
without -a. For example, the command
mount -a -O no_netdev
mounts all filesystems except those which have the option netdev
specified in the options field in the /etc/fstab file.
It is different from -t in that each option is matched exactly; a
leading no at the beginning of one option does not negate the rest.
The -t and -O options are cumulative in effect; that is, the
command
mount -a -t ext2 -O _netdev
mounts all ext2 filesystems with the _netdev option, not all
filesystems that are either ext2 or have the _netdev option
specified.
-o, --options opts βοΈ
Use the specified mount options. The opts argument is a
comma-separated list. For example:
mount LABEL=mydisk -o noatime,nodev,nosuid
For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and
FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
--options-mode mode π§
Controls how to combine options from fstab/mtab with options from
the command line. mode can be one of ignore, append, prepend or
replace. For example, append means that options from fstab are
appended to options from the command line. The default value is
prepend -- it means command line options are evaluated after fstab
options. Note that the last option wins if there are conflicting
ones.
--options-source source π
Source of default options. source is a comma-separated list of
fstab, mtab and disable. disable disables fstab and mtab and
disables --options-source-force. The default value is fstab,mtab.
--options-source-force π
Use options from fstab/mtab even if both device and dir are
specified.
-R, --rbind π
Remount a subtree and all possible submounts somewhere else (so
that its contents are available in both places). See above, the
subsection Bind mounts.
-r, --read-only π
Mount the filesystem read-only. A synonym is -o ro.
Note that, depending on the filesystem type, state and kernel
behavior, the system may still write to the device. For example,
ext3 and ext4 will replay the journal if the filesystem is dirty.
To prevent this kind of write access, you may want to mount an ext3
or ext4 filesystem with the ro,noload mount options or set the
block device itself to read-only mode, see the blockdev(8) command.
-s π§Ή
Tolerate sloppy mount options rather than failing. This will ignore
mount options not supported by a filesystem type. Not all
filesystems support this option. Currently it's supported by the
mount.nfs mount helper only.
--source device π
If only one argument for the mount command is given, then the
argument might be interpreted as the target (mountpoint) or source
(device). This option allows you to explicitly define that the
argument is the mount source.
--target directory π―
If only one argument for the mount command is given, then the
argument might be interpreted as the target (mountpoint) or source
(device). This option allows you to explicitly define that the
argument is the mount target.
--target-prefix directory π
Prepend the specified directory to all mount targets. This option
can be used to follow fstab, but mount operations are done in
another place, for example:
mount --all --target-prefix /chroot -o X-mount.mkdir
mounts all from system fstab to /chroot, all missing mountpoint are
created (due to X-mount.mkdir). See also --fstab to use an
alternative fstab.
-T, --fstab path π
Specifies an alternative fstab file. If path is a directory, then
the files in the directory are sorted by strverscmp(3); files that
start with "." or without an .fstab extension are ignored. The
option can be specified more than once. This option is mostly
designed for initramfs or chroot scripts where additional
configuration is specified beyond standard system configuration.
Note that mount does not pass the option --fstab to the
/sbin/mount.type helpers, meaning that the alternative fstab files
will be invisible for the helpers. This is no problem for normal
mounts, but user (non-root) mounts always require fstab to verify
the user's rights.
-t, --types fstype ποΈ
The argument following the -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. The most
common are ext2, ext3, ext4, xfs, btrfs, vfat, sysfs, proc, nfs and
cifs.
The programs mount and umount(8) support filesystem subtypes. The
subtype is defined by a '.subtype' suffix. For example
'fuse.sshfs'. It's recommended to use subtype notation rather than
add any prefix to the mount source (for example 'sshfs#example.com'
is deprecated).
If no -t option is given, or if the auto type is specified, mount
will try to guess the desired type. mount uses the libblkid(3)
library for guessing the filesystem type; if that does not turn up
anything that looks familiar, mount will try to read the file
/etc/filesystems, or, if that does not exist, /proc/filesystems.
All of the filesystem types listed there will be tried, except for
those that are labeled "nodev" (e.g. devpts, proc and nfs). If
/etc/filesystems ends in a line with a single *, mount will read
/proc/filesystems afterwards. While trying, all filesystem types
will be mounted with the mount option silent.
The auto type may be useful for user-mounted floppies. Creating a
file /etc/filesystems can be useful to change the probe order
(e.g., to try vfat before msdos or ext3 before ext2) or if you use
a kernel module autoloader.
More than one type may be specified in a comma-separated list, for
the -t option as well as in an /etc/fstab entry. The list of
filesystem types for the -t option can be prefixed with no to
specify the filesystem types on which no action should be taken.
The prefix no has no effect when specified in an /etc/fstab entry.
The prefix no can be meaningful with the -a option. For example,
the command
mount -a -t nomsdos,smbfs
mounts all filesystems except those of type msdos and smbfs.
For most types all the mount program has to do is issue a simple
mount(2) system call, and no detailed knowledge of the filesystem
type is required. For a few types however (like nfs, nfs4, cifs,
smbfs, ncpfs) an ad hoc code is necessary. The nfs, nfs4, cifs,
smbfs, and ncpfs filesystems have a separate mount program. In
order to make it possible to treat all types in a uniform way,
mount will execute the program /sbin/mount.type (if that exists)
when called with type type. Since different versions of the
smbmount program have different calling conventions,
/sbin/mount.smbfs may have to be a shell script that sets up the
desired call.
-U, --uuid uuid π
Mount the partition that has the specified uuid.
-v, --verbose π£οΈ
Verbose mode.
-w, --rw, --read-write βοΈ
Mount the filesystem read/write. Read-write is the kernel default
and the mount default is to try read-only if the previous mount
syscall with read-write flags on write-protected devices of
filesystems failed.
A synonym is -o rw.
Note that specifying -w on the command line forces mount to never
try read-only mount on write-protected devices or already mounted
read-only filesystems.
-V, --version π§Ύ
Display version information and exit.
-h, --help β
Display help text and exit.
sync option
today has an effect only for ext2, ext3, ext4, fat, vfat, ufs and xfs):
async β‘
All I/O to the filesystem should be done asynchronously. (See also the sync option.)
atime π
Do not use the noatime feature, so the inode access time is controlled by kernel defaults. See also the descriptions of the relatime and strictatime mount options.
noatime π«
Do not update inode access times on this filesystem (e.g. for faster access on the news spool to speed up news servers). This works for all inode types (directories too), so it implies nodiratime.
auto β
Can be mounted with the -a option.
noauto β
Can only be mounted explicitly (i.e., the -a option will not cause the filesystem to be mounted).
context=context, fscontext=context, defcontext=context, and rootcontext=context π‘οΈ
The context= option is useful when mounting filesystems that do not support extended attributes... (shortened for brevity) For more details, see selinux(8).
defaults π¦
Use the default options: rw, suid, dev, exec, auto, nouser, and async. Note that the real set of all default mount options depends on the kernel and filesystem type.
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 this filesystem. This is the default. (This option is ignored when noatime is set.)
nodiratime πβ
Do not update directory inode access times on this filesystem. (This option is implied when noatime is set.)
dirsync π
All directory updates within the filesystem should be done synchronously. This affects the following system calls: creat(2), link(2), unlink(2), symlink(2), mkdir(2), rmdir(2), mknod(2) and rename(2).
exec βΆοΈ
Permit execution of binaries.
noexec π«
Do not permit direct execution of any binaries on the mounted filesystem.
group π₯
Allow an ordinary user to mount the filesystem if one of that user's groups matches the group of the device. This option implies the options nosuid and nodev (unless overridden by subsequent options, as in the option line group,dev,suid).
iversion π’
Every time the inode is modified, the i_version field will be incremented.
noiversion β
Do not increment the i_version inode field.
mand π
Allow mandatory locks on this filesystem. See fcntl(2).
nomand π
Do not allow mandatory locks on this filesystem.
_netdev π
The filesystem resides on a device that requires network access (used to prevent the system from attempting to mount these filesystems until the network has been enabled on the system).
nofail β οΈ
Do not report errors for this device if it does not exist.
relatime β±οΈ
Update inode access times relative to modify or change time. Access time is only updated if the previous access time was earlier than the current modify or change time. (Similar to noatime, but it doesn't break mutt(1) or other applications that need to know if a file has been read since the last time it was modified.) Since Linux 2.6.30, the kernel defaults to the behavior provided by this option (unless noatime was specified), and the strictatime option is required to obtain traditional semantics. In addition, since Linux 2.6.30, the file's last access time is always updated if it is more than 1 day old.
norelatime β
Do not use the relatime feature. See also the strictatime mount option.
strictatime π
Allows to explicitly request full atime updates. This makes it possible for the kernel to default to relatime or noatime but still allow userspace to override it.
nostrictatime πβ
Use the kernel's default behavior for inode access time updates.
lazytime π€
Only update times (atime, mtime, ctime) on the in-memory version of the file inode. This mount option significantly reduces writes to the inode table for workloads that perform frequent random writes to preallocated files. The on-disk timestamps are updated only when: the inode needs to be updated for some change unrelated to file timestamps; the application employs fsync(2), syncfs(2), or sync(2); an undeleted inode is evicted from memory; more than 24 hours have passed since the inode was written to disk.
nolazytime β‘
Do not use the lazytime feature.
suid π
Honor set-user-ID and set-group-ID bits or file capabilities when executing programs from this filesystem.
nosuid π«
Do not honor set-user-ID and set-group-ID bits or file capabilities when executing programs from this filesystem. In addition, SELinux domain transitions require permission nosuid_transition, which in turn needs also policy capability nnp_nosuid_transition.
silent π
Turn on the silent flag.
loud π
Turn off the silent flag.
owner π€
Allow an ordinary user to mount the filesystem if that user is the owner of the device. This option implies the options nosuid and nodev (unless overridden by subsequent options, as in the option line owner,dev,suid).
remount π
Attempt to remount an already-mounted filesystem. This is commonly used to change the mount flags for a filesystem, especially to make a readonly filesystem writable. It does not change device or mount point. The remount operation together with the bind flag has special semantics. See above, the subsection Bind mounts. The remount functionality follows the standard way the mount command works with options from fstab. This means that mount does not read fstab (or mtab) only when both device and dir are specified.
mount -o remount,rw /dev/foo /dir
After this call all old mount options are replaced and arbitrary
stuff from fstab (or mtab) is ignored, except the loop= option
which is internally generated and maintained by the mount command.
mount -o remount,rw /dir
After this call, mount reads fstab and merges these options with
the options from the command line (-o). If no mountpoint is found
in fstab, then a remount with unspecified source is allowed.
mount allows the use of --all to remount all already mounted filesystems which match a specified filter (-O and -t). For example:
mount --all -o remount,ro -t vfat
remounts all already mounted vfat filesystems in read-only mode.
Each of the filesystems is remounted by mount -o remount,ro /dir
semantic. This means the mount command reads fstab or mtab and
merges these options with the options from the command line.
ro π
Mount the filesystem read-only.
rw βοΈ
Mount the filesystem read-write.
sync πΎ
All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some flash drives), sync may cause life-cycle shortening.
user π€
Allow an ordinary user to mount the filesystem. The name of the mounting user is written to the mtab file (or to the private libmount file in /run/mount on systems without a regular mtab) so that this same user can unmount the filesystem again. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line user,exec,dev,suid).
nouser π«
Forbid an ordinary user to mount the filesystem. This is the default; it does not imply any other options.
users π₯
Allow any user to mount and to unmount the filesystem, even when some other ordinary user mounted it. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid).
X-* π¬
All options prefixed with "X-" are interpreted as comments or as userspace application-specific options. These options are not stored in user space (e.g., mtab file), nor sent to the mount.type helpers nor to the mount(2) system call. The suggested format is X-appname.option.
x-* π
The same as X-* options, but stored permanently in user space. This means the options are also available for umount(8) or other operations. Note that maintaining mount options in user space is tricky, because it's necessary use libmount-based tools and there is no guarantee that the options will be always available (for example after a move mount operation or in unshared namespace). Note that before util-linux v2.30 the x-* options have not been maintained by libmount and stored in user space (functionality was the same as for X-* now), but due to the growing number of use-cases (in initrd, systemd etc.) the functionality has been extended to keep existing fstab configurations usable without a change.
X-mount.mkdir[=mode] π
Allow to make a target directory (mountpoint) if it does not exist yet. The optional argument mode specifies the filesystem access mode used for mkdir(2) in octal notation. The default mode is 0755. This functionality is supported only for root users or when mount executed without suid permissions. The option is also supported as x-mount.mkdir, this notation is deprecated since v2.30.
nosymfollow πβ
Do not follow symlinks when resolving paths. Symlinks can still be created, and readlink(1), readlink(2), realpath(1), and realpath(3) all still work properly.
Filesystem(s) | Manual page
-----------------|---------------
btrfs | btrfs(5)
cifs | mount.cifs(8)
ext2, ext3, ext4 | ext4(5)
fuse | fuse(8)
nfs | nfs(5)
tmpfs | tmpfs(5)
xfs | xfs(5)
Note that some of the pages listed above might be available only after
you install the respective userland tools.
The following options apply only to certain filesystems. We sort them
by filesystem. All options follow the -o flag.
What options are supported depends a bit on the running kernel. Further
information may be available in filesystem-specific files in the kernel
source subdirectory Documentation/filesystems.
20: If current process is in group of file's group ID, you can change timestamp. 2: Other users can change timestamp. The default is set from 'dmask' option. (If the directory is writable, utime(2) is also allowed. I.e. ~dmask & 022) Normally utime(2) checks that the current process is owner of the file, or that it has the CAP_FOWNER capability. But FAT filesystems don't have UID/GID on disk, so the normal check is too inflexible. With this option you can relax it.
check=value
Three different levels of pickiness can be chosen: r[elaxed]: Upper and lower case are accepted and equivalent, long name parts are truncated (e.g. verylongname.foobar becomes verylong.foo), leading and embedded spaces are accepted in each name part (name and extension). n[ormal]: Like "relaxed", but many special characters (*, ?, <, spaces, etc.) are rejected. This is the default. s[trict]: Like "normal", but names that contain long parts or special characters that are sometimes used on Linux but are not accepted by MS-DOS (+, =, etc.) are rejected.
codepage=value
Sets the codepage for converting to shortname characters on FAT and VFAT filesystems. By default, codepage 437 is used.
conv=mode
This option is obsolete and may fail or be ignored.
cvf_format=module
Forces the driver to use the CVF (Compressed Volume File) module cvf_module instead of auto-detection. If the kernel supports kmod, the cvf_format=xxx option also controls on-demand CVF module loading. This option is obsolete.
cvf_option=option
Option passed to the CVF module. This option is obsolete.
debug
Turn on the debug flag. A version string and a list of filesystem parameters will be printed (these data are also printed if the parameters appear to be inconsistent).
discard
If set, causes discard/TRIM commands to be issued to the block device when blocks are freed. This is useful for SSD devices and sparse/thinly-provisioned LUNs.
dos1xfloppy
If set, use a fallback default BIOS Parameter Block configuration, determined by backing device size. These static parameters match defaults assumed by DOS 1.x for 160 kiB, 180 kiB, 320 kiB, and 360 kiB floppies and floppy images.
errors={panic|continue|remount-ro}
Specify FAT behavior on critical errors: panic, continue without doing anything, or remount the partition in read-only mode (default behavior).
fat={12|16|32}
Specify a 12, 16 or 32 bit fat. This overrides the automatic FAT type detection routine. Use with caution!
iocharset=value
Character set to use for converting between 8 bit characters and 16 bit Unicode characters. The default is iso8859-1. Long filenames are stored on disk in Unicode format.
nfs={stale_rw|nostale_ro}
Enable this only if you want to export the FAT filesystem over NFS. stale_rw: This option maintains an index (cache) of directory inodes which is used by the nfs-related code to improve look-ups. Full file operations (read/write) over NFS are supported but with cache eviction at NFS server, this could result in spurious ESTALE errors. nostale_ro: This option bases the inode number and file handle on the on-disk location of a file in the FAT directory entry. This ensures that ESTALE will not be returned after a file is evicted from the inode cache. However, it means that operations such as rename, create and unlink could cause file handles that previously pointed at one file to point at a different file, potentially causing data corruption. For this reason, this option also mounts the filesystem readonly. To maintain backward compatibility, -o nfs is also accepted, defaulting to stale_rw.
tz=UTC
This option disables the conversion of timestamps between local time (as used by Windows on FAT) and UTC (which Linux uses internally). This is particularly useful when mounting devices (like digital cameras) that are set to UTC in order to avoid the pitfalls of local time.
time_offset=minutes
Set offset for conversion of timestamps from local time used by FAT to UTC. I.e., minutes will be subtracted from each timestamp to convert it to UTC used internally by Linux. This is useful when the time zone set in the kernel via settimeofday(2) is not the time zone used by the filesystem. Note that this option still does not provide correct time stamps in all cases in presence of DST - time stamps in a different DST setting will be off by one hour.
quiet
Turn on the quiet flag. Attempts to chown or chmod files do not return errors, although they fail. Use with caution!
rodir
FAT has the ATTR_RO (read-only) attribute. On Windows, the ATTR_RO of the directory will just be ignored, and is used only by applications as a flag (e.g. it's set for the customized folder). If you want to use ATTR_RO as read-only flag even for the directory, set this option.
showexec
If set, the execute permission bits of the file will be allowed only if the extension part of the name is .EXE, .COM, or .BAT. Not set by default.
sys_immutable
If set, ATTR_SYS attribute on FAT is handled as IMMUTABLE flag on Linux. Not set by default.
flush
If set, the filesystem will try to flush to disk more early than normal. Not set by default.
usefree
Use the "free clusters" value stored on FSINFO. It'll be used to determine number of free clusters without scanning disk. But it's not used by default, because recent Windows don't update it correctly in some case. If you are sure the "free clusters" on FSINFO is correct, by this option you can avoid scanning disk.
dots, nodots, dotsOK=[yes|no]
Various misguided attempts to force Unix or DOS conventions onto a FAT filesystem.
mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,workdir=/work /merged
lowerdir=directory
Any filesystem, does not need to be on a writable filesystem.
upperdir=directory
The upperdir is normally on a writable filesystem.
workdir=directory
The workdir needs to be an empty directory on the same filesystem as upperdir.
userxattr
Use the "user.overlay." xattr namespace instead of "trusted.overlay.". This is useful for unprivileged mounting of overlayfs.
redirect_dir={on|off|follow|nofollow}
If the redirect_dir feature is enabled, then the directory will be copied up (but not the contents). Then the "{trusted|user}.overlay.redirect" extended attribute is set to the path of the original location from the root of the overlay. Finally the directory is moved to the new location. on: Redirects are enabled. off: Redirects are not created and only followed if "redirect_always_follow" feature is enabled in the kernel/module config. follow: Redirects are not created, but followed. nofollow: Redirects are not created and not followed (equivalent to "redirect_dir=off" if "redirect_always_follow" feature is not enabled).
index={on|off}
Inode index. If this feature is disabled and a file with multiple hard links is copied up, then this will "break" the link. Changes will not be propagated to other names referring to the same inode.
uuid={on|off}
Can be used to replace UUID of the underlying filesystem in file handles with null, and effectively disable UUID checks. This can be useful in case the underlying disk is copied and the UUID of this copy is changed. This is only applicable if all lower/upper/work directories are on the same filesystem, otherwise it will fallback to normal behaviour.
nfs_export={on|off}
When the underlying filesystems supports NFS export and the "nfs_export" feature is enabled, an overlay filesystem may be exported to NFS. (Detailed description trimmed for length.)
xino={on|off|auto}
The "xino" feature composes a unique object identifier from the real object st_ino and an underlying fsid index. For a detailed description refer to kernel.org.
metacopy={on|off}
When metadata only copy up feature is enabled, overlayfs will only copy up metadata (as opposed to whole file), when a metadata specific operation like chown/chmod is performed. Full file will be copied up later when file is opened for WRITE operation.
volatile
Volatile mounts are not guaranteed to survive a crash. It is strongly recommended that volatile mounts are only used if data written to the overlay can be recreated without significant effort. The advantage of mounting with the "volatile" option is that all forms of sync calls to the upper filesystem are omitted. When overlay is mounted with "volatile" option, the directory "$workdir/work/incompat/volatile" is created. During next mount, overlay checks for this directory and refuses to mount if present.
barrier=none disables, barrier=flush enables (default). Write barriers enforce proper on-disk ordering of journal commits, making volatile disk write caches safe to use, at some performance penalty.
ubiX_Y UBI device number X, volume number Y
ubiY UBI device number 0, volume number Y
ubiX:NAME UBI device number X, volume with name NAME
ubi:NAME UBI device number 0, volume with name NAME
Alternative ! separator may be used instead of :.
The following mount options are available:
bulk_read
Enable bulk-read. VFS read-ahead is disabled because it slows down the filesystem. Bulk-Read is an internal optimization. Some flashes may read faster if the data are read at one go, rather than at several read requests.
no_bulk_read
Do not bulk-read. This is the default.
chk_data_crc
Check data CRC-32 checksums. This is the default.
no_chk_data_crc
Do not check data CRC-32 checksums. Only affects reading, not writing. CRC-32 is always calculated when writing the data.
compr={none|lzo|zlib}
Select the default compressor which is used when new files are written. It is still possible to read compressed files if mounted with the none option.
uid=forget can be specified independently of (or usually in addition to) uid=<user> and results in UDF not storing uids to the media. The value is given as either <user> which is a valid user name or the corresponding decimal user id, or the special string "forget".
gid=
Make all files in the filesystem belong to the given group. gid=forget works analogously.
umask=
Mask out the given permissions from all inodes read from the filesystem. The value is given in octal.
mode=
If mode= is set the permissions of all non-directory inodes read from the filesystem will be set to the given mode. The value is given in octal.
dmode=
If dmode= is set the permissions of all directory inodes read from the filesystem will be set to the given dmode. The value is given in octal.
bs=
Set the block size. Default value prior to kernel version 2.6.30 was 2048. Since 2.6.30 and prior to 4.11 it was logical device block size with fallback to 2048. Since 4.11 it is logical block size with fallback to any valid block size between logical device block size and 4096. For other details see the mkudffs(8) 2.0+ manpage.
unhide
Show otherwise hidden files.
undelete
Show deleted files in lists.
adinicb
Embed data in the inode. (default)
noadinicb
Don't embed data in the inode.
shortad
Use short UDF address descriptors.
longad
Use long UDF address descriptors. (default)
nostrict
Unset strict conformance.
iocharset=
Set the NLS character set. Requires kernel with CONFIG_UDF_NLS.
utf8
Set the UTF-8 character set.
mksquashfs /etc /tmp/etc.squashfs
dd if=/dev/zero of=/tmp/etc.hash bs=1M count=10
veritysetup format /tmp/etc.squashfs /tmp/etc.hash
openssl smime -sign -in <hash> -nocerts -inkey private.key \
-signer private.crt -noattr -binary -outform der -out /tmp/etc.roothash.p7s
mount -o verity.hashdevice=/tmp/etc.hash,verity.roothash=<hash>,\
verity.roothashsig=/tmp/etc.roothash.p7s /tmp/etc.squashfs /mnt
create squashfs image from /etc, verity hash device and mount verified
filesystem image to /mnt. The kernel will verify that the root hash is
signed by a key from the kernel keyring if roothashsig is used.
mount /tmp/disk.img /mnt -t vfat -o loop=/dev/loop3
will set up the loop device /dev/loop3 to correspond to the file
/tmp/disk.img, and then mount this device on /mnt.
If no explicit loop device is mentioned (but just an option '-o loop'
is given), then mount will try to find some unused loop device and use
that, for example
mount /tmp/disk.img /mnt -o loop
The mount command automatically creates a loop device from a regular
file if a filesystem type is not specified or the filesystem is known
for libblkid, for example:
mount /tmp/disk.img /mnt
mount -t ext4 /tmp/disk.img /mnt
This type of mount knows about three options, namely loop, offset and
sizelimit, that are really options to losetup(8). (These options can be
used in addition to those specific to the filesystem type.)
Since Linux 2.6.25 auto-destruction of loop devices is supported,
meaning that any loop device allocated by mount will be freed by umount
independently of /etc/mtab.
You can also free a loop device by hand, using losetup -d or umount -d.
Since util-linux v2.29, mount re-uses the loop device rather than
initializing a new device if the same backing file is already used for
some loop device with the same offset and sizelimit. This is necessary
to avoid a filesystem corruption.
mount -a returns 0 (all succeeded), 32 (all failed), or
64 (some failed, some succeeded).
/sbin/mount.suffix spec dir [-sfnv] [-N namespace] [-o options] [-t type.subtype]
where the suffix is the filesystem type and the -sfnvoN options have
the same meaning as the normal mount options. The -t option is used for
filesystems with subtypes support (for example /sbin/mount.fuse -t fuse.sshfs).
The command mount does not pass the mount options unbindable,
runbindable, private, rprivate, slave, rslave, shared, rshared, auto,
noauto, comment, x-*, loop, offset and sizelimit to the mount.<suffix>
helpers. All other options are used in a comma-separated list as an
argument to the -o option.
LIBMOUNT_FSTAB=<path>
overrides the default location of the fstab file (ignored for suid)
LIBMOUNT_MTAB=<path>
overrides the default location of the mtab file (ignored for suid)
LIBMOUNT_DEBUG=all
enables libmount debug output
LIBBLKID_DEBUG=all
enables libblkid debug output
LOOPDEV_DEBUG=all
enables loop device setup debug output
/etc/fstab
filesystem table
/run/mount
libmount private runtime directory
/etc/mtab
table of mounted filesystems or symlink to /proc/mounts
/etc/mtab~
lock file (unused on systems with mtab symlink)
/etc/mtab.tmp
temporary file (unused on systems with mtab symlink)
/etc/filesystems
a list of filesystem types to try
-o sync and -o dirsync (the ext2,
ext3, ext4, fat and vfat filesystems do support synchronous updates (a
la BSD) when mounted with the sync option).
The -o remount may not be able to change mount parameters (all
ext2fs-specific parameters, except sb, are changeable with a remount,
for example, but you can't change gid or umask for the fatfs).
It is possible that the files /etc/mtab and /proc/mounts don't match on
systems with a regular mtab file. The first file is based only on the
mount command options, but the content of the second file also depends
on the kernel and others settings (e.g. on a remote NFS server -- in
certain cases the mount command may report unreliable information about
an NFS mount point and the /proc/mount file usually contains more
reliable information.) This is another reason to replace the mtab file
with a symlink to the /proc/mounts file.
Checking files on NFS filesystems referenced by file descriptors (i.e.
the fcntl and ioctl families of functions) may lead to inconsistent
results due to the lack of a consistency check in the kernel even if
the noac mount option is used.
The loop option with the offset or sizelimit options used may fail when
using older kernels if the mount command can't confirm that the size of
the block device has been configured as requested. This situation can
be worked around by using the losetup(8) command manually before
calling mount with the configured loop device.
util-linux 2.37.2 2021-08-16 MOUNT(8)
Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-06 04:45 @216.73.216.192
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format