MOUNT(2) System Calls MOUNT(2)
NAME
mount - mount a file system
SYNOPSIS
#include <sys/types.h>
#include <sys/mount.h>
#include <sys/mntent.h>
int mount(
const char *spec,
const char *dir,
int mflag,
char *fstype,
char *dataptr,
int datalen,
char *optptr,
int optlen);
DESCRIPTION
The
mount() function requests that a removable file system contained
on the block special file identified by
spec be mounted on the
directory identified by
dir. The
spec and
dir arguments are pointers
to path names.
After a successful call to
mount(), all references to the file
dir refer to the root directory on the mounted file system. The mounted
file system is inserted into the kernel list of all mounted file
systems. This list can be examined through the mounted file system
table (see
mnttab(5)).
The
fstype argument is the file system type name. Standard file
system names are defined with the prefix
MNTTYPE_ in <
sys/mntent.h>.
If neither
MS_DATA nor
MS_OPTIONSTR is set in
mflag, then
fstype is
ignored and the type of the root file system is assumed.
The
dataptr argument is 0 if no file system-specific data is to be
passed; otherwise it points to an area of size
datalen that contains
the file system-specific data for this mount and the
MS_DATA flag
should be set.
If the
MS_OPTIONSTR flag is set, then
optptr points to a buffer
containing the list of options to be used for this mount. The
optlen argument specifies the length of the buffer. On completion of the
mount() call, the options in effect for the mounted file system are
returned in this buffer. If
MS_OPTIONSTR is not specified, then the
options for this mount will not appear in the mounted file systems
table.
If the caller does not have all privileges available in the current
zone, the
nosuid option is automatically set on the mount point. The
restrict option is automatically added for
autofs mounts.
If the caller is not in the global zone, the
nodevices option is
automatically set.
The
mflag argument is constructed by a bitwise-inclusive-OR of flags
from the following list, defined in <
sys/mount.h>.
MS_DATA The
dataptr and
datalen arguments describe a block of
file system-specific binary data at address
dataptr of length
datalen. This is interpreted by file
system-specific code within the operating system and
its format depends on the file system type. If a
particular file system type does not require this
data,
dataptr and
datalen should both be 0.
MS_GLOBAL Mount a file system globally if the system is
configured and booted as part of a cluster (see
clinfo(8)).
MS_NOSUID Prevent programs that are marked set-user-
ID or set-
group-
ID from executing (see
chmod(1)). It also
causes
open(2) to return
ENXIO when attempting to
open block or character special files.
MS_OPTIONSTR The
optptr and
optlen arguments describe a character
buffer at address
optptr of size
optlen. When calling
mount(), the character buffer should contain a null-
terminated string of options to be passed to the file
system-specific code within the operating system. On
a successful return, the file system-specific code
will return the list of options recognized.
Unrecognized options are ignored. The format of the
string is a list of option names separated by commas.
Options that have values (rather than binary options
such as
suid or
nosuid), are separated by "
=" such as
dev=2c4046c. Standard option names are defined in
<
sys/mntent.h>. Only strings defined in the "C"
locale are supported. The maximum length option
string that can be passed to or returned from a
mount() call is defined by the
MAX_MNTOPT_STR constant. The buffer should be long enough to contain
more options than were passed in, as the state of any
default options that were not passed in the input
option string may also be returned in the recognized
options list that is returned.
MS_OVERLAY Allow the file system to be mounted over an existing
file system mounted on
dir, making the underlying
file system inaccessible. If a mount is attempted on
a pre-existing mount point without setting this flag,
the mount will fail.
MS_RDONLY Mount the file system for reading only. This flag
should also be specified for file systems that are
incapable of writing (for example, CDROM). Without
this flag, writing is permitted according to
individual file accessibility.
MS_REMOUNT Remount a read-only file system as read-write.
RETURN VALUES
Upon successful completion,
0 is returned. Otherwise,
-1 is returned
and
errno is set to indicate the error.
ERRORS
The
mount() function will fail if:
EACCES The permission bits of the mount point do not permit
read/write access or search permission is denied on a
component of the path prefix.
The calling process is not the owner of the
mountpoint.
The mountpoint is not a regular file or a directory
and the caller does not have all privileges available
in a its zone.
The special device device does not permit read access
in the case of read-only mounts or read-write access
in the case of read/write mounts.
EBUSY The
dir argument is currently mounted on, is
someone's current working directory, or is otherwise
busy; or the device associated with
spec is currently
mounted.
EFAULT The
spec,
dir,
fstype,
dataptr, or
optptr argument
points outside the allocated address space of the
process.
EINVAL The super block has an invalid magic number, the
fstype is invalid, or
dir is not an absolute path.
ELOOP Too many symbolic links were encountered in
translating
spec or
dir.
ENAMETOOLONG The length of the
path argument exceeds
PATH_MAX, or
the length of a
path component exceeds
NAME_MAX while
_POSIX_NO_TRUNC is in effect.
ENOENT None of the named files exists or is a null pathname.
ENOLINK The
path argument points to a remote machine and the
link to that machine is no longer active.
ENOSPC The file system state in the super-block is not
FsOKAY and
mflag requests write permission.
ENOTBLK The
spec argument is not a block special device.
ENOTDIR The
dir argument is not a directory, or a component
of a path prefix is not a directory.
ENOTSUP A global mount is attempted (the
MS_GLOBAL flag is
set in
mflag) on a machine which is not booted as a
cluster; a local mount is attempted and
dir is within
a globally mounted file system; or a remount was
attempted on a file system that does not support
remounting.
ENXIO The device associated with
spec does not exist.
EOVERFLOW The length of the option string to be returned in the
optptr argument exceeds the size of the buffer
specified by
optlen.
EPERM The {
PRIV_SYS_MOUNT} privilege is not asserted in the
effective set of the calling process.
EREMOTE The
spec argument is remote and cannot be mounted.
EROFS The
spec argument is write protected and
mflag requests write permission.
USAGE
The
mount() function can be invoked only by processes with
appropriate privileges.
SEE ALSO
umount(2),
mnttab(5),
mount(8)NOTES
MS_OPTIONSTR-type option strings should be used.
Some flag bits set file system options that can also be passed in an
option string. Options are first set from the option string with the
last setting of an option in the string determining the value to be
set by the option string. Any options controlled by flags are then
applied, overriding any value set by the option string.
February 26, 2004 MOUNT(2)