mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-15 10:17:20 +00:00
977 lines
23 KiB
Groff
977 lines
23 KiB
Groff
.\" Copyright (c) 1987, 1988, 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to Berkeley by
|
|
.\" Symmetric Computer Systems.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgment:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd March 15, 2003
|
|
.Dt DISKLABEL 8
|
|
.Os
|
|
.Sh NAME
|
|
.Nm disklabel
|
|
.Nd read and write disk pack label
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl r
|
|
.Ar disk
|
|
.Nm
|
|
.Fl w
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk type
|
|
.Op Ar packid
|
|
.Nm
|
|
.Fl e
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk
|
|
.Nm
|
|
.Fl R
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk protofile
|
|
.Pp
|
|
.Nm
|
|
.Fl B
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk
|
|
.Nm
|
|
.Fl w B
|
|
.Op Fl n
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk type
|
|
.Op Ar packid
|
|
.Nm
|
|
.Fl R B
|
|
.Op Fl n
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk protofile
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
utility
|
|
installs, examines or modifies the label on a disk drive or pack.
|
|
When writing
|
|
the label, it can be used to change the drive identification, the disk
|
|
partitions on the drive, or to replace a damaged label.
|
|
There are several forms
|
|
of the command that read (display), install, or edit the label on a disk.
|
|
In addition,
|
|
.Nm
|
|
can install bootstrap code.
|
|
.Ss Raw or In-Core Label
|
|
The disk label resides close to or at the beginning of each disk slice.
|
|
For faster access, the kernel maintains a copy in core at all times.
|
|
By default, most
|
|
.Nm
|
|
access the in-core copy of the label.
|
|
To access the raw (on-disk) copy, use the
|
|
.Fl r
|
|
option.
|
|
This option allows a label to be installed on a disk without kernel
|
|
support for a label, such as when labels are first installed on a system; it
|
|
must be used when first installing a label on a disk.
|
|
The specific effect of
|
|
.Fl r
|
|
is described under each command.
|
|
.Ss Disk Device Name
|
|
All
|
|
.Nm
|
|
forms require a disk device name, which should always be the raw
|
|
device name representing the disk or slice.
|
|
For example,
|
|
.Pa da0
|
|
represents the entire disk regardless of any
|
|
.Tn DOS
|
|
partitioning,
|
|
and
|
|
.Pa da0s1
|
|
represents a slice.
|
|
Some devices, most notably
|
|
.Xr ccd 4 ,
|
|
require that the
|
|
.Dq whole-disk
|
|
(or
|
|
.Ql c )
|
|
partition be specified.
|
|
For example,
|
|
.Pa ccd0c .
|
|
When specifying the device,
|
|
the
|
|
.Pa /dev/
|
|
path prefix may be omitted;
|
|
the
|
|
.Nm
|
|
utility will automatically prepend it.
|
|
.Ss Reading the Disk Label
|
|
To examine the label on a disk drive, use
|
|
.Nm
|
|
without options:
|
|
.Pp
|
|
.Nm
|
|
.Op Fl r
|
|
.Ar disk
|
|
.Pp
|
|
.Ar disk
|
|
represents the raw disk in question, and may be in the form
|
|
.Pa da0
|
|
or
|
|
.Pa /dev/da0c .
|
|
It will display all of the parameters associated with the drive and its
|
|
partition layout.
|
|
Unless the
|
|
.Fl r
|
|
option is given,
|
|
the kernel's in-core copy of the label is displayed;
|
|
if the disk has no label, or the partition types on the disk are incorrect,
|
|
the kernel may have constructed or modified the label.
|
|
If the
|
|
.Fl r
|
|
option is given,
|
|
.Nm
|
|
reads the label from the raw disk and displays it.
|
|
Both versions are usually
|
|
identical except in the case where a label has not yet been initialized or
|
|
is corrupt.
|
|
.Ss Writing a Standard Label
|
|
To write a standard label, use the form
|
|
.Pp
|
|
.Nm
|
|
.Fl w
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk type
|
|
.Op Ar packid
|
|
.Pp
|
|
The required arguments to
|
|
.Nm
|
|
are the drive to be labeled, and the drive type as described in the
|
|
.Xr disktab 5
|
|
file.
|
|
The drive parameters and partitions are taken from that file.
|
|
If different disks of the same physical type are to have different partitions,
|
|
it will be necessary to have separate
|
|
.Xr disktab 5
|
|
entries describing each, or to edit
|
|
the label after installation as described below.
|
|
The optional argument is a
|
|
pack identification string, up to 16 characters long.
|
|
The
|
|
.Ar packid
|
|
must be quoted if it contains blanks.
|
|
.Pp
|
|
If the
|
|
.Fl m
|
|
option is given, then label will be written so that
|
|
it is understood by the target
|
|
.Ar machine ;
|
|
defaults to the current hardware architecture.
|
|
.Pp
|
|
If
|
|
.Fl n
|
|
is used, no data will be written to the device, and instead the
|
|
disk label that would have been written will be printed to standard output.
|
|
.Pp
|
|
If the
|
|
.Fl r
|
|
option is given, the disk sectors containing the label and bootstrap
|
|
will be written directly.
|
|
A side-effect of this is that any existing bootstrap code will be overwritten
|
|
and the disk rendered unbootable.
|
|
See the boot options below for a method of
|
|
writing the and the bootstrap at the same time.
|
|
If
|
|
.Fl r
|
|
is not specified,
|
|
the existing label will be updated via the in-core copy, and any bootstrap
|
|
code will be unaffected.
|
|
If the disk does not already have a label, the
|
|
.Fl r
|
|
option must be used.
|
|
In either case, the kernel's in-core label is replaced.
|
|
.Pp
|
|
For a virgin disk that is not known to
|
|
.Xr disktab 5 ,
|
|
.Ar type
|
|
can be specified as
|
|
.Cm auto .
|
|
In this case, the driver is requested to produce a virgin label for the
|
|
disk.
|
|
This might or might not be successful, depending on whether the
|
|
driver for the disk is able to get the required data without reading
|
|
anything from the disk at all.
|
|
It will likely succeed for all
|
|
.Tn SCSI
|
|
disks, most
|
|
.Tn IDE
|
|
disks, and
|
|
.Cm vnode
|
|
type memory disks
|
|
.Pq Xr md 4 .
|
|
Writing a label to the
|
|
disk is the only supported operation, and the
|
|
.Ar disk
|
|
itself must be provided as the canonical name, i.e., not as a full
|
|
path name.
|
|
.Pp
|
|
For most harddisks, a label based on percentages for most partitions (and
|
|
one partition with a size of
|
|
.Ql * )
|
|
will produce a reasonable configuration.
|
|
.Pp
|
|
PC-based systems have special requirements in order for the
|
|
.Tn BIOS
|
|
to properly recognize a
|
|
.Fx
|
|
disk label.
|
|
Older systems may require what is known as a
|
|
.Dq dangerously-dedicated
|
|
disk label, which creates a fake
|
|
.Tn DOS
|
|
partition to work around problems older
|
|
.Tn BIOS Ns es
|
|
have with modern disk geometries.
|
|
On newer systems, a normal
|
|
.Tn DOS
|
|
partition should generally be created using
|
|
.Xr fdisk 8 ,
|
|
and then a
|
|
.Fx
|
|
disk label within that slice.
|
|
This is described later on in this page.
|
|
.Pp
|
|
Installing a new disk label does not in of itself allow the system to boot
|
|
a kernel using that label.
|
|
Boot blocks must also be installed, which is
|
|
described later on in this manual page.
|
|
.Ss Editing an Existing Disk Label
|
|
To edit an existing disk label, use the form
|
|
.Pp
|
|
.Nm
|
|
.Fl e
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk
|
|
.Pp
|
|
This command reads the label from the in-core kernel copy, or directly from the
|
|
disk if the
|
|
.Fl r
|
|
option is also specified.
|
|
The label is written to a file in
|
|
.Tn ASCII
|
|
format, and then supplied to an editor for changes.
|
|
If no editor is specified in the
|
|
.Ev EDITOR
|
|
environment variable,
|
|
.Xr vi 1
|
|
is used.
|
|
When the editor terminates, the label file is used to rewrite the disk label.
|
|
Existing bootstrap code is unchanged regardless of whether
|
|
.Fl r
|
|
was specified.
|
|
.Pp
|
|
If the
|
|
.Fl m
|
|
option is given, then the label will be written so that
|
|
it is understood by the target
|
|
.Ar machine ;
|
|
defaults to the current hardware architecture.
|
|
.Pp
|
|
If
|
|
.Fl n
|
|
is used, no data will be written to the device, and instead the
|
|
disk label that would have been written will be printed to standard output.
|
|
This is
|
|
useful to see how a partitioning scheme will work out for a specific disk.
|
|
.Ss Restoring a Disk Label From a File
|
|
To restore a disk label from a file, use the form
|
|
.Pp
|
|
.Nm
|
|
.Fl R
|
|
.Op Fl nr
|
|
.Op Fl m Ar machine
|
|
.Ar disk protofile
|
|
.Pp
|
|
.Nm
|
|
is capable of restoring a disk label that was previously saved in a file in
|
|
.Tn ASCII
|
|
format.
|
|
The prototype file used to create the label should be in the same format as that
|
|
produced when reading or editing a label.
|
|
Comments are delimited by
|
|
.Ql #
|
|
and newline.
|
|
As when writing a new label, any existing bootstrap code will be
|
|
clobbered if
|
|
.Fl r
|
|
is specified, and will be unaffected otherwise.
|
|
See the boot options below for a
|
|
method of restoring the label and writing the bootstrap at the same time.
|
|
.Pp
|
|
If the
|
|
.Fl m
|
|
option is given, then the label will be written so that
|
|
it is understood by the target
|
|
.Ar machine ;
|
|
defaults to the current hardware architecture.
|
|
.Pp
|
|
If
|
|
.Fl n
|
|
is used, no data will be written to the device, and instead the
|
|
disk label that would have been written will be printed to standard output.
|
|
This is
|
|
useful to see how a partitioning scheme will work out for a specific disk.
|
|
.Ss Installing Bootstraps
|
|
The final three forms of
|
|
.Nm
|
|
are used to install bootstrap code.
|
|
If a
|
|
.Dq dangerously-dedicated
|
|
disk is created for compatibility with older PC systems,
|
|
the raw disk name such as
|
|
.Pa da0
|
|
should be specified.
|
|
If an existing slice should be labeled,
|
|
the slice name such as
|
|
.Pa da0s1
|
|
should be specified,
|
|
and to make it bootable,
|
|
.Tn MBR
|
|
on the base disk should probably be updated; see
|
|
.Xr fdisk 8 .
|
|
.Pp
|
|
.Nm
|
|
.Fl B
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk
|
|
.Pp
|
|
This form installs the bootstrap only.
|
|
It does not change the disk label.
|
|
Never use this command on a base disk, such as
|
|
.Pa da0 ,
|
|
unless the intent is to create a
|
|
.Dq dangerously-dedicated
|
|
disk.
|
|
This command is typically run on a slice such as
|
|
.Pa da0s1 .
|
|
.Pp
|
|
The
|
|
.Fl m
|
|
option should be specified if the label was
|
|
created for a different hardware architecture,
|
|
.Ar machine .
|
|
.Pp
|
|
.Nm
|
|
.Fl w B
|
|
.Op Fl n
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk type
|
|
.Op Ar packid
|
|
.Pp
|
|
This form corresponds to the
|
|
.Dq "write label"
|
|
command described above.
|
|
In addition to writing a new volume label, it also installs the bootstrap.
|
|
If run on a base disk, this command will create a
|
|
.Dq dangerously-dedicated
|
|
label.
|
|
This command is normally run on a slice rather than a base disk.
|
|
.Pp
|
|
If the
|
|
.Fl m
|
|
option is given, then the label and bootstrap will be written so that
|
|
they are understood by the target
|
|
.Ar machine ;
|
|
defaults to the current hardware architecture.
|
|
.Pp
|
|
If
|
|
.Fl n
|
|
is used, no data will be written to the device, and instead the
|
|
disk label that would have been written will be printed to standard output.
|
|
.Pp
|
|
.Nm
|
|
.Fl R B
|
|
.Op Fl n
|
|
.Op Fl b Ar boot
|
|
.Op Fl m Ar machine
|
|
.Ar disk protofile
|
|
.Pp
|
|
This form corresponds to the
|
|
.Dq "restore label"
|
|
command described above.
|
|
In addition to restoring the volume label, it also installs the bootstrap.
|
|
If run on a base disk, this command will create a
|
|
.Dq dangerously-dedicated
|
|
label.
|
|
This command is normally run on a slice rather than a base disk.
|
|
.Pp
|
|
The bootstrap commands always access the disk directly, so it is not necessary
|
|
to specify the
|
|
.Fl r
|
|
option.
|
|
.Pp
|
|
If the
|
|
.Fl m
|
|
option is given, then the label and bootstrap will be written so that
|
|
they are understood by the target
|
|
.Ar machine ;
|
|
defaults to the current hardware architecture.
|
|
.Pp
|
|
If
|
|
.Fl n
|
|
is used, no data will be written to the device, and instead the
|
|
disk label that would have been written will be printed to standard output.
|
|
.Pp
|
|
The bootstrap code is comprised of two boot programs compiled into a single
|
|
.Pa /boot/boot
|
|
image.
|
|
An alternative boot image may be specified with the
|
|
.Fl b
|
|
option.
|
|
.Ss Initializing/Formatting a Bootable Disk From Scratch
|
|
To initialize a disk from scratch, the following sequence is recommended.
|
|
Please note that this will wipe everything that was previously on the disk,
|
|
including any
|
|
.No non- Ns Fx
|
|
slices.
|
|
.Bl -enum
|
|
.It
|
|
Use
|
|
.Xr fdisk 8
|
|
to initialize the hard disk, and create a slice table, referred to
|
|
as the
|
|
.Dq "partition table"
|
|
in
|
|
.Tn DOS .
|
|
.It
|
|
Use
|
|
.Nm
|
|
to define partitions on
|
|
.Fx
|
|
slices created in the previous step.
|
|
.It
|
|
Finally use
|
|
.Xr newfs 8
|
|
to create file systems on new partitions.
|
|
.El
|
|
.Pp
|
|
A typical partitioning scheme would be to have an
|
|
.Ql a
|
|
partition
|
|
of approximately 128MB to hold the root file system, a
|
|
.Ql b
|
|
partition for
|
|
swap, a
|
|
.Ql d
|
|
partition for
|
|
.Pa /var
|
|
(usually 128MB), an
|
|
.Ql e
|
|
partition
|
|
for
|
|
.Pa /var/tmp
|
|
(usually 128MB), an
|
|
.Ql f
|
|
partition for
|
|
.Pa /usr
|
|
(usually around 2GB),
|
|
and finally a
|
|
.Ql g
|
|
partition for
|
|
.Pa /home
|
|
(usually all remaining space).
|
|
Your mileage may vary.
|
|
.Pp
|
|
.Nm fdisk Fl BI Pa da0
|
|
.Pp
|
|
.Nm
|
|
.Fl w B
|
|
.Pa da0s1
|
|
.Cm auto
|
|
.Pp
|
|
.Nm
|
|
.Fl e
|
|
.Pa da0s1
|
|
.Sh FILES
|
|
.Bl -tag -width ".Pa /etc/disktab" -compact
|
|
.It Pa /boot/boot
|
|
Default boot image.
|
|
.It Pa /etc/disktab
|
|
Disk description file.
|
|
.El
|
|
.Sh SAVED FILE FORMAT
|
|
The
|
|
.Nm
|
|
utility
|
|
uses an
|
|
.Tn ASCII
|
|
version of the label when examining, editing, or restoring a disk
|
|
label.
|
|
The format is:
|
|
.Bd -literal -offset 4n
|
|
# /dev/da1c:
|
|
type: SCSI
|
|
disk: da0s1
|
|
label:
|
|
flags:
|
|
bytes/sector: 512
|
|
sectors/track: 51
|
|
tracks/cylinder: 19
|
|
sectors/cylinder: 969
|
|
cylinders: 1211
|
|
sectors/unit: 1173930
|
|
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 bps/cpg]
|
|
a: 81920 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 84*)
|
|
b: 160000 81920 swap # (Cyl. 84* - 218*)
|
|
c: 1173930 0 unused 0 0 # (Cyl. 0 - 1211*)
|
|
h: 962010 211920 vinum # (Cyl. 218*- 1211*)
|
|
.Ed
|
|
.Pp
|
|
Lines starting with a
|
|
.Ql #
|
|
mark are comments.
|
|
Most of the other specifications are no longer used.
|
|
The ones which must still be set correctly are:
|
|
.Pp
|
|
.Bl -inset
|
|
.It Ar label
|
|
is an optional label, set by the
|
|
.Ar packid
|
|
option when writing a label.
|
|
.It Ar flags
|
|
may be
|
|
.Cm removable , ecc
|
|
or
|
|
.Cm badsect .
|
|
.Cm removable
|
|
is set for removable media drives, but no current
|
|
.Fx
|
|
driver evaluates this
|
|
flag.
|
|
.Cm ecc
|
|
is no longer supported;
|
|
.Cm badsect
|
|
specifies that the drive can perform bad sector remapping.
|
|
.It Ar sectors/unit
|
|
describes the total size of the disk.
|
|
This value must be correct.
|
|
.It Ar "the partition table"
|
|
is the
|
|
.Ux
|
|
partition table, not the
|
|
.Tn DOS
|
|
partition table described in
|
|
.Xr fdisk 8 .
|
|
.El
|
|
.Pp
|
|
The partition table can have up to 8 entries.
|
|
It contains the following information:
|
|
.Bl -tag -width indent
|
|
.It Ar #
|
|
The partition identifier is a single letter in the range
|
|
.Ql a
|
|
to
|
|
.Ql h .
|
|
By convention, partition
|
|
.Ql c
|
|
is reserved to describe the entire disk.
|
|
.It Ar size
|
|
The size of the partition in sectors,
|
|
.Cm K
|
|
(kilobytes - 1024),
|
|
.Cm M
|
|
(megabytes - 1024*1024),
|
|
.Cm G
|
|
(gigabytes - 1024*1024*1024),
|
|
.Cm %
|
|
(percentage of free space
|
|
.Em after
|
|
removing any fixed-size partitions other than partition
|
|
.Ql c ) ,
|
|
or
|
|
.Cm *
|
|
(all remaining free space
|
|
.Em after
|
|
fixed-size and percentage partitions).
|
|
For partition
|
|
.Ql c ,
|
|
a size of
|
|
.Cm *
|
|
indicates the entire disk.
|
|
Lowercase versions of
|
|
.Cm K , M ,
|
|
and
|
|
.Cm G
|
|
are allowed.
|
|
Size and type should be specifed without any spaces between them.
|
|
.Pp
|
|
Example: 2097152, 1G, 1024M and 1048576K are all the same size
|
|
(assuming 512-byte sectors).
|
|
.It Ar offset
|
|
The offset of the start of the partition from the beginning of the
|
|
drive in sectors, or
|
|
.Cm *
|
|
to have
|
|
.Nm
|
|
calculate the correct offset to use (the end of the previous partition plus
|
|
one, ignoring partition
|
|
.Ql c .
|
|
For partition
|
|
.Ql c ,
|
|
.Cm *
|
|
will be interpreted as an offset of 0.
|
|
.It Ar fstype
|
|
Describes the purpose of the partition.
|
|
The example shows all currently used partition types.
|
|
For
|
|
.Tn UFS
|
|
file systems and
|
|
.Xr ccd 4
|
|
partitions, use type
|
|
.Cm 4.2BSD .
|
|
For Vinum drives, use type
|
|
.Cm vinum .
|
|
Other common types are
|
|
.Cm swap
|
|
and
|
|
.Cm unused .
|
|
By convention, partition
|
|
.Ql c
|
|
represents the entire slice and should be of type
|
|
.Cm unused ,
|
|
though
|
|
.Nm
|
|
does not enforce this convention.
|
|
The
|
|
.Nm
|
|
utility
|
|
also knows about a number of other partition types,
|
|
none of which are in current use.
|
|
(See the definitions starting with
|
|
.Dv FS_UNUSED
|
|
in
|
|
.Aq Pa sys/disklabel.h
|
|
for more details.)
|
|
.It Ar fsize
|
|
For
|
|
.Cm 4.2BSD
|
|
and
|
|
.Tn LFS
|
|
file systems only, the fragment size.
|
|
Defaults to 1024 for partitions smaller than 1GB,
|
|
4096 for partitions 1GB or larger.
|
|
.It Ar bsize
|
|
For
|
|
.Cm 4.2BSD
|
|
and
|
|
.Tn LFS
|
|
file systems only, the block size.
|
|
Defaults to 8192 for partitions smaller than 1GB,
|
|
16384 for partitions 1GB or larger.
|
|
.It Ar bps/cpg
|
|
For
|
|
.Cm 4.2BSD
|
|
file systems, the number of cylinders in a cylinder group.
|
|
For
|
|
.Tn LFS
|
|
file systems, the segment shift value.
|
|
Defaults to 16 for partitions smaller than 1GB,
|
|
64 for partitions 1GB or larger.
|
|
.El
|
|
.Pp
|
|
The remainder of the line is a comment and shows the cylinder allocations based
|
|
on the obsolete (but possibly correct) geometry information about the drive.
|
|
The asterisk
|
|
.Pq Ql *
|
|
indicates that the partition does not begin or end exactly on a
|
|
cylinder boundary.
|
|
.Sh EXAMPLES
|
|
.Dl "disklabel da0s1"
|
|
.Pp
|
|
Display the in-core label for the first slice of the
|
|
.Pa da0
|
|
disk, as obtained via
|
|
.Pa /dev/da0s1 .
|
|
(If the disk is
|
|
.Dq dangerously-dedicated ,
|
|
the base disk name should be specified, such as
|
|
.Pa da0 . )
|
|
.Pp
|
|
.Dl "disklabel da0s1 > savedlabel"
|
|
.Pp
|
|
Save the in-core label for
|
|
.Pa da0s1
|
|
into the file
|
|
.Pa savedlabel .
|
|
This file can be used with the
|
|
.Fl R
|
|
option to restore the label at a later date.
|
|
.Pp
|
|
.Dl "disklabel -w -r /dev/da0s1 da2212 foo"
|
|
.Pp
|
|
Create a label for
|
|
.Pa da0s1
|
|
based on information for
|
|
.Dq da2212
|
|
found in
|
|
.Pa /etc/disktab .
|
|
Any existing bootstrap code will be clobbered
|
|
and the disk rendered unbootable.
|
|
.Pp
|
|
.Dl "disklabel -e -r da0s1"
|
|
.Pp
|
|
Read the on-disk label for
|
|
.Pa da0s1 ,
|
|
edit it, and reinstall in-core as well as on-disk.
|
|
Existing bootstrap code is unaffected.
|
|
.Pp
|
|
.Dl "disklabel -e -r -n da0s1"
|
|
.Pp
|
|
Read the on-disk label for
|
|
.Pa da0s1 ,
|
|
edit it, and display what the new label would be (in sectors).
|
|
It does
|
|
.Em not
|
|
install the new label either in-core or on-disk.
|
|
.Pp
|
|
.Dl "disklabel -r -w da0s1 auto"
|
|
.Pp
|
|
Try to auto-detect the required information from
|
|
.Pa da0s1 ,
|
|
and write a new label to the disk.
|
|
Use another
|
|
.Nm Fl e
|
|
command to edit the
|
|
partitioning and file system information.
|
|
.Pp
|
|
.Dl "disklabel -R da0s1 savedlabel"
|
|
.Pp
|
|
Restore the on-disk and in-core label for
|
|
.Pa da0s1
|
|
from information in
|
|
.Pa savedlabel .
|
|
Existing bootstrap code is unaffected.
|
|
.Pp
|
|
.Dl "disklabel -R -n da0s1 label_layout"
|
|
.Pp
|
|
Display what the label would be for
|
|
.Pa da0s1
|
|
using the partition layout in
|
|
.Pa label_layout .
|
|
This is useful for determining how much space would be alloted for various
|
|
partitions with a labelling scheme using
|
|
.Cm % Ns -based
|
|
or
|
|
.Cm *
|
|
partition sizes.
|
|
.Pp
|
|
.Dl "disklabel -B da0s1"
|
|
.Pp
|
|
Install a new bootstrap on
|
|
.Pa da0s1 .
|
|
The boot code comes from
|
|
.Pa /boot/boot .
|
|
On-disk and in-core labels are unchanged.
|
|
.Pp
|
|
.Dl "disklabel -w -B /dev/da0s1 -b newboot da2212"
|
|
.Pp
|
|
Install a new label and bootstrap.
|
|
The label is derived from
|
|
.Xr disktab 5
|
|
information for
|
|
.Dq da2212 ,
|
|
and installed both in-core and on-disk.
|
|
The bootstrap code comes from the file
|
|
.Pa newboot
|
|
in the current working directory.
|
|
.Bd -literal -offset indent
|
|
dd if=/dev/zero of=/dev/da0 bs=512 count=32
|
|
fdisk -BI da0
|
|
dd if=/dev/zero of=/dev/da0s1 bs=512 count=32
|
|
disklabel -w -B da0s1 auto
|
|
disklabel -e da0s1
|
|
.Ed
|
|
.Pp
|
|
Completely wipe any prior information on the disk, creating a new bootable
|
|
disk with a
|
|
.Tn DOS
|
|
partition table containing one slice, covering the whole disk.
|
|
Initialize the label on this slice,
|
|
then edit it.
|
|
The
|
|
.Xr dd 1
|
|
commands are optional, but may be necessary for some
|
|
.Tn BIOS Ns es
|
|
to properly
|
|
recognize the disk.
|
|
.Pp
|
|
This is an example disk label that uses some of the new partition size types
|
|
such as
|
|
.Cm % , M , G ,
|
|
and
|
|
.Cm * ,
|
|
which could be used as a source file for
|
|
.Dq Li "disklabel -R ad0s1c new_label_file" :
|
|
.Bd -literal -offset 4n
|
|
# /dev/ad0s1c:
|
|
type: ESDI
|
|
disk: ad0s1
|
|
label:
|
|
flags:
|
|
bytes/sector: 512
|
|
sectors/track: 63
|
|
tracks/cylinder: 16
|
|
sectors/cylinder: 1008
|
|
cylinders: 40633
|
|
sectors/unit: 40959009
|
|
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 bps/cpg]
|
|
a: 400M 0 4.2BSD 4096 16384 75 # (Cyl. 0 - 812*)
|
|
b: 1G * swap
|
|
c: * * unused
|
|
e: 204800 * 4.2BSD
|
|
f: 5g * 4.2BSD
|
|
g: * * 4.2BSD
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr ccd 4 ,
|
|
.Xr md 4 ,
|
|
.Xr disklabel 5 ,
|
|
.Xr disktab 5 ,
|
|
.Xr boot0cfg 8 ,
|
|
.Xr fdisk 8 ,
|
|
.Xr vinum 8
|
|
.Sh DIAGNOSTICS
|
|
The kernel device drivers will not allow the size of a disk partition
|
|
to be decreased or the offset of a partition to be changed while it is open.
|
|
Some device drivers create a label containing only a single large partition
|
|
if a disk is unlabeled; thus, the label must be written to the
|
|
.Ql a
|
|
partition of the disk while it is open.
|
|
This sometimes requires the desired label to be set in two steps,
|
|
the first one creating at least one other partition,
|
|
and the second one setting the label on the new partition
|
|
while shrinking the
|
|
.Ql a
|
|
partition.
|
|
.Pp
|
|
On some machines, the bootstrap code may not fit entirely in the area
|
|
allocated for it by some file systems.
|
|
As a result,
|
|
it may not be possible to have file systems on some partitions of a
|
|
.Dq bootable
|
|
disk.
|
|
When installing bootstrap code,
|
|
.Nm
|
|
checks for these cases.
|
|
If the installed boot code would overlap a partition of type
|
|
.Dv FS_UNUSED ,
|
|
it is marked as type
|
|
.Dv FS_BOOT .
|
|
The
|
|
.Xr newfs 8
|
|
utility will disallow creation of file systems on
|
|
.Dv FS_BOOT
|
|
partitions.
|
|
Conversely, if a partition has a type other than
|
|
.Dv FS_UNUSED
|
|
or
|
|
.Dv FS_BOOT ,
|
|
.Nm
|
|
will not install bootstrap code that overlaps it.
|
|
.Sh BUGS
|
|
When a disk name is given without a full pathname,
|
|
the constructed device name uses the
|
|
.Ql c
|
|
partition.
|
|
.Pp
|
|
For the i386 architecture, the primary bootstrap sector contains
|
|
an embedded
|
|
.Em fdisk
|
|
table.
|
|
The
|
|
.Nm
|
|
utility takes care to not clobber it when installing a bootstrap only
|
|
.Pq Fl B ,
|
|
or when editing an existing label
|
|
.Pq Fl e ,
|
|
but it unconditionally writes the primary bootstrap program onto
|
|
the disk for
|
|
.Fl w
|
|
or
|
|
.Fl R ,
|
|
thus replacing the
|
|
.Em fdisk
|
|
table by the dummy one in the bootstrap program.
|
|
This is only of
|
|
concern if the disk is fully dedicated, so that the
|
|
.Fx
|
|
disk label
|
|
starts at absolute block 0 on the disk.
|
|
.Pp
|
|
The
|
|
.Nm
|
|
utility
|
|
does not perform all possible error checking.
|
|
Warning is given if partitions overlap,
|
|
if an absolute offset does not match the expected offset,
|
|
if the
|
|
.Ql c
|
|
partition does not start at 0 or does not cover the entire slice,
|
|
if a partition runs past the end of the device,
|
|
and a number of other errors,
|
|
but no warning is given if space remains unused.
|