UP
EROS Web
Developer Documentation
Cross Development
Guide
|
|
mkvol Reference
Name
mkvol -- make new EROS volume
Synopsis
mkvol [-b bootstrap_image] [-k kernel_image] volmap volume
Description
The mkvol creates a new EROS volume and formats the
divisions on that volume. It optionally places a bootstrap
image and kernel image on that volume at format time. Either
can be altered with the setvol utility at a later
time.
Most of the input to mkvol comes from the volmap
file, which describes the layout of the volume to be created.
Entries in the volmap file appear one per line. All
characters on a line following a '#' character are treated as
comments.
Each line in the volmap file describes a division to be
added to the volume, or an attribute to be set in the volume
header. A single volume may contain up to 64 divisions.
- kernel size OID=oid
-
Add a kernel division to the volume, where size is
the length of the division in pages. oid is the
starting object identifier for the division,
which will be used for later update from within EROS.
At most one kernel division can be present per volume.
By convention, the kernel devision OID is 0xFFFF00000000,
and all OIDs in the range 0FFFF00000000 through
0xFFFFFFFFFFFF are reserved for future use by the implementation.
- spare size
-
Add a division containing spare sectors to be used for
sector remapping, where size is
the length of the division in sectors.
The size will be rounded up to a page size.
Spare divisions are not used by the current kernel,
because both (E)IDE and SCSI drive technologies provide
automatic sector remapping.
- object size OID=oid
-
Add a division that will contain objects, where
size is the length of the division in pages and
oid is the starting object identifier for this
division. The division will be initialized to contain as
many zero-filled Pages as the division will hold, and the
zero attribute is set for these pages in the associated
allocation pots. All on-disk pages will actually be
zeroed to improve compression.
If multiple object divisions are added, their oid
numbering need not be consecutive.
Object divisions can be replicated.
- cklog size LID=logloc
-
Add a division for use in checkpointing, where that will
contain objects, where size is the length of the
division in pages and logloc is the starting log
frame number for this division. All log frames will be
zeroed to improve compression.
If multiple log divisions are added, their collected log
locations must not contain numbering holes. Log
divisions can be replicated.
- divtable
-
Add a division containing a division table. The first
division table added will be listed in the volume header
as the primary division table. The second added (if any)
will be listed as the secondary division table.
All division tables are one page
- ramdisk
-
Mark the volume as a ramdisk volume.
- compressed
-
Mark the volume as a compressed volume. The volume must
previously have been marked as a ramdisk volume.
There is no provision for explicitly adding a boot
division. Because the volume header resides in the boot
division, the presence of a boot division is not optional.
There is no provision for specifying the name of the bootstrap
image file within the volmap file, because the approprite
binary for the bootstrap image is media-dependent.
A random, hopefully unique, iplSysId is written. There is no provision
for specifying the iplSysId. If you want to format a disk to add
to an existing system, use
lsvol on the existing boot volume
to determine the desired iplSysId,
use mkvol to format the new disk, and then use
setvol to set the iplSysId
of the new disk.
Copyright 1998 by Jonathan Shapiro. All rights reserved. For terms of
redistribution, see the
GNU General Public License
|
|