freebsd-dev/sbin/fdisk_pc98/fdisk.8

487 lines
11 KiB
Groff
Raw Normal View History

2000-03-18 16:48:41 +00:00
.\" $FreeBSD$
.\"
.Dd October 5, 2016
2000-03-18 16:48:41 +00:00
.Dt FDISK 8
.Os
2000-03-18 16:48:41 +00:00
.Sh NAME
.Nm fdisk
.Nd NEC PC-98x1 slice table maintenance utility
2000-03-18 16:48:41 +00:00
.Sh SYNOPSIS
.Nm
.Op Fl BIaistuv
.Op Fl 12345678
2000-03-18 16:48:41 +00:00
.Op Ar disk
.Nm
2000-03-18 16:48:41 +00:00
.Fl f Ar configfile
.Op Fl itv
.Op Ar disk
.Sh PROLOGUE
In order for the BIOS to boot the kernel,
certain conventions must be adhered to.
Sector 0 of the disk must contain boot code,
a slice table,
2000-03-18 16:48:41 +00:00
and a magic number.
BIOS slices can be used to break the disk up into several pieces.
The BIOS brings in sector 0 and verifies the magic number.
The sector
0 boot code then searches the slice table to determine which
slice is marked
2007-05-09 11:46:31 +00:00
.Dq active .
2000-03-18 16:48:41 +00:00
This boot code then brings in the bootstrap from the
active slice and, if marked bootable, runs it.
2007-05-09 11:46:31 +00:00
Under
.Tn DOS ,
you can have one or more slices with one active.
2007-05-09 11:46:31 +00:00
The
.Tn DOS
2000-03-18 16:48:41 +00:00
.Nm
utility can be used to divide space on the disk into slices and set one
2007-05-09 11:46:31 +00:00
active.
2000-03-18 16:48:41 +00:00
.Sh DESCRIPTION
The
2000-11-14 11:20:58 +00:00
.Fx
2007-05-09 11:46:31 +00:00
utility,
.Nm ,
serves a similar purpose to the
.Tn DOS
utility.
The first form is used to
display slice information or to interactively edit the slice
table.
The second is used to write a slice table using a
2007-05-09 11:46:31 +00:00
.Ar configfile ,
2000-03-18 16:48:41 +00:00
and is designed to be used by other scripts/programs.
.Pp
Options are:
2007-05-09 11:46:31 +00:00
.Bl -tag -width indent
2000-03-18 16:48:41 +00:00
.It Fl a
Change the active slice only.
Ignored if
2000-03-18 16:48:41 +00:00
.Fl f
is given.
.It Fl B
Reinitialize the boot code contained in sector 0 of the disk.
2007-05-09 11:46:31 +00:00
Ignored if
2000-03-18 16:48:41 +00:00
.Fl f
is given.
.It Fl f Ar configfile
Set slice values using the file
2000-03-18 16:48:41 +00:00
.Ar configfile .
The
.Ar configfile
always modifies existing slices, unless
2000-03-18 16:48:41 +00:00
.Fl i
is also given, in which case all existing slices are deleted (marked
2007-05-09 11:46:31 +00:00
as
.Dq unused )
before the
2000-03-18 16:48:41 +00:00
.Ar configfile
is read.
The
2000-03-18 16:48:41 +00:00
.Ar configfile
2007-05-09 11:46:31 +00:00
can be
.Sq Fl ,
in which case standard input is read.
See
2000-03-18 16:48:41 +00:00
.Sx CONFIGURATION FILE ,
below, for file syntax.
.Pp
.Em WARNING :
2000-03-18 16:48:41 +00:00
when
.Fl f
is used, you are not asked if you really want to write the slices
table (as you are in the interactive mode).
Use with caution!
.It Fl i
2006-09-18 11:55:10 +00:00
Initialize sector 0 of the disk.
This implies
.Fl u ,
unless
.Fl f
is given.
2007-05-09 11:46:31 +00:00
.It Fl I
Initialize sector 0 slice table
2007-05-09 11:46:31 +00:00
for one
.Fx
slice covering the entire disk.
Some space at the start of the disk will reserved for the IPL program
and the pc98 slice table itself.
2000-03-18 16:48:41 +00:00
.It Fl s
Print summary information and exit.
.It Fl t
Test mode; do not write slice values.
Generally used with the
2000-03-18 16:48:41 +00:00
.Fl f
option to see what would be written to the slice table.
Implies
2000-03-18 16:48:41 +00:00
.Fl v .
.It Fl u
Update (edit) the disk's sector 0 slice table.
Ignored if
2000-03-18 16:48:41 +00:00
.Fl f
is given.
.It Fl v
Be verbose.
Slices that are unused are suppressed unless this flag is specified.
When
2000-03-18 16:48:41 +00:00
.Fl f
is used,
.Nm
prints out the slice table that is written to the disk.
2000-03-18 16:48:41 +00:00
.It Fl 12345678
Operate on a single slice table entry only.
Ignored if
2000-03-18 16:48:41 +00:00
.Fl f
is given.
.El
.Pp
The final disk name can be provided as a
2007-05-09 11:46:31 +00:00
.Dq bare
disk name only, e.g.\&
2007-05-09 11:46:31 +00:00
.Pa da0 ,
or as a full pathname.
If omitted,
.Nm
tries to figure out the default disk device name from the
mounted root device.
2000-03-18 16:48:41 +00:00
.Pp
When called with no arguments, it prints the sector 0 slice table.
2000-03-18 16:48:41 +00:00
An example follows:
.Bd -literal
2007-05-09 11:46:31 +00:00
******* Working on device /dev/da0 *******
2000-03-18 16:48:41 +00:00
parameters extracted from in-core disklabel are:
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
2001-07-15 07:53:42 +00:00
2000-03-18 16:48:41 +00:00
parameters to be used for BIOS calculations are:
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
2001-07-15 07:53:42 +00:00
2000-03-18 16:48:41 +00:00
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysmid 148,(FreeBSD/NetBSD/386BSD)
start 256, size 2490112 (1215 Meg), sid 196
beg: cyl 1/ sector 0/ head 0;
end: cyl 9727/ sector 0/ head 0
system Name FreeBSD(98)
The data for partition 2 is:
sysmid 148,(FreeBSD/NetBSD/386BSD)
start 2490368, size 5505024 (2688 Meg), sid 196
beg: cyl 9728/ sector 0/ head 0;
end: cyl 31231/ sector 0/ head 0
system Name FreeBSD(98)
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
The data for partition 5 is:
<UNUSED>
The data for partition 6 is:
<UNUSED>
The data for partition 7 is:
<UNUSED>
The data for partition 8 is:
<UNUSED>
The data for partition 9 is:
<UNUSED>
The data for partition 10 is:
<UNUSED>
The data for partition 11 is:
<UNUSED>
The data for partition 12 is:
<UNUSED>
The data for partition 13 is:
<UNUSED>
The data for partition 14 is:
<UNUSED>
The data for partition 15 is:
<UNUSED>
The data for partition 16 is:
<UNUSED>
.Ed
.Pp
The disk is divided into three slices that happen to fill the disk.
The second slice overlaps the end of the first.
2007-05-09 11:46:31 +00:00
(Used for debugging purposes.)
.Bl -tag -width ".Em cyl , sector No and Em head"
.It Em sysmid
is used to label the slice.
2000-11-14 11:20:58 +00:00
.Fx
2000-03-18 16:48:41 +00:00
reserves the
magic number 148 decimal (94 in hex).
2007-05-09 11:46:31 +00:00
.It Xo
.Em start
and
.Em size
.Xc
2000-03-18 16:48:41 +00:00
fields provide the start address
and size of a slice in sectors.
2007-05-09 11:46:31 +00:00
.It Xo
.Em cyl , sector
and
.Em head
.Xc
fields are used to specify the beginning and end addresses of the slice.
2000-03-18 16:48:41 +00:00
.It Em "system Name"
is the name of the slice.
2007-05-09 11:46:31 +00:00
.El
.Pp
.Em Note :
2000-03-18 16:48:41 +00:00
these numbers are calculated using BIOS's understanding of the disk geometry
and saved in the bootblock.
.Pp
2007-05-09 11:46:31 +00:00
The
.Fl i
2007-05-09 11:46:31 +00:00
and
2000-03-18 16:48:41 +00:00
.Fl u
flags are used to indicate that the slice data is to be updated.
2007-05-09 11:46:31 +00:00
Unless the
2000-03-18 16:48:41 +00:00
.Fl f
2007-05-09 11:46:31 +00:00
option is also given,
2000-03-18 16:48:41 +00:00
.Nm
2007-05-09 11:46:31 +00:00
will enter a conversational mode.
In this mode, no changes will be written to disk unless you explicitly tell
2002-07-06 19:34:18 +00:00
.Nm
2007-05-09 11:46:31 +00:00
to.
2000-03-18 16:48:41 +00:00
.Pp
2007-05-09 11:46:31 +00:00
The
.Nm
utility will display each slice and ask whether you want to edit it.
2000-03-18 16:48:41 +00:00
If you say yes,
.Nm
2007-05-09 11:46:31 +00:00
will step through each field, show you the old value,
and ask you for a new one.
When you are done with the slice,
2002-07-06 19:34:18 +00:00
.Nm
2007-05-09 11:46:31 +00:00
will display it and ask you whether it is correct.
It will then proceed to the next entry.
2000-03-18 16:48:41 +00:00
.Pp
Getting the
.Em cyl , sector ,
2000-03-18 16:48:41 +00:00
and
.Em head
2007-05-09 11:46:31 +00:00
fields correct is tricky, so by default,
2000-03-18 16:48:41 +00:00
they will be calculated for you;
2007-05-09 11:46:31 +00:00
you can specify them if you choose to though.
2000-03-18 16:48:41 +00:00
.Pp
After all the slices are processed,
2000-03-18 16:48:41 +00:00
you are given the option to change the
2007-05-09 11:46:31 +00:00
.Dq active
slice.
2007-05-09 11:46:31 +00:00
Finally, when all the new data for sector 0 has been accumulated,
you are asked to confirm whether you really want to rewrite it.
2000-03-18 16:48:41 +00:00
.Pp
The difference between the
.Fl u
2007-05-09 11:46:31 +00:00
and
2000-03-18 16:48:41 +00:00
.Fl i
2007-05-09 11:46:31 +00:00
flags is that
2000-03-18 16:48:41 +00:00
the
.Fl u
flag edits (updates) the existing slice parameters
2007-05-09 11:46:31 +00:00
while the
2000-03-18 16:48:41 +00:00
.Fl i
2007-05-09 11:46:31 +00:00
flag is used to
.Dq initialize
them (old values will be ignored);
it will setup the last BIOS slice to use the whole disk for
2000-11-14 11:20:58 +00:00
.Fx ;
2000-03-18 16:48:41 +00:00
and make it active.
.Sh NOTES
The automatic calculation of starting cylinder etc.\& uses
2007-05-09 11:46:31 +00:00
a set of figures that represent what the BIOS thinks the
geometry of the drive is.
These figures are taken from the in-core disklabel by default,
but
.Nm
initially gives you an opportunity to change them.
This allows you to create a bootblock that can work with drives
2000-03-18 16:48:41 +00:00
that use geometry translation under the BIOS.
.Pp
If you hand craft your disk layout,
please make sure that the
2000-11-14 11:20:58 +00:00
.Fx
slice starts on a cylinder boundary.
2000-03-18 16:48:41 +00:00
.Pp
Editing an existing slice will most likely result in the loss of
all data in that slice.
2000-03-18 16:48:41 +00:00
.Pp
2007-05-09 11:46:31 +00:00
You should run
.Nm
interactively once or twice to see how it works.
This is completely safe as long as you answer the last question
in the negative.
2007-05-09 11:46:31 +00:00
There are subtleties that
.Nm
detects that are not fully explained in this manual page.
2000-03-18 16:48:41 +00:00
.Sh CONFIGURATION FILE
When the
.Fl f
option is given, a disk's slice table can be written using values
2000-03-18 16:48:41 +00:00
from a
.Ar configfile .
2007-05-09 11:46:31 +00:00
The syntax of this file is very simple;
each line is either a comment or a specification, as follows:
.Bl -tag -width indent
.It Ic # Ar comment ...
Lines beginning with a
2000-03-18 16:48:41 +00:00
.Ic #
2007-05-09 11:46:31 +00:00
are comments and are ignored.
.It Ic g Ar spec1 spec2 spec3
Set the BIOS geometry used in slice calculations.
There must be
2000-03-18 16:48:41 +00:00
three values specified, with a letter preceding each number:
2007-05-09 11:46:31 +00:00
.Bl -tag -width indent
.It Cm c Ns Ar num
2000-03-18 16:48:41 +00:00
Set the number of cylinders to
.Ar num .
2007-05-09 11:46:31 +00:00
.It Cm h Ns Ar num
2000-03-18 16:48:41 +00:00
Set the number of heads to
.Ar num .
2007-05-09 11:46:31 +00:00
.It Cm s Ns Ar num
2000-03-18 16:48:41 +00:00
Set the number of sectors/track to
.Ar num .
.El
.Pp
These specs can occur in any order, as the leading letter determines
which value is which; however, all three must be specified.
.Pp
This line must occur before any lines that specify slice
2000-03-18 16:48:41 +00:00
information.
.Pp
It is an error if the following is not true:
.Bd -literal -offset indent
1 <= number of cylinders
1 <= number of heads <= 256
1 <= number of sectors/track < 64
.Ed
2000-03-18 16:48:41 +00:00
.Pp
The number of cylinders should be less than or equal to 1024, but this
2007-05-09 11:46:31 +00:00
is not enforced, although a warning will be printed.
Note that bootable
2000-11-14 11:20:58 +00:00
.Fx
slices (the
2007-05-09 11:46:31 +00:00
.Dq Pa /
file system) must lie completely within the
2000-03-18 16:48:41 +00:00
first 1024 cylinders; if this is not true, booting may fail.
Non-bootable slices do not have this restriction.
2000-03-18 16:48:41 +00:00
.Pp
Example (all of these are equivalent), for a disk with 1019 cylinders,
39 heads, and 63 sectors:
.Bd -literal -offset indent
g c1019 h39 s63
g h39 c1019 s63
g s63 h39 c1019
.Ed
.It Ic p Ar slice type start length
Set the slice given by
.Ar slice
2007-05-09 11:46:31 +00:00
(1-8) to type
2000-03-18 16:48:41 +00:00
.Ar type ,
starting at sector
.Ar start
for
.Ar length
sectors.
.Pp
Only those slices explicitly mentioned by these lines are modified;
any slice not referenced by a
2007-05-09 11:46:31 +00:00
.Ic p
line will not be modified.
However, if an invalid slice table is present, or the
2000-03-18 16:48:41 +00:00
.Fl i
option is specified, all existing slice entries will be cleared
2007-05-09 11:46:31 +00:00
(marked as unused), and these
.Ic p
lines will have to be used to
explicitly set slice information.
If multiple slices need to be
2007-05-09 11:46:31 +00:00
set, multiple
.Ic p
lines must be specified; one for each slice.
2000-03-18 16:48:41 +00:00
.Pp
These slice lines must occur after any geometry specification lines,
2000-03-18 16:48:41 +00:00
if one is present.
.Pp
The
.Ar type
is 165 for
2000-11-14 11:20:58 +00:00
.Fx
slices.
Specifying a slice type of zero is
the same as clearing the slice and marking it as unused; however,
2007-05-09 11:46:31 +00:00
dummy values (such as
.Dq 0 )
must still be specified for
2000-03-18 16:48:41 +00:00
.Ar start
and
.Ar length .
.Pp
Note: the start offset will be rounded upwards to a head boundary if
necessary, and the end offset will be rounded downwards to a cylinder
boundary if necessary.
.Pp
Example: to clear slice 4 and mark it as unused:
2007-05-09 11:46:31 +00:00
.Pp
.Dl "p 4 0 0 0"
2000-03-18 16:48:41 +00:00
.Pp
Example: to set slice 1 to a
2000-11-14 11:20:58 +00:00
.Fx
slice, starting at sector 1
2000-03-18 16:48:41 +00:00
for 2503871 sectors (note: these numbers will be rounded upwards and
downwards to correspond to head and cylinder boundaries):
2007-05-09 11:46:31 +00:00
.Pp
.Dl "p 1 165 1 2503871"
.It Ic a Ar slice
2000-03-18 16:48:41 +00:00
Make
.Ar slice
the active slice.
Can occur anywhere in the config file, but only
2000-03-18 16:48:41 +00:00
one must be present.
.Pp
Example: to make slice 1 the active slice:
2007-05-09 11:46:31 +00:00
.Pp
.Dl "a 1"
2000-03-18 16:48:41 +00:00
.El
.Sh SEE ALSO
.Xr boot98cfg 8 ,
.Xr bsdlabel 8 ,
.Xr gpart 8 ,
.Xr newfs 8
.Sh HISTORY
A version of
.Nm
first appeared in the Mach Operating System.
It was subsequently ported to
.Bx 386 .
.Sh AUTHORS
.An -nosplit
.Nm
for Mach Operating System was written by
.An Robert Baron Aq Mt rvb@cs.cmu.edu .
It was ported to
.Bx 386
by
.An Julian Elischer Aq Mt julian@tfs.com .
2000-03-18 16:48:41 +00:00
.Sh BUGS
The default boot code will not necessarily handle all slice types
2007-05-09 11:46:31 +00:00
correctly, in particular those introduced since
.Tn MS-DOS
6.x.
2000-03-18 16:48:41 +00:00
.Pp
2007-05-09 11:46:31 +00:00
The entire utility should be made more user-friendly.
2000-03-18 16:48:41 +00:00
.Pp
Most users new to
.Fx
do not understand the difference between
.Dq slice
and
.Dq partition ,
causing difficulty to adjust.
.Pp
2000-03-18 16:48:41 +00:00
You cannot use this command to completely dedicate a disk to
2000-11-14 11:20:58 +00:00
.Fx .
2000-03-18 16:48:41 +00:00
The
.Xr bsdlabel 8
2000-03-18 16:48:41 +00:00
command must be used for this.