Manual page for FILESYSTEM(7)
filesystem - file system organization
SYNOPSIS
/
/usr
DESCRIPTION
The SunOS file system tree is organized for easy administration.
Distinct areas within the file system tree are provided for files that
are private to one machine, files that can be shared by multiple
machines of a common architecture, files that can be shared
by all machines, and home directories.
This organization allows the sharable files to be stored
on one machine, while being accessed by many machines using a
remote file access mechanism such as Sun's Network File System
(NFS).
Grouping together similar files makes the
file system tree easier to upgrade and manage.
The file system tree consists of a root file system and a collection
of mountable file systems.
The
mount.8
program attaches mountable file systems to the
file system tree at mount points (directory entries)
in the root file system, or other previously mounted file systems.
Two file systems,
/
(the root) and
/usr,
must be mounted in order to have a fully functional system.
The root file system is mounted automatically by the kernel at boot time; the
/usr
file system is mounted by the
/etc/rc.boot
script, which is run as part of the booting process.
The root file system contains files that are unique
to each machine;
it can not be shared among machines.
The root file system contains the following directories:
- /dev
-
Character and block special files. Device files provide hooks into
hardware devices or operating system facilities. The
MAKEDEV
command
(see
makedev.8
builds device files in the
/dev
directory.
Typically, device files are built to match the kernel and hardware
configuration of the machine.
- /etc
-
Various configuration files and system administration databases
that are machine specific.
You can think of
/etc
as the ``home directory'' of a machine, defining its ``identity.''
Executable programs are no longer kept in
/etc.
- /home
-
Mount points for home directories.
This directory may be arranged so that shared user files are placed under
the directory
/home/machine-name
on machines serving as file servers.
Machines may then be locally configured with mount points under
/home
for all of the file servers of interest,
with the name of the mount point being the name of the file server.
- /mnt
-
A generic mount point.
This is an empty directory available for temporarily mounting
file systems on.
- /sbin
-
Executable programs that are needed in the
boot process before
/usr
is mounted.
/sbin
contains
only
those programs that are needed in order to
mount the
/usr
file system:
hostname.1
ifconfig.8c
init.8
mount.8
and
sh.1
After
/usr
is mounted, the full complement of utilities are available.
- /tmp
-
Temporary files that are deleted at reboot time.
- /var
-
Files, such as log files, that are unique to a machine but that can grow to
an arbitrary (``variable'') size.
- /var/adm
-
System logging and accounting files.
- /var/preserve
-
Backup files for
vi.1
and
ex.1
- /var/spool
-
Subdirectories for files used in printer spooling, mail delivery,
cron.8
at.1
etc.
- /var/tmp
-
Transitory files that are not deleted at reboot time.
Because it is desirable to keep the root file system small,
larger file systems are often mounted on
/var
and
/tmp.
The file system mounted on
/usr
contains architecture-dependent and architecture-independent shareable files.
The subtree rooted at
/usr/share
contains architecture-independent shareable files;
the rest of the
/usr
tree contains architecture-dependent files.
By mounting a common remote file system,
a group of machines with a common architecture
may share a single
/usr
file system.
A single
/usr/share
file system can be shared by machines of any architecture.
A machine acting as a file server may export many different
/usr
file systems to support several different architectures
and operating system releases.
Clients usually mount
/usr
read-only to prevent their accidentally modifying any shared files.
The
/usr
file system contains the following subdirectories:
- /usr/5bin
-
System V executables.
- /usr/5include
-
System V include files.
- /usr/5lib
-
System V library files.
- /usr/bin
-
Executable programs. The bulk of the system utilities are located here.
- /usr/dict
-
Dictionary databases.
- /usr/etc
-
Executable system administration programs.
- /usr/games
-
Executable game programs and data.
- /usr/include
-
Include files.
- /usr/lib
-
Program libraries and various architecture-dependent databases.
- /usr/pub
-
Various data files.
- /usr/ucb
-
Executable programs descended from the Berkeley Software Distribution.
- /usr/share
-
Subtree for architecture-independent shareable files.
- /usr/share/man
-
Subdirectories for the on-line reference manual pages.
- /usr/share/lib
-
Architecture-independent databases.
A machine with disks may export root file systems, swap files
and
/usr
file systems to diskless or partially-disked machines,
which mount these into the standard file system hierarchy.
The standard directory tree for exporting these
file systems is:
- /export
-
The root of the exported file system tree.
- /export/exec/architecture-name
-
The exported
/usr
file system supporting
architecture-name
for the current release.
- /export/exec/architecture-name.release-name
-
The exported
/usr
file system supporting
architecture-name
for SunOS
release-name.
- /export/share
-
The exported common
/usr/share
directory tree.
- /export/root/hostname
-
The exported root file system for
hostname.
- /export/swap/hostname
-
The exported swap file for
hostname.
- /export/var/hostname
-
The exported
/var
directory tree for
hostname.
- /export/dump/hostname
-
The exported dump file for
hostname.
- /export/crash/hostname
-
The exported crash dump directory for
hostname.
Changes from Previous Releases
The file system layout described here is quite a bit different
from the layout employed previous to release 4.0 of SunOS.
For compatibility with earlier releases of SunOS,
and other versions of the
UNIX
system, symbolic links are provided for various files and directories
linking their previous names to their current locations.
The symbolic links provided include:
- /bin --> /usr/bin
-
All programs previously located in
/bin
are now in
/usr/bin.
- /lib --> /usr/lib
-
All files previously located in
/lib
are now in
/usr/lib.
- /usr/adm --> /var/adm
-
The entire
/usr/adm
directory has been moved to
/var/adm.
- /usr/spool --> /var/spool
-
The entire
/usr/spool
directory has been moved to
/var/spool.
- /usr/tmp --> /var/tmp
-
The
/usr/tmp
directory has been moved to
/var/tmp.
/etc/termcap --> /usr/share/lib/termcap
/usr/5lib/terminfo --> /usr/share/lib/terminfo
/usr/lib/me --> /usr/share/lib/me
/usr/lib/ms --> /usr/share/lib/ms
/usr/lib/tmac --> /usr/share/lib/tmac
/usr/man --> /usr/share/man
The following program binaries have been moved from
/etc
to
/usr/etc
with symbolic links to them left in
/etc:
arp,
clri,
cron,
chown,
chroot,
config,
dkinfo,
dmesg,
dump,
fastboot,
fasthalt,
fsck,
halt,
ifconfig,
link,
mkfs,
mknod,
mount,
ncheck,
newfs,
pstat,
rdump,
reboot,
renice,
restore,
rmt,
rrestore,
shutdown,
umount,
update,
unlink,
and
vipw.
In addition, some files and directories
have been moved with no symbolic link left
behind in the old location:
-
- Old Name
-
New Name
- /etc/biod
-
/usr/etc/biod
- /etc/fsirand
-
/usr/etc/fsirand
- /etc/getty
-
/usr/etc/getty
- /etc/in.rlogind
-
/usr/etc/in.rlogind
- /etc/in.routed
-
/usr/etc/in.routed
- /etc/in.rshd
-
/usr/etc/in.rshd
- /etc/inetd
-
/usr/etc/inetd
- /etc/init
-
/usr/etc/init
- /etc/nfsd
-
/usr/etc/nfsd
- /etc/portmap
-
/usr/etc/portmap
- /etc/rpc.lockd
-
/usr/etc/rpc.lockd
- /etc/rpc.statd
-
/usr/etc/rpc.statd
- /etc/ypbind
-
/usr/etc/ypbind
- /usr/lib/sendmail.cf
-
/etc/sendmail.cf
- /usr/preserve
-
/var/preserve
- /usr/lib/aliases
-
/etc/aliases
- /stand
-
/usr/stand
- /etc/yp
-
/var/yp
Note: with this new file system organization, the approach to
repairing a broken file system changes.
One must mount
/usr
before doing an
fsck.8
for example.
If the mount point for
/usr
has been destroyed,
/usr
can be mounted temporarily on
/mnt
or
/tmp.
If the root file system on a standalone system
is so badly damaged that none of these
mount points exist,
or if
/sbin/mount
has been corrupted, the only way to repair it may be
to re-install the root file system.
SEE ALSO
at.1
ex.1
hostname.1
sh.1
vi.1
intro.4
nfs.4p
hier.7
fsck.8
ifconfig.8c
init.8
makedev.8
mount.8
rc.8
Created by unroff & hp-tools.
© somebody (See intro for details). All Rights Reserved.
Last modified 11/5/97