MOUNT(2) | System Calls Manual | MOUNT(2) |
mount
, unmount
—
#include <sys/param.h>
#include <sys/mount.h>
int
mount
(const
char *type, const char
*dir, int flags,
void *data,
size_t data_len);
int
unmount
(const
char *dir, int
flags);
mount
() function grafts a file system object onto
the system file tree at the point dir. The argument
data describes the file system object to be mounted, and
is data_len bytes long. The argument
type tells the kernel how to interpret
data (See type below). The
contents of the file system become available through the new mount point
dir. Any files in dir at the time
of a successful mount are swept under the carpet so to speak, and are
unavailable until the file system is unmounted.
The following flags may be specified to suppress default semantics which affect file system access.
MNT_RDONLY
MNT_UNION
MNT_HIDDEN
MNT_NOEXEC
MNT_NOSUID
MNT_NODEV
MNT_NOCOREDUMP
MNT_NOATIME
MNT_RELATIME
MNT_NODEVMTIME
MNT_SYMPERM
MNT_SYNCHRONOUS
MNT_ASYNC
MNT_LOG
MNT_LOG
causes a
journal (or log) to be created in the file system, creating a record of
meta-data writes to be performed, allowing the actual writes to be
deferred. This improves performance in most cases.The MNT_UPDATE
,
MNT_RELOAD
, and MNT_GETARGS
flags indicate that the mount command is being applied to an already mounted
file system. The MNT_UPDATE
flag allows the mount
flags to be changed without requiring that the file system be unmounted and
remounted. A conversion from read-write to read-only will fail if any files
are currently open for writing on the file system, unless the
MNT_FORCE
flag is also applied. Some file systems
may not allow all flags to be changed. For example, some file systems will
not allow a change from read-write to read-only. The
MNT_RELOAD
flag causes kernel file system data to be
reloaded from the file system device. It is only permitted on file systems
mounted read-only. Its purpose is to notify the system that the file system
data has been modified by some external process. The
MNT_GETARGS
flag does not alter any of the mounted
file system's properties, but returns the file system-specific arguments for
the currently mounted file system.
The type argument defines the type of the
file system. The types of file systems known to the system are defined in
<sys/mount.h>
, and those
supported by the current running kernel obtained using
sysctl(8) to obtain the node
vfs.generic.fstypes. data is a pointer to a structure
that contains the type specific arguments to mount. Some of the currently
supported types of file systems and their type specific data are:
MOUNT_FFS
struct ufs_args { char *fspec; /* block special file to mount */ };
MOUNT_NFS
struct nfs_args { int version; /* args structure version */ struct sockaddr *addr; /* file server address */ int addrlen; /* length of address */ int sotype; /* Socket type */ int proto; /* and Protocol */ u_char *fh; /* File handle to be mounted */ int fhsize; /* Size, in bytes, of fh */ int flags; /* flags */ int wsize; /* write size in bytes */ int rsize; /* read size in bytes */ int readdirsize; /* readdir size in bytes */ int timeo; /* initial timeout in .1 secs */ int retrans; /* times to retry send */ int maxgrouplist; /* Max. size of group list */ int readahead; /* # of blocks to readahead */ int leaseterm; /* Term (sec) of lease */ int deadthresh; /* Retrans threshold */ char *hostname; /* server's name */ };
MOUNT_MFS
struct mfs_args { char *fspec; /* name to export for statfs */ struct export_args30 pad; /* unused */ caddr_t base; /* base of file system in mem */ u_long size; /* size of file system */ };
The unmount
() function call disassociates
the file system from the specified mount point
dir.
The flags argument may specify
MNT_FORCE
to specify that the file system should be
forcibly unmounted even if files are still active. Active special devices
continue to work, but any further accesses to any other active files result
in errors even if the file system is later remounted.
mount
() returns the value 0 if the mount was successful,
the number of bytes written to data for
MNT_GETARGS
, otherwise -1 is returned and the variable
errno is set to indicate the error.
unmount
() returns the value 0 if the
unmount succeeded; otherwise -1 is returned and the variable
errno is set to indicate the error.
mount
() will fail when one of the following occurs:
EBUSY
]EFAULT
]ELOOP
]ENAMETOOLONG
]NAME_MAX
}
characters, or an entire path name exceeded
{PATH_MAX
} characters.ENOENT
]ENOTDIR
]EPERM
]The following errors can occur for a ufs file system mount:
EBUSY
]EFAULT
]EINVAL
]EIO
]EMFILE
]ENODEV
]ENOMEM
]ENOTBLK
]ENXIO
]The following errors can occur for a nfs file system mount:
EFAULT
]ETIMEDOUT
]The following errors can occur for a mfs file system mount:
EFAULT
]EINVAL
]EIO
]EMFILE
]ENOMEM
]unmount
() may fail with one of the
following errors:
EBUSY
]EFAULT
]EINVAL
]EIO
]ELOOP
]ENAMETOOLONG
]NAME_MAX
}
characters, or an entire path name exceeded
{PATH_MAX
} characters.ENOTDIR
]EPERM
]A ufs or mfs mount can also fail if the maximum number of file systems are currently mounted.
mount
() and umount
() (now
unmount
()) functions appeared in
Version 1 AT&T UNIX.
Prior to NetBSD 4.0 the
mount
call was used to export NFS file systems. This
is now done through nfssvc
().
The data_len
argument was added for
NetBSD 5.0.
Far more file systems are supported than those those listed.
September 2, 2019 | NetBSD 9.0 |