| 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_RDONLYMNT_UNIONMNT_HIDDENMNT_NOEXECMNT_NOSUIDMNT_NODEVMNT_NOCOREDUMPMNT_NOATIMEMNT_RELATIMEMNT_NODEVMTIMEMNT_SYMPERMMNT_SYNCHRONOUSMNT_ASYNCMNT_LOGMNT_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.4 |