INVOL(8) Domain/OS BSD INVOL(8)
NAME
invol - initialize disk volumes
SYNOPSIS
/etc/invol (from shell)
ex invol (from mnemonic debugger)
DESCRIPTION
invol initializes physical disk volumes, creates logical volumes, and
maintains badspot lists. Once initialized, a volume can be mounted with
the mount(8) command, or can be used to bootstrap the operating system,
providing it contains the necessary files. invol prompts for all required
information.
SUMMARY OF OPTIONS (Complete description follows.)
0 Exit.
1 [-fnb5uom] Initialize virgin physical volume.
2 [-fnb5u] Add a logical volume.
3 [-fnb5] Re-initialize an existing logical volume.
4 Delete a logical volume.
5 List logical volumes.
6 [-e] List badspots on disk or volume.
7 [-f] Create physical badspot list.
8 Create or modify a Domain/OS paging file.
9 Add to existing badspot list.
10 Display/change sector interleave factor. Note: This
option is not supported at SR10.4.
11 Remove from existing badspot list.
12 Configure disk quota table.
FLAGS SUMMARY
-u Use defaults
-f Don't re-format disk
-o Pre-SR10 format
-n Make non-bootable volume
-b Apply BSD UNIX ACLs
-5 Apply SysV UNIX ACLs
-m Make a multi-disk set
-e Print cylinder/head/sector addresses in decimal
FULL DESCRIPTIONS OF OPERATIONS
0 Exit
1 [-fnb5uom]
Initialize a virgin physical volume.
Every new disk must be initialized before it can be used. When you
initialize a new disk, all existing data on the disk are
overwritten. Do not initialize a disk that contains any data you
need to save. We initialize Winchester disks during the
manufacturing process, before installing the system software.
To initialize a new disk, follow this procedure:
A. invol asks which option to perform. Type 7 to create or
replace the badspot list. (See "Recording Badspot
Information"). Type 9 if you want to add to the existing
badspot list. Otherwise, type 1 to initialize a new physical
volume.
B. Specify the type of disk to initialize. invol prompts with:
Select disk: [w=Winch|f=Floppy|q=Quit][ctrl#:][unit#]
Typing q (as always) will exit the program.
invol (as well as salvol and fixvol) can deal with multiple
controllers of the same type. The encoding of the controller#
and unit# is as follows:
w Winchester ... Controller #0 ... Unit #0
w1 Winchester ... Controller #0 ... Unit #1
w1: Winchester ... Controller #1 ... Unit #0
w1:2 Winchester ... Controller #1 ... Unit #2
Thus a single character N following the s|w specifies a unit#
on the first (0'th) controller. If this character is followed
by a ':' character, it is taken to be a controller specifier
which is then followed by an optional unit specifier.
C. invol asks for the name of the physical volume.
D. Choose one of the following verification options:
1 - No verification
2 - Write all blocks on the volume
3 - Write and reread all blocks on the volume
If you choose no verification (option 1), invol does not read
or write to the disk, except to create the volume structure.
This option is the fastest, but means that the disk is not
verified until it is mounted and read or written.
If you choose the second option, invol attempts to write to
each block on the disk. The third option, writing and
rereading all blocks on the volume, is the safest but also the
slowest. For example, to format a complete 33MB Winchester,
option 1 requires about five minutes, option 2 requires about
fifteen minutes, and option 3 requires about 30 minutes.
If a floppy disk is initialized with invol on a busy node,
there is a small chance that a format operation will fail, but
that the failure will not be reported to invol. For this
reason, invol writes each block during floppy initialization,
even for verification option 1. If a write fails after an
apparently successful format, invol will print the message:
format failed for daddr <disk_address>:<write status>
- - retrying format
and will reformat (and rewrite) the track in error. This
happens whether or not the floppy has been previously
initialized.
E. Enter the average file size, when prompted:
Expected average file size, in blocks
(CR for default-5 blocks):
Press <RETURN> to accept the default value of 5 blocks.
Supplying a relatively accurate value for the average file size
can save space on the disk, because the volume table of
contents (a system table) will be allocated more efficiently.
F. invol requests the size (in blocks) and name of each logical
volume to be created. After each entry, invol tells you how
much space remains. After entering the size and name of all
logical volumes, enter a blank line to terminate input. A
physical volume can contain up to 10 logical volumes. For
example:
There are 1231 blocks available.
volume 1: 1231,vol1
The logical volume size must be at least 30 blocks, and must be
a multiple of the track size for the disk. If you specify a
logical volume size that is not a multiple of the track size,
invol rounds it up to the next multiple track size, and informs
you. Note that the physical volume label occupies the first
block on the volume. Thus, the size of the first logical
volume is always one less than a multiple of the track size.
Logical volume names are optional, and are used only when invol
lists the logical volumes on the disk (option 5). You cannot
change the name of a logical volume after creating it.
G. invol requests badspot information by asking whether or not you
wish to use the prerecorded badspot list shipped with the disk.
Answer y[es]. To erase the existing list, answer no. If you
want to initialize the physical badspot list on a virgin disk,
use option seven, not option one. Use option nine to add to an
existing list. You must have a hardcopy of the badspots in
order to enter them. invol has retained the badspot prompt in
option one only for compatibility with existing shell files.
After your affirmative response, invol displays the badspot
list, indicating the physical disk address, cylinder, head,
sector, and byte offset range.
If, in later operations, you wish to provide your own badspot
information, these can be entered in one of several formats:
If the disk is a floppy: only HEX disk (block) addresses may be
entered.
If a multi-disk set was assigned, only HEX physical disk
(block) addresses can be entered (as reported by salvol,
lsyserr or disk_err). These disk addresses are relative to the
entire set. For example: for a multi-disk set, daddr 0 is on
the 1st drive, 1 is on the 2nd one, etc.
Otherwise, the user has the option of entering the following:
HEX physical disk (block) addresses
DECIMAL cylinder-head byte_offset1 [byte_offset2 ...]
up to 8 byte offsets can be
specified per-line (for the
same cylinder/head)
HEX $cylinder-head sector1 [sector2 ...]
up to 8 sectors can be specified
specified per-line (for the
same cylinder/head)
Input continues until the user enters a blank line at which
time he is given an opportunity to start over again (ignoring
everything entered thus far).
If the disk contains logical volume badspots lists (see
earlier) the badspot changes are propagated to these lists as
well.
H. invol initializes the disk. As formatting proceeds, invol
displays milestone messages to report its progress. It also
displays a message for each volume it initializes, and another
when it completes.
I. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
2 [-fnb5u]
Using option 2, you can partially initialize a volume, that is, add
logical volumes to a physical volume, while preserving the existing
logical volumes. Follow this procedure:
A. invol asks which option to perform. Type 2 to partially
initialize a disk.
B. Specify the type of disk to initialize. (See option 1 step B.)
C. invol prints a list of the logical volumes and vacancies on the
disk. If the disk has more than one vacancy, invol asks where
to place the new logical volume by requesting a vacancy number.
Indicate the vacancy that you want invol to use by entering its
number. If there are logical volumes following the vacancy
that you choose, invol prints a warning message and then
automatically increments the volume numbers of those succeeding
volumes by one.
D. Choose a verification option for the logical volume being
initialized. (See option 1 step D.)
E. Enter the expected average file size, in blocks. (See option 1
step E.) Press <RETURN> for the default value, 5 blocks.
F. Enter the name and size of each logical volume to be formatted.
(See option 1 step F.) After each specification, invol informs
you of how much space is available. Terminate input with a
blank line. A physical volume may have up to ten logical
volumes.
G. Enter badspot information. (See option 1 step G.) Terminate
badspot entry with a blank line.
H. Enter the name of the physical volume. (See option 1 step C.)
I. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
3 [-fnb5]
You can reinitialize a logical volume, retaining its size and name,
with option 3. All existing data in the volume will be lost. This
option is useful for reinitializing floppy disks, where one logical
volume typically occupies the entire physical volume.
To reinitialize a single logical volume, use the following
procedure:
A. invol asks which option to perform. Type 3 to reinitialize a
logical volume.
B. Specify the type of disk to initialize. (See option 1 step B.)
C. invol prompts for the # (1..N) of the logical volume to be re-
initialized.
D. Choose a verification option: no verification, write all
blocks, or write and reread all blocks. (See option 1 step D.)
E. Enter the expected average file size, in blocks. (See option 1
step E.) Press <RETURN> for the default value, 5 blocks.
F. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
4 Delete a logical volume.
To delete a logical volume, use the following procedure:
A. invol asks which option to perform. Type 4 to delete a logical
volume.
B. Specify the type of disk from which the volume will be deleted.
(See option 1 step B.)
C. Enter the number of the logical volume to delete. You can
determine the logical volume numbers present on a disk with
option 5.
D. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
Note: invol renumbers the logical volumes following the deleted
volume.
5 Listing logical volumes
Logical volumes on the disk are displayed. Pre-SR10 format logical
volumes are flagged as such in the output. To list the logical
volumes on a disk, use the following procedure:
A. invol asks which option to perform. Type 5 to list the logical
volumes on a disk.
B. Specify the type of disk. (See option 1 step B.) invol lists
the volumes on that disk.
C. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
6 [-e]
List badspots on disk or volume.
To list the badspots in one or more logical volumes, or for the
physical volume, use the following procedure:
A. invol asks which option to perform. Type 6 to list badspots.
B. Specify the type of disk. (See option 1 step B.)
C. Specify the badspots to be listed, by entering one of the
following:
m[fg]
For ESDI drives only:
The contents of the manufacturer supplied badspot list is
displayed. By default, physical disk (block) addresses
are displayed in HEX along with the corresponding HEX (as
opposed to decimal pre-SR10) cylinder/head/sector
addresses and DECIMAL byte offset range. If the -e option
is specified, cylinder/head/sector addresses are displayed
in DECIMAL.
Note:
Users should generally have no reason to use this option
as this list is usually copied to the physical badspot
list/cylinder as soon as a disk is received. On some
disks, moreover, this manufacturer's list is destroyed as
soon as the disk is invol'd (option 1).
p[hys]
For Winchester disks only:
Displays the contents of the physical badspot list. By
default, physical disk (block) addresses are displayed IN
HEX along with the corresponding HEX (as opposed to
decimal pre-SR10) cylinder/head/sector addresses and
DECIMAL byte offset range. If the -e option is specified,
cylinder/head/sector addresses are displayed in DECIMAL.
If the specified disk is the primary drive for a multi-
disk set, the physical disk addresses are relative to the
entire set and a disk identifier is displayed along with
the cylinder/head/sector. This disk identifier consists
of a controller number and drive/unit number. For
example:
phys cylinder head sector byte offset C_num Drv_Unit
daddr range
...
...
123a9f 12d e 5 7123-8034 0 2
If the specified disk is a non-primary member of a multi-
disk set (i.e., the s option was used to examine a single
drive only, see the -m option below), then the physical
disk addresses that are displayed are relative to that
drive and do not correspond in any way to logical/physical
disk addresses for the disk-set as a whole (i.e., as
displayed by lyserr or disk_err).
n Badspots that lie within the specified logical volume are
displayed: n can be any integer from 1 through 10. Both
logical and physical disk addresses are displayed in HEX.
The specified disk must hold a valid pv and lv labels.
The primary member of a multi-disk set must have been
specified.
Note: cylinder/head/sector values are not displayed.
For a multi-disk set, the primary drive of the set must
have been specified earlier. Physical disk addresses are
relative to the entire set.
a[ll]
Badspots for all logical volumes on the disk (or multi-
disk set) are displayed: this format is identical with
that of 1..10 discussed above.
D. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
7 [-f]
Create physical badspot list.
Using option 7, you can create or replace the badspot list on the
disk. (Use option 6 to see if a badspot list exists. Use option 9
to add badspots to an existing badspot list.)
Note:
This option acts upon a single disk drive, regardless of
whether it is a member of a multi-disk set or not. Generally
speaking, this operation is run on a disk as it arrives from
the factory and should not need to be performed again.
A. invol asks which option to perform. Type 7 to enter the disk's
badspot list.
If the -f flag is specified with option 7, the factory badspot
list is re-created. The -f flag is only valid for ESDI and CDC
drives.
B. Enter the location of the badspots, one per line. (See option
1 step G for the proper format.) Terminate badspot information
with a blank line.
For SCSI drives the badspot list should be empty, unless you
have added bad spots to the list after you received your
system. Enter <return> when prompted for the location of the
badspots on a SCSI drive.
C. After you have typed in the list, invol asks you to check for
errors. If you made any errors in the list, you must retype
the entire list by returning to step A and beginning again.
D. invol asks if you have any more requests. Type y[es] to return
to step A, or n[o] to return to the calling program (shell or
Mnemonic Debugger).
8 Create or modify a Domain/OS paging file on an existing logical
volume.
Note: At SR10.4, Domain/OS dynamically allocates the size of the
paging file. This option can only be used to set the initial paging
file size.
You can create an operating system file or modify the size of an
existing one. The Domain/OS paging file is required if you intend
to run the operating system off of this logical volume.
To create or modify a Domain/OS paging file, perform the following
steps:
A. invol asks which option to perform. Type 8.
B. Specify disk type. (See option 1 step B.)
C. Specify logical volume number. The logical volumes present on
a disk may be listed using option 5.
D. If a Domain/OS paging file already exists on this volume, invol
displays the file's current size and asks if you want to change
it. If you reply y[es], invol proceeds to step E. If you
reply n[o], invol skips to step F.
E. invol prompts you to enter the number of pages you want in the
OS paging file. Press <RETURN> to use the default, 352 pages.
Type 0 (zero) to delete an existing paging file, or specify any
number of pages between 1 and 288. If the size you enter is
larger than the current Domain/OS paging file, invol displays
milestones as it initializes new disk records.
F. invol asks if you have any more requests. Type y[es] to return
to step A, or type n[o] to return to the calling program (shell
or Mnemonic Debugger).
9 Add to existing badspot list.
Using option 9, you can add to the disk's existing badspot list.
Run salvol when this operation is done.
Note: You may wish to record the location of badspots that you add
to the existing badspot list. This will allow you to recreate the
entire badspot list in the event that the disk's badspot list is
destroyed.
A. invol asks which option to perform. Type 9 to add to
the disk's badspot list.
B. Enter the location of the badspots, one per line. (See option 1
step G for the proper format.) Terminate badspot information
with a blank line.
C. After you have typed in the list, invol asks you to check for
errors. If you made any errors in the list, you must retype
the entire list by returning to step A and beginning again.
D. invol asks if you have any more requests. Type y[es]
to return to step A, or n[o] to return to the calling program
(shell or Mnemonic Debugger).
10 Display/change sector interleave factor for a logical volume.
Note: Option 10 is not supported at SR10.4.
Using option 10, you can set or display the sector interleave factor
for a volume. The correct interleave factor is set when a logical
volume is created. However, as performance improvements are made,
it may become necessary to change it to achieve optimal block
read/write rates. Operation 10 displays the current value and the
optimal value which we recommend.
A. invol asks which option to perform. Type 10 to set or
display the sector interleave factor.
B. Specify disk type. (See option 1 step B.)
C. invol displays a list of logical volumes for that physical
volume. Specify the appropriate logical volume number. invol
then displays the current sector interleave factor and the
value which we recommend.
D. invol prompts for the new interleave factor. If you do not
wish to change the interleave factor, enter a carriage return.
E. invol asks if you have any more requests. Type y[es]
to return to step A, or type n[o] to return to the calling
program (shell or Mnemonic Debugger).
11 Remove badspots from existing badspot list.
Using option 11, you can subtract from the disk's existing badspot
list. Run salvol when this operation is done.
A. invol asks which option to perform. Type 11 to remove
from the disk's badspot list.
B. Enter the location of the badspots, one per line. (See option 1
step G for the proper format.) Terminate badspot information
with a blank line.
C. After you have typed in the list, invol asks you to check for
errors. If you made any errors in the list, you must retype
the entire list by returning to step A and beginning again.
D. invol asks if you have any more requests. Type y[es]
to return to step A, or n[o] to return to the calling program
(shell or Mnemonic Debugger).
12 Configure disk quota table
You use this option to configure a disk quota table on a logical
volume. To initialize a new disk, follow this procedure:
A. invol asks which option to perform. Type 12 to configure a disk
quota table.
B. Specify the disk on which the disk quota table is to be
configured. (See option 1 step B.)
C. Invol displays a list of the Logical Volumes currently on the
disk. Specify the logical volume to be operated on.
If that logical volume is already configured with a quota list,
that fact (along with its size) is printed and you will be
asked if you wish to change the size of the table. If you
answer "yes", the existing quota table (along with whatever
entries it contains) will be lost.
D. Enter the size of the quota table that is desired (the maximum
number of users that will/can be entered into the table).
If invol is unable to locate sufficient contiguous free disk
blocks with which to construct the quota table, the operation
fails with the following message:
Unable to allocate a contiguous quota table on this
volume.
You can either:
+ re-configure with a smaller quota table
+ free additional disk space and try again
+ use a freshly invol'ed volume - which is guaranteed to
succeed
G. A initially empty quota table is configured on the volume.
FULL DESCRIPTION OF FLAGS
-u Use defaults. You are prompted for as little information as
possible. A physical volume is automatically chosen as follows
(for option 1):
pv_wxy_year.month.day w: disk type (or f)
x: controller #
y: unit #
year.month.day: today's date
A single logical volume spanning the entire physical volume (for
options 1 and 2) is constructed and chosen as follows:
lv_year.month.day
-n A non-bootable volume is constructed. By default, invol places the
following objects on each logical volume that it constructs:
lost+found.list lost+found file for Salvol's later
use space is reserved for sysboot
* sysboot (although the cpboot command must
be issued to actually install it
there)
// local network root
/ entry directory for volume
* /sys
* /sys/node_data
* /sys/node_data/system_logs
If the -n flag is specified, the objects marked * are not placed on
the disk. Although the disk can be mounted, it can not be used as
a boot volume (unless it is re-invol'd).
-f Do not physically reformat the disk. By default, invol performs
the very time-consuming task of re-formatting every track on the
disk. This flag bypasses that operation and causes invol to execute
very quickly, especially so if it is coupled with Verification
option 1. Normally, it is only necessary to reformat disks as they
arrive from the factory or after you have reason to suspect that
the physical formatting is damaged or otherwise corrupted.
-b BSD style initial acls (for inheritance) are placed onto /sys and
/sys/node_data when they are constructed:
owner/org: ids from creating process
group: id taken from parent directory
(set to wheel for /sys and
/sys/node_data)
<all> rights: specified (usually from umask)
at create time
-5 SysV style initial acls (for inheritance) are placed onto /sys and
/sys/node_data when they are constructed:
owner/group/org: ids from creating process
rights specified (usually
from umask) at create time
world rights: " " "
By default, Aegis inclusive initial acls are applied.
owner/group/org: ids from creating process
rights set to [ignore]
world rights: pwrx (wide-open)
-o Use only with option 1. A pre-SR10 format disk is configured which
can be mounted under a pre-SR10 version of the operating system.
By default, a SR10 format disk is created which cannot be mounted
by a pre-SR10 node. The presence or absence of this flag controls
whether subsequent logical volumes on this volume will have SR10
format (the new file system, acls and directories) or the pre-SR10
one.
-e Use with option 6 to display cylinder/head/sector numbers in
decimal instead of hexadecimal format.
-m Use after option 1 to group multiple physical disks together into a
multi-disk set which thereafter will appear to Domain/OS as a
single, larger disk.
If you answer the invol prompt with 1 -m to indicate that a multi-
disk group is to be configured, you will get the following prompts:
A. Select disk: [w=Winch|f=Floppy|q=Quit][ctrl#:][unit#]
invol prompts for the identity of the first of the disks.
Assume that the user responds with w0:1. Subsequently,
this drive becomes the primary disk of the set: it is
the one which must be specified in order to mount or
otherwise use the set.
B. How many disks will you be grouping together?
invol prompts for the number of disks to be collected
into the set. The legal responses are 1, 2, 4, or 8.
C. Enter the striping option.
invol prompts for the algorithm to be used in spreading
disk blocks across the multiple drives in the set:
1. Sector striping (subsequent sectors to different drives)
This is usually the choice for DN10000 workstations.
Subsequent disk blocks are sent to alternate disk
drives (e.g., disk block N is sent to a different
drive from N-1 and N+1); this is the "classical"
definition of disk striping.
If there are more disks than controllers, the disks
are automatically allocated among controllers. For
example, if there are 8 disks and 4 controllers, two
disks will be allocated to each controller.
Sector-striped drives must be of equal size.
drives)
2. Cylinder striping (subsequent cylinders to different
This is the usually the choice for 68000-based
workstations. The cylinders from the various disks
are "stacked" on top of one another so that it
appears that each cylinder has N (2 or 4) times as
many platters. Subsequent disk blocks will reside on
the same drive unless a cylinder boundary is
crossed, in which case we drop to the next disk in
the set or wrap to the next cylinder of the first
(primary) disk drive.
Cylinder-striped drives must be of equal size.
3. Volume striping (subsequent volumes to different drives)
Winchester drives on SCSI disk controllers must be
volume-striped. This is similar to cylinder
striping, except that striped disks on SCSI
controllers do not have to be of equal size.
D. Physical volume name: invol prompts for the name of the
physical volume. As discussed in the description of
option 1 earlier, this name is optional.
E. invol prompts for the identity of the remaining disks the
set. Obviously, no two drives in the set can have
identical controller and unit numbers.
....etc... as logical volumes are constructed and
initialized
The -m flag for option 1 is allowable only if:
A. invol is running under an SR10 operating system.
B. An SR10 format disk is being configured.
C. A Winchester drive is selected. Only Winchester drives may be
configured as a multi-disk set in this fashion.
volume
Note: Be aware that what is constructed is a single physical
spanning multiple disk drives. Any logical volumes
later built span all disk drives of the set. There
is no way to cause a single file or logical volume
to be limited to a single drive of the set.
Contained within the pv label of the primary drive
(as well as the others) is information identifying
the other drives of the set as well as consistency
data to detect the re-invol or replacement of any
of the drives.
Relation of invol options to multi-disk sets:
The following invol options, when given the specifier of the primary
drive of a set, will operate upon the entire set:
2 add a logical volume to an existing physical volume.
3 re-initialize an existing logical volume.
4 delete a logical volume.
5 list logical volumes.
6 list badspots: unless [ s] is specified - <see below>.
8 create Domain/OS paging file.
9 add to badspot list: unless [ s] is specified - <see below>.
10 changing interleave factor for a logical volume.
11 delete from badspot list: unless [ s] is specified - <see below>.
Several invol options will only operate upon a single disk drive - regardless of
whether it is a member of a multi-disk group:
1 as detailed above, the specified drive is re-initialized regardless of
its current status as a member of some multi-disk set ... optionally,
a new multi-disk set can be established.
7 a physical badspot list on the specified drive is constructed
(this option needs to be run when the drive arrives
from the factory, and not again).
Several invol options allow the user to specify that only a single drive
is to be assigned/processed, even if that drive is a member of a multi-disk set:
6 list badspots : only the physical (or manufacturer's) badspot list can
be shown in this case.
9 add to badspot list : badspots may be entered as either physical disk
addresses or as cylinder-head-sector triplets - both relative to that
single drive as if it was not a member of a multi-disk set.
11 delete from badspot list : see the above discussion for 9.
For these cases, the "assign" prompt given to the user specifies that the
user is allowed to follow the disk specifier with a " s" (<space> , "s")
to indicate that even though the disk is a member of a multi-disk set,
only the specified (single) disk is to be accessed. For example:
Select disk: [w=Winch|f=Floppy|q=Quit]
[ctrl#:] [unit#] w0:1 s