Computer Science
MOUNT(8) Linux Programmer's Manual MOUNT(8)
NAME
mount - mount a file system
SYNOPSIS
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
DESCRIPTION
All files accessible in a Unix system are arranged in one
big tree, the file hierarchy, rooted at /. These files
can be spread out over several devices. The mount command
serves to attach the file system found on some device to
the big file tree. Conversely, the umount(8) command will
detach it again.
The standard form of the mount command, is
mount -t type device dir
This tells the kernel to attach the file system found on
device (which is of type type) at the directory dir. The
previous contents (if any) and owner and mode of dir
become invisible, and as long as this file system remains
mounted, the pathname dir refers to the root of the file
system on device.
Three forms of invocation do not actually mount anything:
mount -h
prints a help message;
mount -V
prints a version string; and just
mount [-t type]
lists all mounted file systems (of type type) - see below.
The proc file system is not associated with a special
device, and when mounting it, an arbitrary keyword, such
as proc can be used instead of a device specification.
(The customary choice none is less fortunate: the error
message `none busy' from umount can be confusing.)
Most devices are indicated by a file name (of a block spe-
cial device), like /dev/sda1, but there are other possi-
bilities. For example, in the case of an NFS mount, device
may look like knuth.cwi.nl:/dir. It is possible to indi-
cate a block special device using its volume label or UUID
(see the -L and -U options below).
The file /etc/fstab (see fstab(5)), may contain lines
describing what devices are usually mounted where, using
which options. This file is used in three ways:
(i) The command
mount -a [-t type]
(usually given in a bootscript) causes all file systems
mentioned in fstab (of the proper type) 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 simultaneously.
(ii) When mounting a file system mentioned in fstab, it
suffices to give only the device, or only the mount point.
(iii) Normally, only the superuser can mount file systems.
However, when fstab contains the user option on a line,
then anybody can mount the corresponding system.
Thus, given a line
/dev/cdrom /cd iso9660 ro,user,noauto,unhide
any user can mount the iso9660 file system found on his
CDROM using the command
mount /dev/cdrom
or
mount /cd
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, then use users instead of user
in the fstab line.
The programs mount and umount maintain a list of currently
mounted file systems in the file /etc/mtab. If no argu-
ments are given to mount, this list is printed. When the
proc filesystem is mounted (say at /proc), the files
/etc/mtab and /proc/mounts have very similar contents. The
former has somewhat more information, such as the mount
options used, but is not necessarily up-to-date (cf. the
-n option below). It is possible to replace /etc/mtab by a
symbolic link to /proc/mounts, but some information is
lost that way, and in particular working with the loop
device will be less convenient.
OPTIONS
The full set of options used by an invocation of mount is
determined by first extracting the options for the file
system from the fstab table, then applying any options
specified by the -o argument, and finally applying a -r or
-w option, when present.
Options available for the mount command:
-V Output version.
-h Print a help message.
-v Verbose mode.
-a Mount all filesystems (of the given types) men-
tioned in fstab.
-F (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 go in parallel. A
disadvantage is that the mounts are done in unde-
fined order. Thus, you cannot use this option if
you want to mount both /usr and /usr/spool.
-f Causes everything to be done except for the actual
system call; if it's not obvious, this ``fakes''
mounting the file system. 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 ear-
lier with the -n option.
-n Mount without writing in /etc/mtab. This is neces-
sary for example when /etc is on a read-only file
system.
-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. This option exists for support of the Linux
autofs-based automounter.
-r Mount the file system read-only. A synonym is -o
ro.
-w Mount the file system read/write. This is the
default. A synonym is -o rw.
-L label
Mount the partition that has the specified label.
-U uuid
Mount the partition that has the specified uuid.
These two options require the file /proc/partitions
(present since Linux 2.1.116) to exist.
-t vfstype
The argument following the -t is used to indicate
the file system type. The file system types which
are currently supported are listed in
linux/fs/filesystems.c: minix, xiafs, ext, ext2,
msdos, umsdos, vfat, proc, autofs, devpts, nfs,
iso9660, smbfs, ncpfs, adfs, affs, coda, hfs, hpfs,
ntfs, qnx4, romfs, ufs, sysv, xenix, coherent.
Note that the last three are equivalent and that
xenix and coherent will be removed at some point in
the future -- use sysv instead. Since kernel ver-
sion 2.1.21 the types ext and xiafs do not exist
anymore.
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,
smbfs, ncpfs) ad hoc code is necessary. The nfs ad
hoc code is built in, but smbfs and ncpfs have a
separate mount program. In order to make it possi-
ble to treat all types in a uniform way, mount will
execute the program /sbin/mount.TYPE (if that
exists) when called with type smb or ncp. Since
various versions of the smbmount program have dif-
ferent calling conventions, /sbin/mount.smb may
have to be a shell script that sets up the desired
call.
The type iso9660 is the default. If no -t option
is given, or if the auto type is specified, the
superblock is probed for the filesystem type
(minix, ext, ext2, xiafs, iso9660, romfs are sup-
ported). If this probe fails, mount will try to
read the file /etc/filesystems, or, if that does
not exist, /proc/filesystems. All of the filesys-
tem types listed there will be tried, except for
those that are labeled "nodev" (e.g., proc and
nfs).
Note that 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 if you use a kernel mod-
ule autoloader. Warning: the probing uses a
heuristic (the presence of appropriate `magic'),
and could recognize the wrong filesystem type.
More than one type may be specified in a comma sep-
arated list. The list of file system types can be
prefixed with no to specify the file system types
on which no action should be taken. (This can be
meaningful with the -a option.)
For example, the command:
mount -a -t nomsdos,ext
mounts all file systems except those of type msdos
and ext.
-o Options are specified with a -o flag followed by a
comma separated string of options. Some of these
options are only useful when they appear in the
/etc/fstab file. The following options apply to
any file system that is being mounted:
async All I/O to the file system should be done
asynchronously.
atime Update inode access time for each access.
This is the default.
auto Can be mounted with the -a option.
defaults
Use default options: rw, suid, dev, exec,
auto, nouser, and async.
dev Interpret character or block special devices
on the file system.
exec Permit execution of binaries.
noatime
Do not update inode access times on this
file system (e.g, for faster access on the
news spool to speed up news servers).
noauto Can only be mounted explicitly (i.e., the -a
option will not cause the file system to be
mounted).
nodev Do not interpret character or block special
devices on the file system.
noexec Do not allow execution of any binaries on
the mounted file system. This option might
be useful for a server that has file systems
containing binaries for architectures other
than its own.
nosuid Do not allow set-user-identifier or set-
group-identifier bits to take effect. (This
seems safe, but is in fact rather unsafe if
you have suidperl(1) installed.)
nouser Forbid an ordinary (i.e., non-root) user to
mount the file system. This is the default.
remount
Attempt to remount an already-mounted file
system. This is commonly used to change the
mount flags for a file system, especially to
make a readonly file system writeable.
ro Mount the file system read-only.
rw Mount the file system read-write.
suid Allow set-user-identifier or set-group-iden-
tifier bits to take effect.
sync All I/O to the file system should be done
synchronously.
user Allow an ordinary user to mount the file
system. This option implies the options
noexec, nosuid, and nodev (unless overridden
by subsequent options, as in the option line
user,exec,dev,suid).
FILESYSTEM SPECIFIC MOUNT OPTIONS
The following options apply only to certain file systems.
We sort them by file system. They all follow the -o flag.
Mount options for affs
uid=value and gid=value
Set the owner and group of the root of the file
system (default: uid=gid=0, but with option uid or
gid without specified value, the uid and gid of the
current process are taken).
setuid=value and setgid=value
Set the owner and group of all files.
mode=value
Set the mode of all files to value & 0777 disre-
garding the original permissions. Add search per-
mission to directories that have read permission.
The value is given in octal.
protect
Do not allow any changes to the protection bits on
the file system.
usemp Set uid and gid of the root of the file system to
the uid and gid of the mount point upon the first
sync or umount, and then clear this option.
Strange...
verbose
Print an informational message for each successful
mount.
prefix=string
Prefix used before volume name, when following a
link.
volume=string
Prefix (of length at most 30) used before '/' when
following a symbolic link.
reserved=value
(Default: 2.) Number of unused blocks at the start
of the device.
root=value
Give explicitly the location of the root block.
bs=value
Give blocksize. Allowed values are 512, 1024, 2048,
4096.
grpquota / noquota / quota / usrquota
These options are accepted but ignored.
Mount options for coherent
None.
Mount options for ext
None. Note that the `ext' file system is obsolete. Don't
use it. Since Linux version 2.1.21 extfs is no longer
part of the kernel source.
Mount options for ext2
The `ext2' file system is the standard Linux file system.
Due to a kernel bug, it may be mounted with random mount
options (fixed in Linux 2.0.4).
bsddf / minixdf
Set the behaviour for the statfs system call. The
minixdf behaviour is to return in the f_blocks
field the total number of blocks of the file sys-
tem, while the bsddf behaviour (which is the
default) is to subtract the overhead blocks used by
the ext2 file system and not available for file
storage. Thus
% mount /k -o minixdf; df /k; umount /k
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sda6 2630655 86954 2412169 3% /k
% mount /k -o bsddf; df /k; umount /k
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sda6 2543714 13 2412169 0% /k
(Note that this example shows that one can add command
line options to the options given in /etc/fstab.)
check / check=normal / check=strict
Set checking level. When at least one of these
options is set (and check=normal is set by default)
the inodes and blocks bitmaps are checked upon
mount (which can take half a minute or so on a big
disk). With strict checking, block deallocation
checks that the block to free is in the data zone.
check=none / nocheck
No checking is done.
debug Print debugging info upon each (re)mount.
errors=continue / errors=remount-ro / errors=panic
Define the behaviour when an error is encountered.
(Either ignore errors and just mark the file system
erroneous and continue, or remount the file system
read-only, or panic and halt the system.) The
default is set in the filesystem superblock, and
can be changed using tune2fs(8).
grpid or bsdgroups / nogrpid or sysvgroups
These options define what group id a newly created
file gets. When grpid is set, it takes the group
id of the directory in which it is created; other-
wise (the default) it takes the fsgid of the cur-
rent process, unless the directory has the setgid
bit set, in which case it takes the gid from the
parent directory, and also gets the setgid bit set
if it is a directory itself.
resgid=n and resuid=n
The ext2 file system reserves a certain percentage
of the available space (by default 5%, see
mke2fs(8) and tune2fs(8)). These options determine
who can use the reserved blocks. (Roughly: whoever
has the specified uid, or belongs to the specified
group.)
sb=n Instead of block 1, use block n as superblock. This
could be useful when the filesystem has been dam-
aged. Usually, copies of the superblock are found
every 8192 blocks: in block 1, 8193, 16385, ...
(Thus, one gets hundreds or even thousands of
copies of the superblock on a big filesystem. I do
not know of options to mke2fs that would cause
fewer copies to be written.)
grpquota / noquota / quota / usrquota
These options are accepted but ignored.
Mount options for fat
(Note: fat is not a separate filesystem, but a common part
of the msdos, umsdos and vfat filesystems.)
blocksize=512 / blocksize=1024
Set blocksize (default 512).
uid=value and gid=value
Set the owner and group of all files. (Default: the
uid and gid of the current process.)
umask=value
Set the umask (the bitmask of the permissions that
are not present). The default is the umask of the
current process. The value is given in octal.
check=value
Three different levels of pickyness can be chosen:
r[elaxed]
Upper and lower case are accepted and equiv-
alent, 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 may not contain
long parts and special characters that are
sometimes used on Linux, but are not
accepted by MS-DOS are rejected. (+, =,
spaces, etc.)
conv=b[inary] / conv=t[ext] / conv=a[uto]
The fat file system can perform CRLF<-->NL (MS-DOS
text format to UNIX text format) conversion in the
kernel. The following conversion modes are avail-
able:
binary no translation is performed. This is the
default.
text CRLF<-->NL translation is performed on all
files.
auto CRLF<-->NL translation is performed on all
files that don't have a "well-known binary"
extension. The list of known extensions can
be found at the beginning of fs/fat/misc.c
(as of 2.0, the list is: exe, com, bin, app,
sys, drv, ovl, ovr, obj, lib, dll, pif, arc,
zip, lha, lzh, zoo, tar, z, arj, tz, taz,
tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl,
jpg, pcx, tfm, vf, gf, pk, pxl, dvi).
Programs that do computed lseeks won't like in-ker-
nel text conversion. Several people have had their
data ruined by this translation. Beware!
For file systems mounted in binary mode, a conver-
sion tool (fromdos/todos) is available.
debug Turn on the debug flag. A version string and a
list of file system parameters will be printed
(these data are also printed if the parameters
appear to be inconsistent).
fat=12 / fat=16
Specify either a 12 bit fat or a 16 bit fat. This
overrides the automatic FAT type detection routine.
Use with caution!
quiet Turn on the quiet flag. Attempts to chown or chmod
files do not return errors, although they fail. Use
with caution!
sys_immutable, showexec, dots, nodots, dotsOK=[yes|no]
Various misguided attempts to force Unix or DOS
conventions onto a FAT file system.
Mount options for hpfs
uid=value and gid=value
Set the owner and group of all files. (Default: the
uid and gid of the current process.)
umask=value
Set the umask (the bitmask of the permissions that
are not present). The default is the umask of the
current process. The value is given in octal.
case=lower / case=asis
Convert all files names to lower case, or leave
them. (Default: case=lower.)
conv=binary / conv=text / conv=auto
For conv=text, delete some random CRs (in particu-
lar, all followed by NL) when reading a file. For
conv=auto, choose more or less at random between
conv=binary and conv=text. For conv=binary, just
read what is in the file. This is the default.
nocheck
Do not abort mounting when certain consistency
checks fail.
Mount options for iso9660
Normal iso9660 filenames appear in a 8.3 format (i.e.,
DOS-like restrictions on filename length), and in addition
all characters are in upper case. Also there is no field
for file ownership, protection, number of links, provision
for block/character devices, etc.
Rock Ridge is an extension to iso9660 that provides all of
these unix like features. Basically there are extensions
to each directory record that supply all of the additional
information, and when Rock Ridge is in use, the filesystem
is indistinguishable from a normal UNIX file system
(except that it is read-only, of course).
norock Disable the use of Rock Ridge extensions, even if
available. Cf. map.
check=r[elaxed] / check=s[trict]
With check=relaxed, a filename is first converted
to lower case before doing the lookup. This is
probably only meaningful together with norock and
map=normal. (Default: check=strict.)
uid=value and gid=value
Give all files in the file system the indicated
user or group id, possibly overriding the informa-
tion found in the Rock Ridge extensions. (Default:
uid=0,gid=0.)
map=n[ormal] / map=o[ff]
For non-Rock Ridge volumes, normal name translation
maps upper to lower case ASCII, drops a trailing
`;1', and converts `;' to `.'. With map=off no
name translation is done. See norock. (Default:
map=normal.)
mode=value
For non-Rock Ridge volumes, give all files the
indicated mode. (Default: read permission for
everybody.) Since Linux 2.1.37 one no longer needs
to specify the mode in decimal. (Octal is indicated
by a leading 0.)
unhide Also show hidden and associated files.
block=[512|1024|2048]
Set the block size to the indicated value.
(Default: block=1024.)
conv=a[uto] / conv=b[inary] / conv=m[text] / conv=t[ext]
(Default: conv=binary.) Since Linux 1.3.54 this
option has no effect anymore. (And non-binary set-
tings used to be very dangerous, often leading to
silent data corruption.)
cruft If the high byte of the file length contains other
garbage, set this mount option to ignore the high
order bits of the file length. This implies that a
file cannot be larger than 16MB. The `cruft'
option is set automatically if the entire CDROM has
a weird size (negative, or more than 800MB). It is
also set when volume sequence numbers other than 0
or 1 are seen.
Mount options for minix
None.
Mount options for msdos
See mount options for fat. If the msdos file system
detects an inconsistency, it reports an error and sets the
file system read-only. The file system can be made write-
able again by remounting it.
Mount options for ncp
Just like nfs, the ncp implementation expects a binary
argument (a struct ncp_mount_data) to the mount system
call. This argument is constructed by ncpmount(8) and the
current version of mount (2.6h) does not know anything
about ncp.
Mount options for nfs
Instead of a textual option string, parsed by the kernel,
the nfs file system expects a binary argument of type
struct nfs_mount_data. The program mount itself parses
the following options of the form `tag=value', and puts
them in the structure mentioned: rsize=n, wsize=n,
timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n,
acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, moun-
thost=name, mountprog=n, mountvers=n, nfsprog=n,
nfsvers=n, namlen=n. The option addr=n is accepted but
ignored. Also the following Boolean options, possibly
preceded by no are recognized: bg, fg, soft, hard, intr,
posix, cto, ac, tcp, udp, lock. For details, see nfs(5).
Especially useful options include
rsize=8192,wsize=8192
This will make your nfs connection much faster than
with the default buffer size of 1024.
hard The program accessing a file on a NFS mounted file
system will hang when the server crashes. The pro-
cess cannot be interrupted or killed unless you
also specify intr. When the NFS server is back
online the program will continue undisturbed from
where it was. This is probably what you want.
soft This option allows the kernel to time out if the
nfs server is not responding for some time. The
time can be specified with timeo=time. This option
might be useful if your nfs server sometimes
doesn't respond or will be rebooted while some pro-
cess tries to get a file from the server. Usually
it just causes lots of trouble.
nolock Do not use locking. Do not start lockd.
Mount options for proc
uid=value and gid=value
These options are recognized, but have no effect as
far as I can see.
Mount options for romfs
None.
Mount options for smbfs
Just like nfs, the smb implementation expects a binary
argument (a struct smb_mount_data) to the mount system
call. This argument is constructed by smbmount(8) and the
current version of mount (2.6c) does not know anything
about smb.
Mount options for sysv
None.
Mount options for ufs
None.
Mount options for umsdos
See mount options for msdos. The dotsOK option is explic-
itly killed by umsdos.
Mount options for vfat
First of all, the mount options for fat are recognized.
The dotsOK option is explicitly killed by vfat. Further-
more, there are
uni_xlate
Translate unhandled Unicode characters to special
escaped sequences. This lets you backup and
restore filenames that are created with any Unicode
characters. Without this option, a '?' is used when
no translation is possible. The escape character is
':' because it is otherwise illegal on the vfat
filesystem. The escape sequence that gets used,
where u is the unicode character, is: ':', (u &
0x3f), ((u>>6) & 0x3f), (u>>12).
posix Allow two files with names that only differ in
case.
nonumtail
First try to make a short name without sequence
number, before trying name~num.ext.
Mount options for xenix
None.
Mount options for xiafs
None. Although nothing is wrong with xiafs, it is not used
much, and is not maintained. Probably one shouldn't use
it. Since Linux version 2.1.21 xiafs is no longer part of
the kernel source.
THE LOOP DEVICE
One further possible type is a mount via the loop device.
For example, the command
mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024
will set up the loop device /dev/loop3 to correspond to
the file /tmp/fdimage, and then mount this device on /mnt.
This type of mount knows about three options, namely loop,
offset and encryption, that are really options to los-
etup(8). 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.
FILES
/etc/fstab file system table
/etc/mtab table of mounted file systems
/etc/mtab~ lock file
/etc/mtab.tmp temporary file
SEE ALSO
mount(2), umount(2), fstab(5), umount(8), swapon(8),
nfs(5), mountd(8), nfsd(8), mke2fs(8), tune2fs(8), los-
etup(8)
BUGS
It is possible for a corrupted file system to cause a
crash.
Some Linux file systems don't support -o sync (the ext2fs
does 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).
HISTORY
A mount command existed in Version 5 AT&T UNIX.
Linux 2.0 14 September 1997 1
Back to the index