7.1 File Systems and Logical Storage
The Digital UNIX operating system supports many file systems and logical
storage schemes, including:
For a survey of these capabilities, read the Digital UNIX Technical Overview manual. For information about administering
these file systems, see Chapter 8 for AdvFS and Chapter 9
for LSM.
Administration of the NFS is documented in the Network Administration manual.
The Technical Overview points you to sources of information about these file systems:
Sectors are grouped together to form up to eight disk partitions.
However, disks differ in the number and size of partitions.
The /etc/disktab file contains a list of supported disks and the default
partition sizes for the system. Refer to the
Disk
partitions are logical divisions of a disk that allow you to organize files
by putting them into separate areas of varying sizes. Partitions hold data
in structures called file systems and can also be used for system operations
such as paging and swapping. File systems have a hierarchical structure of
directories and files, which is described in Section 7.1.3.
By selecting the file systems to be placed in a partition, you can monitor
the growth and activity of the disk.
Disk partitions have default sizes that depend on the type of disk and
that can be altered by using the disklabel command. Partitions
are named a to h. While the allocated
space for a partition can overlap another partition, a properly partitioned
disk should not have file systems on overlapping partitions.
Figure 7-1 shows the default partitions and starting
(offset) sectors for an RZ73 disk:
The disk label is located in block 0 (zero) in one of the first
sectors of the disk. The disk label provides detailed information about the
geometry of the disk and the partitions into which the disk is divided. The
system disk driver and the boot program use the disk label information to
recognize the drive, the disk partitions, and the file systems. Other information
is used by the operating system to use the disk most efficiently and to locate
important file system information.
The disk label description of each partition contains an identifier
for the partition type (for example, standard file system, swap space, and
so on). There are two copies of a disk label, one located on the disk and
one located in system memory. Because it is faster to access system memory
than to perform I/O, when a system recognizes a disk, it copies the disk label
into memory. The file system updates the in-memory copy of the label if it
contains incomplete information about the file system. If a disk is not labeled
and does not contain an ULTRIX-style partition table, the partitions are obtained
from the /etc/disktab file. You can change the label with
the disklabel command. Refer to Section 7.8
and to the
The basic unit of virtual memory and physical memory is the page. Virtual
memory attempts to keep a process' most recently referenced virtual pages
in physical memory. When a process references virtual pages, they are brought
into physical memory from their storage locations on disk. Modified virtual
pages can be moved to a temporary location on the disk called swap space if
the physical pages (the pages in physical memory) that contain the virtual
pages are needed by either a newly referenced virtual page or by a page with
a higher priority. Therefore, a process' virtual address space can consist
of pages that are located in physical memory, stored temporarily in swap space,
and stored permanently on disk in executable or data files. The operating
system uses two operations to move virtual pages between physical memory and
disk: paging and swapping.
Paging involves moving a single virtual page or a small cluster
of pages between disk and physical memory. If a process references a virtual
page that is not in physical memory, the operating system reads a copy of
the virtual page from its permanent location on disk or from swap space into
physical memory. This operation is called a pagein. Pageins typically occur
when a process executes a new image and references locations in the executable
image that have not been referenced before.
If a physical page is needed to hold a newly referenced virtual page
or a page with a higher priority, the operating system writes a modified virtual
page (or a small cluster of pages) that has not been recently referenced to
the swap space. This operation is called modified page writing or a pageout.
Note that only modified virtual pages are written to swap space because there
is always a copy of the unmodified pages in their permanent locations on disk.
Swapping involves moving a large number of virtual pages between physical
memory and disk. The operating system requires a certain amount of physical
memory for efficient operation. If the number of free physical pages drops
below the system-defined limit, and if the system is unable to reclaim enough
physical memory by paging out individual virtual pages or clusters of pages,
the operating system selects a low priority process and reclaims all the physical
pages that it is using. It does this by writing all of its modified virtual
pages to swap space. This operation is called a swapout. Swapouts typically
occur on systems that are memory constrained.
See Section 7.10 for information about how this
command interacts with overlapping partitions. The amount of swap space that
your system requires depends on the swap space allocation strategy that you
use and your system workload. Strategies are described in the following section.
Immediate mode is more conservative than deferred mode because each
modifiable virtual page is assigned a page of swap space when it is created.
If you use the immediate mode of swap space allocation, you must allocate
a swap space that is at least as large as the total amount of modifiable virtual
address space that will be created on your system. Immediate mode requires
significantly more swap space than deferred mode because it guarantees that
there will be enough swap space if every modifiable virtual page is modified.
If you use the deferred mode of swap space allocation, you must estimate
the total amount of virtual address space that will be both created and modified,
and compare that total amount with the size of your system's physical memory.
If this total amount is greater than the size of physical memory, the swap
space must be large enough to hold the modified virtual pages that do not
fit into your physical memory. If your system's workload is complex and you
are unable to estimate the appropriate amount of swap space by using this
method, you should first use the default amount of swap space and adjust the
swap space as needed.
You should always monitor your system's use of swap space. If
the system issues messages that indicate that swap space is almost depleted,
you can use the swapon command to allocate additional swap
space. If you use the immediate mode, swap space depletion prevents you from
creating additional modifiable virtual address space. If you use the deferred
mode, swap space depletion may result in one or more processes being involuntarily
terminated.
You may receive the following informational messages when you remove
the /sbin/swapdefault file and when you boot a system that
is using the deferred method:
If the /sbin/swapdefault file does not exist and
you want to enable the immediate method of swap allocation, become the root
user and create the file by using the following command syntax:
ln -s../dev/rzxy /sbin/swapdefault
The x variable specifies the device number
for the device that holds the primary swap partition, and the y variable specifies the swap partition. Usually, the swap
device number is the same as the boot device number, and the primary swap
partition is partition b.
You must reboot the system for the new method to take effect.
A UFS file system has four major parts:
The first block of every file system (block 0) is reserved for a boot,
or initialization, program.
Block 1 of every file system is called the superblock and contains the
following information:
When new blocks are allocated to a file, they are obtained from the
free-block list. When a file is deleted, its blocks are returned to the free-block
list.
A group of blocks follows the superblock. Each of these blocks contains
a number of inodes. Each inode has an associated inumber. An inode describes
an individual file in the file system. There is one inode for each possible
file in the file system. File systems have a maximum number of inodes; therefore
there is a maximum number of files that a file system can contain. The maximum
number of inodes depends on the size of the file system.
The first inode (inode 1) on each file system is unnamed and unused.
The second inode (inode 2) must correspond to the root directory for the file
system. All other files in the file system are under the file system's root
directory. After inode 2, you can assign any inode to any file. You can
also assign any data block to any file. The inodes and blocks are not allocated
in any particular order.
If an inode is assigned to a file, the inode can contain the following
information:
The possible types are regular, device, named pipes, socket, and symbolic
link files.
The inode contains the user and group identification numbers that are
associated with the owner of the file.
Protection information specifies read, write, and execute access for
the file owner, members of the group associated with the file, and others.
The protection information also includes other mode information specified
by the chmod command.
A directory entry (link) consists of a name and the inumber (inode number)
that represents the file. The link count indicates the number of directory
entries that refer to the file. A file is deleted if the link count is zero;
the file's inode is returned to the list of free inodes, and its associated
data blocks are returned to the free-block list.
These pointers indicate the actual location of the data blocks on the
physical disk.
Data blocks contain user data or system files.
7.1.1 Disk Partitions
A disk consists of storage units
called sectors. Each sector is usually 512 bytes. A sector is addressed
by the logical block number (LBN). The LBN is the basic unit of the disk's
user-accessible data area that you can address. The first LBN is numbered
0, and the highest LBN is numbered one less than the number of LBNs in the
user-accessible area of the disk.disktab
(4) reference page
for more information.
Figure 7-1: RZ73 Default Disk Partitions
disklabel
(8) reference page for more information.
7.1.2 Adding Swap Space
The Digital UNIX
operating system uses a combination of physical memory and disk space to create
virtual memory, which can be much larger than the physical memory. Virtual
memory can support more processes than the physical memory alone. This section
and the sections that follow describe important virtual memory concepts that
you should consider when configuring swap space.
7.1.2.1 How Swap Space is Allocated
Swap space is initially allocated during system
installation. You can add swap space after the installation by including
swap space entries in the /etc/fstab file and then rebooting.
Additionally, you can use the swapon command to add more
swap space--overriding the /etc/fstab definitions--until
the next time the system is rebooted. Refer to Section 7.4
and the swapon
(8) reference page for more information.
7.1.2.2 Estimating Swap Space Requirements
There are two strategies for swap space allocation: immediate
mode and deferred or over-commitment mode. The two strategies differ in the
point in time at which swap space is allocated. In immediate mode, swap space
is allocated when modifiable virtual address space is created. In deferred
mode, swap space is not allocated until the system needs to write a modified
virtual page to swap space.
Note
7.1.2.3 Selecting the Swap Space Allocation Method
To determine which swap space allocation method is being used, check
for the existence of a soft link named /sbin/swapdefault,
which points to the primary
swap partition. If the /sbin/swapdefault file
exists, the system uses the immediate method of swap space allocation. To
enable the deferred method, rename or delete this soft link.
vm_swap_init: warning sbin/swapdefault swap device not found
vm_swap_init: in swap over-commitment mode
7.1.3 UNIX File System Structure
This
section discusses the UNIX File System (UFS). For information on the Advanced
File System (AdvFS) structure, refer to Chapter 8.
7.1.4 File System and Directory Hierarchy
The standard Digital UNIX system
directory hierarchy is set up for efficient organization. It separates files
by function and intended use. Effective use of the file system includes placing
command files in directories that are in the normal search path as specified
by the users' .profile or .login file,
as appropriate. Figure 7-2 shows the major directories in the
file system. Not all of the directories in the Digital UNIX hierarchy are
shown; you should use those shown in Figure 7-2 to ensure that
your product will be portable to other systems. Some of the directories are
actually symbolic links.
Figure 7-2: Partial Digital UNIX Directory Hierarchy
Table 7-1
describes the contents and purposes of the directories shown in Figure 7-2.
Mounting a file system makes it available for use.
Use the mount command to attach file systems to the file
system hierarchy under the system root directory; use the umount command to detach them. When you mount a file system, you specify
a location (the mount point under the system root directory) to which the
file system will attach.
The root directory of a mounted file system is also its mount point.
Only one system root directory can exist because the system uses the root
directory as its source for system initialization files. Consequently, file
systems are mounted under the system root directory.
While you notice only the external interface, you should understand
the various file types recognized by the system.
The
system supports the following file types:
There are three types of device files:
Block device files are used for devices whose driver handles I/O in
large blocks and where the kernel handles I/O buffering. Physical devices
such as disks are defined as block device files. An example of the block device
files in the /dev directory follows:
Character device files are used for devices whose drivers handle their
own I/O buffering. Disk, terminal, pseudoterminal, and tape drivers are typically
defined as character device files. An example of the character device files
in the /dev directory follows:
The printer daemon (lpd) and error
logging daemon (syslogd) use the socket
device files. An example of the socket device files in the /dev
directory follows:
Because disk and tape drivers often handle more than one device, each
device file has a major and a minor number. The major number specifies (to
the kernel) the driver that handles the device. The minor number is passed
to the appropriate driver and tells it the device on which to perform the
operation.
For static drivers, use the MAKEDEV command or the mknod command to create device special files. The kmknod command creates device special files for third-party kernel layered
products. Refer to the
For loadable drivers, the sysconfig command creates
the device special files by using the information specified in the driver's
stanza entry in the /etc/sysconfigtab database file.
The newfs command has the following syntax:
/sbin/newfs[-N] [fs_options] device [disk_type]
You must specify the unmounted, raw device (for example, /dev/rrz0a).
Refer to the
See Section 7.10 for information about how this
command interacts with overlapping partitions.
File systems can become corrupted in many ways, such as improper shutdown
procedures, hardware failures, and power outages and power surges. A file
system can also become corrupted if you physically write protect a mounted
file system, take a mounted file system off line, or if you do not synchronize
the system before you shut the system down.
At boot time, the system runs fsck noninteractively,
making any corrections that can be done safely. If it encounters an unexpected
inconsistency, the fsck program exits, leaves the system
in single-user mode, and displays a recommendation that you run the program
manually, which allows you to respond yes or no to the prompts that fsck displays.
The command to invoke the fsck program has the following
syntax:
/usr/sbin/fsck[options ...] [file_system ...]
If you do not specify a file system, all the file systems in the /etc/fstab file are checked. If you specify a file system, you
should always use the raw device.
Refer to the
See Section 7.10 for information about how this
command interacts with overlapping partitions.
When you boot the system, file systems that are defined in the /etc/fstab file are mounted. The /etc/fstab
file contains entries that specify the device and partition where the file
system is located, the mount point, and additional information about the file
system, such as file system type. If you are in single-user mode, the root
file system is mounted read only.
If you try to reboot and the /etc/fstab file is corrupted,
use a command similar to the following:
The /dev/rz0a device is the root file system.
The operating system uses the UFS for the root file system. The operating
system supports only one root file system from which it accesses the executable
kernel (/vmunix) and other binaries and
files that it needs to boot and initialize. The root file system is mounted
at boot time and cannot be unmounted.
The /etc/fstab file contains descriptive information about file systems
and swap space and is read by commands such as the mount
command. When you boot the system, the /etc/fstab file
is read and the file systems described in the file are mounted in the order
that they appear in the file. A file system or swap space is described on
a single line; information on each line is separated by tabs or spaces. Refer
to the
The order of entries in the /etc/fstab file is important
because the mount and umount commands
read the file entries in the order that they appear.
You must be root user to edit the /etc/fstab
file. To apply the additions that you make to the file, use the mount -a command. Any changes you make to the file become
effective when you reboot.
The following is an example of an /etc/fstab file:
Each line contains an entry and the information is separated either
by tabs or spaces. An /etc/fstab file entry has the following
information:
By default,
user and group quotas for a file system are contained in the quota.user and quota.group files, which are located in
the directory specified by the mount point. For example, the quotas for the
file system on which /usr is mounted are located in the /usr directory. You also can specify another file name and location.
For example: userquota=/var/quotas/tmp.user
The mount command supports the UFS, AdvFS, NFS,
CDFS, and /proc file system types.
The following mount command syntax is for all file
systems:
mount[-adflruv] [-ooption] [-ttype] [file_system] [mount_point]
For AdvFS, the file system argument has the following form:
host :remote_directory
remote_directory @host
The following command lists the currently mounted file systems and the
file system options. The backslash contained in this example indicates line
continuation and is not in the actual display.
The following command mounts the /usr/homer file
system located on host acton on the local /homer mount point with read-write access:
Refer to the
See Section 7.10 for information
about how this command interacts with overlapping partitions.
umount[-afv] [-hhost] [-ttype] [mount_point]
If any user process (including a cd command) is in
effect within the file system, you cannot unmount the file system. If the
file system is in use when the command is invoked, the system returns the
following error message and does not unmount the file system:
You cannot unmount the root file system with the umount
command.
The tunefs command has the following syntax:
tunefs[-amaxc] [-drotd] [-emaxb] [-mminf] [-oopt] [file_s]
You can use the tunefs command on both mounted and
unmounted file systems; however, changes are applied only if you use the command
on unmounted file systems. If you specify the root file system, you must also
reboot to apply the changes.
You can use command options to specify the dynamic parameters that affect
the disk partition layout policies. Refer to the
With the radisk program, you can perform the following
tasks on a DSA disk device:
Refer to the
The scu program allows you to perform the following
tasks on SCSI disk devices, in addition to other tasks:
Refer to Appendix B and to the
You can use the quota command only if you are the
root user.
The df command has the following syntax:
df[-eiknPt] [-F fstype] [file] [file_system . . .]
With no arguments or options, the df command displays
the amount of free disk space on all of the mounted file systems. For each
file system, the df command reports the file system's configured
size in 512-byte blocks, unless you specify the -k
option, which reports the size in kilobyte blocks. The command displays the
total amount of space, the amount presently used, the amount presently available
(free), the percentage used, and the directory on which the file system is
mounted.
For AdvFS file domains, the df command displays disk
space usage information for each fileset.
If you specify a device that has no file systems mounted on it, df displays the information for the root file system.
You can specify a file pathname to display the amount of available disk
space on the file system that contains the file.
Refer to the
The following example displays disk space information about all the
mounted file systems:
The du command pinpoints disk space allocation by
directory. With this information you can decide who is using the most space
and who should free up disk space.
The du command has the following syntax:
/usr/bin/du[-aklrsx] [directory . . . | filename . . .]
The du command displays the number of blocks contained
in all directories (listed recursively) within each specified directory, file
name, or (if none are specified) the current working directory. The block
count includes the indirect blocks of each file in 1-kilobyte units, independent
of the cluster size used by the system.
If you do not specify any options, an entry is generated only for each
directory. Refer to the
The following example displays a summary of blocks that all main subdirectories
in the /usr/users directory use:
From this information, you can determine that user rubin is using the
most disk space.
The following example displays the space that each file and subdirectory
in the /usr/users/rubin/online directory uses:
You can use the quot command to list the number of
blocks in the named file system currently owned by each user.
You must be root user to use the quot command.
The quot command has the following syntax:
/usr/sbin/quot[-c] [-f] [-n] [file_system]
The following example displays the number of blocks used by each user
and the number of files owned by each user in the /dev/rz0h
file system:
Refer to the
You can apply quotas to file systems to establish a limit on the number
of blocks and inodes (or files) that a user account or a group of users can
allocate. You can set a separate quota for each user or group of users on
each file system. You may want to set quotas on file systems that contain
home directories, such as /usr/users, because the sizes
of these file systems can increase more significantly than other file systems.
You should avoid setting quotas on the /tmp file system.
For each user or group you specify, edquota creates
a temporary ASCII file that you edit with the vi editor.
Edit the file to include entries for each file system with quotas enforced,
the soft and hard limits for blocks and inodes (or files), and the grace period.
If you specify more than one user name or group name in the edquota command line, the edits will affect each user or group.
You can also use prototypes that allow you to quickly set up quotas for groups
of users. Refer to the
If you want to turn off quotas, use the quotaoff
command. Also, the umount command turns off quotas before
it unmounts a file system. Refer to the
The quotacheck command verifies that the actual block
use is consistent with established limits. You should run the quotacheck command twice: when quotas are first enabled on a file system
and after each reboot. The command gives more accurate information when there
is no activity on the system.
The quota command displays the actual block use for
each user in a file system. Only the root user can execute the quota command.
The repquota command displays the actual disk use
and quotas for the specified file system. For each user, the current number
of files and the amount of space (in KB) is displayed along with any quotas.
If you find it necessary to change the established quotas, use the edquota command, which allows you to set or change the limits for
each user.
Refer to the
The disk label provides detailed information about the geometry of the
disk and the partitions into which the disk is divided. You can change the
label with the disklabel command. You must be the root
user to use the disklabel command.
There are two copies of a disk label, one located on the disk and one
located in system memory. Because it is faster to access system memory than
to perform I/O, when the system boots, it copies the disk label into memory.
Use the disklabel -r command
to directly access the label on the disk instead of going through the in-memory
label.
Before changing the size of a disk partition, review
the current partition setup by viewing the disk label. The disklabel command allows you to view the partition sizes. The bottom, top,
and size of the partitions are in 512-byte sectors.
To review the current disk partition setup, use the following disklabel command syntax:
disklabel-r device
Specify the device with its directory name (/dev)
followed by the raw device name, drive number, and partition a
or c. You can also specify the disk unit and number, such
as rz1.
An example of using the disklabel command to view
a disk label follows:
You must be careful
when you change partitions because you can overwrite data on the file systems
or make the system inefficient. If the partition label becomes corrupted while
you are changing the partition sizes, you can return to the default partition
label by using the disklabel command with the -w option, as follows:
The disklabel command allows you to change the partition label of an individual
disk without rebuilding the kernel and rebooting the system. Use the following
procedure:
disklabel-e [-r] disk
An editor, either the vi editor or that specified by the EDITOR environment variable,
is invoked so you can edit the disk label, which is in the format displayed
with the disklabel -r command.
The -r option writes the label directly to
the disk and updates the system's in-memory copy, if possible. The disk parameter specifies the unmounted disk (for example, rz0 or /dev/rrz0a).
After you quit the editor and save the changes, the following prompt
is displayed:
Digital UNIX protects the first block of a disk with a valid disk label
because this is where the disk label is stored. As a result, if you clone
a partition to a partition on a target disk that contains a valid disk label,
you must decide whether you want to keep the existing disk label on that target
disk.
If you want to maintain the disk label on the target disk, use the dd command with the skip and seek
options to move past the protected disk label area on the target disk. Note
that the target disk must be the same size as or larger than the original
disk.
To determine if the target disk has a label, use the
following disklabel command syntax:
disklabel-r target_device
You must specify the target device directory name (/dev)
followed by the raw device name, drive number, and partition c.
If the disk does not contain a label, the following message is displayed:
The following example shows a disk that already contains a label:
If the target disk already contains a label and you do not want to keep
the label, you must zero (clear) the label by using the disklabel -z command. For example:
To clone the original disk to the target disk and keep the target disk
label, use the following dd command syntax:
dd if=original_disk of=target_disk skip=16 seek=16 bs=512
Specify the device directory name (/dev) followed
by the raw device name, drive number, and the original and target disk partitions.
For example:
If the partition is not in use, the command continues to execute. In
addition to mounting or creating file systems, commands like mount, newfs, fsck, voldisk, mkfdmn, rmfdmn, and swapon also modify the disk label, so that the fstype
field specifies how the partition is being used. For example, when you add
a disk partition to an AdvFS domain, the fstype field is
set to AdvFS.
If the partition is not available, these commands return an error message
and ask if you want to continue, as shown in the following example:
Applications, as well as operating system commands, can modify the fstype of the disk label, to indicate that a partition is in use.
See the
7.1.5 Directories and File Types
The operating system views files as
bit streams, allowing you to define and handle on-disk data, named pipes,
UNIX domain sockets, and terminals as files. This object-type transparency
provides a simple mechanism for defining and working with a wide variety of
storage and communication facilities. The operating system handles the various
levels of abstraction as it organizes and manages its internal activities.
7.1.6 Device Special Files
Device
special files represent physical devices, pseudodevices, and named pipes.
The /dev directory contains device special files. Device
special files serve as the link between the system and the device drivers.
Each device special file corresponds to a physical device (for example, a
disk, tape, printer, or terminal) or a pseudodevice (for example, a network
interface, a named pipe, or a UNIX domain socket). The driver handles all
read and write operations and follows the required protocols for the device.
brw------- 1 root system 8, 1 Jan 19 11:20 /dev/rz0a
brw------- 1 root system 8, 1 Jan 19 10:09 /dev/rz0b
crw-rw-rw- 1 root system 7, 0 Jan 31 16:02 /dev/ptyp0
crw-rw-rw- 1 root system 7, 1 Jan 31 16:00 /dev/ptyp1
crw-rw-rw- 1 root system 9, 1026 Jan 11 14:20 /dev/rmt1h
srw-rw-rw- 1 root system 0 Jan 22 03:40 log
srwxrwxrwx 1 root system 0 Jan 22 03:41 printer
MAKEDEV
(8), mknod
(8), and kmknod
(8)
reference pages for more information.
7.2 Creating File Systems
The newfs command formats a disk partition
and creates a usable UNIX file system. For information on creating an AdvFS,
refer to Chapter 8.
Using the information in the
disk label or the default values specified in the /etc/disktab
file, the newfs command builds a file system on the specified
disk partition. You can also use newfs command options
to specify the disk geometry.
Note
newfs
(8) reference page for information on the command
options specific to file systems.
7.3 Checking File Systems
The fsck program checks UNIX
file
systems and performs some corrections to help ensure a reliable environment
for file storage on disks. The fsck program can correct
file system inconsistencies such as unreferenced inodes, missing blocks in
the free list, or incorrect counts in the superblock.fsck
(8) reference page for information about command
options.Note
AdvFS uses write-ahead logging instead of the fsck
utility. As your system mounts, AdvFS checks all records in the recovery
log for system inconsistencies and makes corrections as needed. Refer to Chapter 8 for more information.
7.4 Accessing File Systems
You
attach a file system to the file system tree by using the mount
command, which makes the file system available for use. The mount command attaches the file system to an existing directory (mount
point).
Note
Note
# mount -u /dev/rz0a /
swapon
(8) reference page for more information about adding swap space.
/dev/rz2a / ufs rw 1 1
/dev/rz0g /usr ufs rw 1 2
/dev/rz2b swap1 ufs sw 0 2
/dev/rz0b swap2 ufs sw 0 2
/dev/rz2g /var ufs rw 1 2
/usr/man@tuscon /usr/man nfs rw,bg 0 0
proj_dmn#testing /projects/testing advfs rw 0 0
[1] [2] [3] [4] [5] [6]
cdfs
Specifies an ISO 9600 or HS formatted (CD-ROM)
file system.
nfs
Specifies NFS.
procfs
Specifies a /proc file
system, which is used for debugging.
ufs
Specifies a UFS file system or a swap partition.
advfs
Specifies an AdvFS file system.
ro
Specifies that the file system is mounted
with read-only access.
rw
Specifies that the file system is mounted
with read-write access.
sw
Specifies that the partition is used as swap
space.
rq
Specifies that the file system is mounted
with read-write access and quotas imposed.
userquota groupquota
Specifies that the file system is automatically
processed by the quotacheck command and that disk quotas
are enabled with the quotaon command.
xx
Specifies that the file system entry should
be ignored.
7.4.1 Using the mount Command
You use the mount command to make a file system available
for use. Unless you add the file system to the /etc/fstab
file, the mount will be temporary and will not exist after you reboot the
system. filedomain#fileset
Specify the file system and the
mount point, which is the directory on which you want to mount the file system.
The directory must already exist on your system. If you are mounting a remote
file system, use one of the following syntaxes to specify the file system:
# mount -l
/dev/rz2a on / type ufs (rw,exec,suid,dev,nosync,noquota)
/dev/rz0g on /usr type ufs (rw,exec,suid,dev,nosync,noquota)
/dev/rz2g on /var type ufs (rw,exec,suid,dev,nosync,noquota)
/dev/rz3c on /usr/users type ufs (rw,exec,suid,dev,nosync,noquota)
/usr/share/man@tuscon on /usr/share/man type nfs (rw,exec,suid,dev,
nosync,noquota,hard,intr,ac,cto,noconn,wsize=8192,rsize=8192,
timeo=10,retrans=10,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60)
proj_dmn#testing on /alpha_src type advfs (rw,exec,suid,dev,nosync,\
noquota)
# mount -t nfs -o rw acton:/usr/homer /homer
mount
(8) reference page for more information on general
options and options specific to a file system type.
7.4.2 Using the umount Command
Use the umount command to unmount a file system.
You must unmount a file system if you want to check it with the fsck command or if you want to change its partitions with the disklabel command.
The umount command has the following syntax:
mount device busy
7.5 Tuning File Systems
To enhance the efficiency of UFS reads, use the tunefs command to change a file system's dynamic parameters, which affect
layout policies.tunefs
(8) reference page
for more information on the command options.
7.6 Maintaining Disks
The radisk program and the scu program allow you
to maintain your Digital Storage Architecture (DSA) and Small Computer System
Interface (SCSI) disk devices, respectively.radisk
(8) reference page for more information.scu
(8) reference page
for more information.
7.7 Monitoring Disk Use
To ensure an adequate amount
of free disk space, you should regularly monitor the disk use of your configured
file systems. You can do this in any of the following ways:
7.7.1 Checking Available Free Space
To ensure sufficient space
for your configured file systems, you should regularly use the df command to check the amount of free disk space in all of the mounted
file systems. The df command displays statistics about
the amount of free disk space on a specified file system or on a file system
that contains a specified file.df
(1) reference page for more information.
Note
# /sbin/df
Filesystem 512-blks used avail capacity Mounted on
/dev/rz2a 30686 21438 6178 77% /
/dev/rz0g 549328 378778 115616 76% /usr
/dev/rz2g 101372 5376 85858 5% /var
/dev/rz3c 394796 12 355304 0% /usr/users
/usr/share/man@tsts 557614 449234 52620 89% /usr/share/man
domain#usr 838432 680320 158112 81% /usr
Note
7.7.2 Checking Disk Use
If you determine that a file system has insufficient
space available, check how its space is being used. You can do this with
the du command or the quot command.du
(1) reference page for more information on command
options.
# /usr/bin/du -s /usr/users/*
440 /usr/users/barnam
43 /usr/users/broland
747 /usr/users/frome
6804 /usr/users/morse
11183 /usr/users/rubin
2274 /usr/users/somer
# /usr/bin/du -a /usr/users/rubin/online
1 /usr/users/rubin/online/inof/license
2 /usr/users/rubin/online/inof
7 /usr/users/rubin/online/TOC_ft1
16 /usr/users/rubin/online/build
.
.
.
251 /usr/users/rubin/online
Note
# /usr/sbin/quot -f /dev/rrz0h
Note
quot
(8) reference page for more information.
7.7.3 Setting User and Group Quotas for UFS
This
section provides information on setting user and group quotas for UFS. As
a system administrator, you establish usage limits for user accounts and for
groups by setting file system quotas, also known as disk quotas, for them.
For information on setting AdvFS user and group quotas, refer to Chapter 8.
For more information on user and group quotas on UFS, refer to Section 10.3.4.
7.7.3.1 Hard and Soft Quota Limits
File systems can have both
soft and hard quota limits. When a hard limit is reached, no more disk space
allocations or file creations that would exceed the limit are allowed. The
soft limit may be reached for a period of time (called the grace period).
If the soft limit is reached for an amount of time that exceeds the grace
period, no more disk space allocations or file creations are allowed until
enough disk space is freed or enough files are deleted to bring the disk space
usage or number of files below the soft limit.
Caution
If you are in an editor and exceed a quota limit, do not abort
the editor or write the file because data may be lost. Instead, use the editor
exclamation point (!) shell escape command
to remove files. You can also write the file to another file system, such
as /tmp, remove files from the file system whose quota
you reached, and then move the file back to that file system.
7.7.3.2 Activating File System Quotas
To activate quotas on a UNIX file system, perform the following steps.
options QUOTA
quotacheck
(8) reference page for command information.edquota
(8) reference page for more information.quotaon
(8) reference page for more information.
# /usr/sbin/rcmgr set QUOTA_CONFIG yes
quotaoff
(8) reference page for
more information.
7.7.4 Verifying Disk Quotas
If
you are enforcing user disk quotas, you should periodically verify your quota
system. You can use the quotacheck, quota,
and repquota commands to compare the established limits
with actual use. quotacheck
(8), quota
(8), and repquota
(8)
reference pages for more information on disk quotas.
7.8 Partitioning Disks
This section provides the information you need to
change the partition scheme of your disks. In general, you allocate disk space
during the initial installation or when adding disks to your configuration.
Usually, you do not have to alter partitions; however, there are cases when
it is necessary to change the partitions on your disks to accommodate changes
and to improve system performance.Note
The following rules apply to changing partitions:
# disklabel -r /dev/rrz3a
type: SCSI
disk: rz26
label:
flags:
bytes/sector: 512
sectors/track: 57
tracks/cylinder: 14
sectors/cylinder: 798
cylinders: 2570
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 131072 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 164*)
b: 262144 131072 unused 1024 8192 # (Cyl. 164*- 492*)
c: 2050860 0 unused 1024 8192 # (Cyl. 0 - 2569)
d: 552548 393216 unused 1024 8192 # (Cyl. 492*- 1185*)
e: 552548 945764 unused 1024 8192 # (Cyl. 1185*- 1877*)
f: 552548 1498312 unused 1024 8192 # (Cyl. 1877*- 2569*)
g: 819200 393216 unused 1024 8192 # (Cyl. 492*- 1519*)
h: 838444 1212416 4.2BSD 1024 8192 16 # (Cyl. 1519*- 2569*)
# disklabel -r -w /dev/rrz1a rz26
rz
(7) and ra
(7) reference
pages and to the /etc/disktab file for information on the
default disk partitions.
write new label? [?]:
Enter y to write the new label or n to discard the
changes.
7.9 Cloning Disks
You can use the dd command to clone a complete disk
or a disk partition; that is, you can produce a physical copy of the data
on the disk or disk partition.
Note
Bad pack magic number (label is damaged, or pack is unlabeled)
# disklabel -r /dev/rrz1c
type: SCSI
disk: rz26
label:
flags:
bytes/sector: 512
sectors/track: 57
tracks/cylinder: 14
sectors/cylinder: 798
cylinders: 2570
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 131072 0 unused 1024 8192 # (Cyl. 0 - 164*)
b: 262144 131072 unused 1024 8192 # (Cyl. 164*- 492*)
c: 2050860 0 unused 1024 8192 # (Cyl. 0 - 2569)
d: 552548 393216 unused 1024 8192 # (Cyl. 492*- 1185*)
e: 552548 945764 unused 1024 8192 # (Cyl. 1185*- 1877*)
f: 552548 1498312 unused 1024 8192 # (Cyl. 1877*- 2569*)
g: 819200 393216 unused 1024 8192 # (Cyl. 492*- 1519*)
h: 838444 1212416 unused 1024 8192 # (Cyl. 1519*- 2569*)
# disklabel -z /dev/rrz1c
# dd if=/dev/rrz0c of=/dev/rrz1c skip=16 seek=16 bs=512
7.10 Checking for Overlapping Partitions
Commands to mount or create file systems, add a new
swap device, and add disks to the Logical Storage Manager first check whether
the disk partition specified in the command already contains valid data, and
whether it overlaps with a partition that is already marked for use. The fstype field of the disk label is used to determine when a partition
or an overlapping partition is in use.
# newfs /dev/rrz8c
WARNING: disklabel reports that rz8c currently
is being used as "4.2BSD" data. Do you want to
continue with the operation and possibly destroy
existing data? (y/n) [n]
check_usage
(3) and set_usage
(3) reference pages for more information.