NAME

bind, mount, unmount – change name space

SYNOPSIS

bind
[
option ...
]
new old

mount
[
option ...
]
servename old
[
spec
]

unmount
[
new
]
old

DESCRIPTION

Bind
and
mount
modify the file name space of the current process
and other processes in the same name space group
(see
fork(2)).
For both calls,
old
is the name of an existing file or directory in the
current name space where the modification is to be made.

For
bind,new
is the name of another (or possibly the same)
existing file or directory in
the current name space.
After a successful
bind,
the file name
old
is an alias for the object originally named by
new;
if the modification doesn’t hide it,
new
will also still refer to its original file.
The evaluation of
new
(see
intro(2))
happens at the time of the
bind,
not when the binding is later used.

The
servename
argument to
mount
is the name of a file that, when opened, yields an
existing connection to a file server.
Almost always,
servename
will be a file in
/srv
(see
srv(3)).
In the discussion below,
new
refers to the file named by the
new
argument to
bind
or the root directory of the service
available in
servename
after a
mount.
Either both
old
and
new
files must be directories,
or both must not be directories.

Options control aspects of the modification to the name space:

(none)

Replace the
old
file by the new one.
Henceforth, an evaluation of
old
will be translated to the new file.
If they are directories (for
mount,
this condition is true by definition),
old
becomes a
union directory
consisting of one directory (the new file).

-b

Both files must be directories.
Add the new directory to the beginning
of the union directory represented by the old file.

-a

Both files must be directories.
Add the new directory to the end
of the union directory represented by the old file.

-c

This can be used in addition to any of the above to permit
creation in a union directory.
When a new file is created in a union directory,
it is placed in the first element of the union that has been bound or mounted with the
-c
flag.
If that directory does not have write permission, the create fails.

-C

(Only in
mount.)
By default, file contents are always retrieved from the server.
With this option, the kernel may instead use a local cache to satisfy
read(5)
requests for files accessible through this mount point.
The currency of cached data for a file is verified at each
open(5)
of the file from this client machine.

-q

Exit silently if the
bind
or
mount
operation fails.

Mount
takes three additional options.
The first,
-kkeypattern,
constrains the set of
factotum(4)
keys used for an authenticated mount.
The second,
-n,
causes
mount
to skip authentication entirely.
The third,
-N,
skips authentication and specifies
none
as the username to the fileserver.

The
spec
argument to
mount
is passed in the
attach(5)
message to the server, and selects among different
file trees served by the server.

The
srv(3)
service registry device, normally bound to
/srv,
is a convenient rendezvous point for services that can be mounted.
After bootstrap, the file
/srv/boot
contains the communications port to the file system from which
the system was loaded.

The effects of
bind
and
mount
can be undone with the
unmount
command.
If two arguments are given to
unmount,
the effect is to undo a
bind
or
mount
with the same arguments.
If only one argument is given,
everything bound to or mounted upon
old
is unmounted.