Added PC98 version of fdisk.
This commit is contained in:
parent
02572fd86e
commit
8220dd2744
8
sbin/fdisk_pc98/Makefile
Normal file
8
sbin/fdisk_pc98/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= fdisk
|
||||
MAN8= fdisk.8
|
||||
|
||||
CFLAGS += -DPC98
|
||||
|
||||
.include <bsd.prog.mk>
|
468
sbin/fdisk_pc98/fdisk.8
Normal file
468
sbin/fdisk_pc98/fdisk.8
Normal file
@ -0,0 +1,468 @@
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 4, 1996
|
||||
.Dt FDISK 8
|
||||
.\".Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm fdisk
|
||||
.Nd PC partition table maintenance program
|
||||
.Sh SYNOPSIS
|
||||
.Nm fdisk
|
||||
.\" !PC98 .Op Fl BIaistu
|
||||
.Op Fl Bastu
|
||||
.Op Fl b Ar bootcode
|
||||
.Op Fl 1234
|
||||
.Op Ar disk
|
||||
.Bl -tag -width time
|
||||
.Nm fdisk
|
||||
.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 partition table,
|
||||
and a magic number.
|
||||
BIOS partitions 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 partition table to determine which
|
||||
partition is marked
|
||||
.Em active .
|
||||
This boot code then brings in the bootstrap from the
|
||||
.Em active
|
||||
partition and, if marked bootable, runs it.
|
||||
Under DOS,
|
||||
you can have one or more partitions with one
|
||||
.Em active .
|
||||
The DOS
|
||||
.Nm
|
||||
program can be used to divide space on the disk into partitions and set one
|
||||
.Em active .
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Bx Free
|
||||
program
|
||||
.Nm
|
||||
serves a similar purpose to the DOS program. The first form is used to
|
||||
display partition information or to interactively edit the partition
|
||||
table. The second is used to write a partition table using a
|
||||
.Ar configfile
|
||||
and is designed to be used by other scripts/programs.
|
||||
.Pp
|
||||
Options are:
|
||||
.It Fl a
|
||||
Change the active partition only. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl b Ar bootcode
|
||||
Get the boot code from the file
|
||||
.Ar bootcode .
|
||||
.It Fl B
|
||||
Reinitialize the boot code contained in sector 0 of the disk. Ignored
|
||||
if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl f Ar configfile
|
||||
Set partition values using the file
|
||||
.Ar configfile .
|
||||
The
|
||||
.Ar configfile
|
||||
always modifies existing partitions, unless
|
||||
.Fl i
|
||||
is also given, in which case all existing partitions are deleted (marked
|
||||
as "unused") before the
|
||||
.Ar configfile
|
||||
is read. The
|
||||
.Ar configfile
|
||||
can be "-", in which case
|
||||
.Ar stdin
|
||||
is read. See
|
||||
.Sx CONFIGURATION FILE ,
|
||||
below, for file syntax.
|
||||
.Pp
|
||||
.Em WARNING Ns :
|
||||
when
|
||||
.Fl f
|
||||
is used, you are not asked if you really want to write the partition
|
||||
table (as you are in the interactive mode). Use with caution!
|
||||
.\" !PC98
|
||||
.\" .It Fl i
|
||||
.\" Initialize sector 0 of the disk. This implies
|
||||
.\" .Fl u ,
|
||||
.\" unless
|
||||
.\" .Fl f
|
||||
.\" is given.
|
||||
.\" .It Fl I
|
||||
.\" Initialize the contents of sector 0
|
||||
.\" with one
|
||||
/\" .Fx
|
||||
/\" slice covering the entire disk.
|
||||
.It Fl s
|
||||
Print summary information and exit.
|
||||
.It Fl t
|
||||
Test mode; do not write partition values. Generally used with the
|
||||
.Fl f
|
||||
option to see what would be written to the partition table. Implies
|
||||
.Fl v .
|
||||
.It Fl u
|
||||
Is used for updating (editing) sector 0 of the disk. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl v
|
||||
Be verbose. When
|
||||
.Fl f
|
||||
is used,
|
||||
.Nm
|
||||
prints out the partition table that is written to the disk.
|
||||
.It Fl 12345678
|
||||
Operate on a single fdisk entry only. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.El
|
||||
.Pp
|
||||
The final disk name can be provided as a
|
||||
.Sq bare
|
||||
disk name only, e.g.
|
||||
.Ql da0 ,
|
||||
or as a fully qualified device node under
|
||||
.Pa /dev .
|
||||
If omitted, the disks
|
||||
.Ql wd0 ,
|
||||
.Ql da0 ,
|
||||
and
|
||||
.Ql od0
|
||||
are being searched in that order, until one is
|
||||
being found responding.
|
||||
.Pp
|
||||
When called with no arguments, it prints the sector 0 partition table.
|
||||
An example follows:
|
||||
|
||||
.Bd -literal
|
||||
******* Working on device /dev/rda0 *******
|
||||
parameters extracted from in-core disklabel are:
|
||||
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
|
||||
|
||||
parameters to be used for BIOS calculations are:
|
||||
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
|
||||
|
||||
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 partitions that happen to fill the disk.
|
||||
The second partition overlaps the end of the first.
|
||||
(Used for debugging purposes)
|
||||
.Bl -tag -width "cyl, sector and head"
|
||||
.It Em "sysmid"
|
||||
is used to label the partition.
|
||||
.Bx Free
|
||||
reserves the
|
||||
magic number 148 decimal (94 in hex).
|
||||
.It Em "start and size"
|
||||
fields provide the start address
|
||||
and size of a partition in sectors.
|
||||
.\" !PC98 .It Em "flag 80"
|
||||
.\" specifies that this is the active partition.
|
||||
.It Em "cyl, sector and head"
|
||||
fields are used to specify the beginning address
|
||||
and end address for the partition.
|
||||
.It Em "system Name"
|
||||
is the name of the partition.
|
||||
.It Em "Note:"
|
||||
these numbers are calculated using BIOS's understanding of the disk geometry
|
||||
and saved in the bootblock.
|
||||
.El
|
||||
.Pp
|
||||
The flags
|
||||
.\" .Fl i
|
||||
.\" or
|
||||
.Fl u
|
||||
are used to indicate that the partition data is to be updated, unless the
|
||||
.Fl f
|
||||
option is used. If the
|
||||
.Fl f
|
||||
option is not used, the
|
||||
.Nm
|
||||
program will enter a conversational mode.
|
||||
This mode is designed not to change any data unless you explicitly tell it to.
|
||||
.Nm Fdisk
|
||||
selects defaults for its questions to guarantee the above behavior.
|
||||
.Pp
|
||||
It displays each partition
|
||||
and ask if you want to edit it.
|
||||
If you say yes,
|
||||
it will step through each field showing the old value
|
||||
and asking for a new one.
|
||||
When you are done with a partition,
|
||||
.Nm
|
||||
will display it and ask if it is correct.
|
||||
.Nm Fdisk
|
||||
will then proceed to the next entry.
|
||||
.Pp
|
||||
Getting the
|
||||
.Em cyl, sector,
|
||||
and
|
||||
.Em head
|
||||
fields correct is tricky.
|
||||
So by default,
|
||||
they will be calculated for you;
|
||||
you can specify them if you choose.
|
||||
.Pp
|
||||
After all the partitions are processed,
|
||||
you are given the option to change the
|
||||
.Em active
|
||||
partition.
|
||||
Finally,
|
||||
when the all the data for the first sector has been accumulated,
|
||||
you are asked if you really want to rewrite sector 0.
|
||||
Only if you answer yes,
|
||||
will the data be written to disk.
|
||||
.Pp
|
||||
The difference between the
|
||||
.Fl u
|
||||
flag and
|
||||
.Fl i
|
||||
flag is that
|
||||
the
|
||||
.Fl u
|
||||
flag just edits the fields as they appear on the disk.
|
||||
While the
|
||||
.Fl i
|
||||
flag is used to "initialize" sector 0;
|
||||
it will setup the last BIOS partition to use the whole disk for
|
||||
.Bx Free ;
|
||||
and make it active.
|
||||
.Sh NOTES
|
||||
The automatic calculation of starting cylinder etc. uses
|
||||
a set of figures that represent what the BIOS thinks is the
|
||||
geometry of the drive.
|
||||
These figures are by default taken from the incore disklabel,
|
||||
but the program initially gives you an opportunity to change them.
|
||||
This allows the user to create a bootblock that can work with drives
|
||||
that use geometry translation under the BIOS.
|
||||
.Pp
|
||||
If you hand craft your disk layout,
|
||||
please make sure that the
|
||||
.Bx Free
|
||||
partition starts on a cylinder boundary.
|
||||
A number of decisions made later may assume this.
|
||||
(This might not be necessary later.)
|
||||
.Pp
|
||||
Editing an existing partition will most likely cause you to
|
||||
lose all the data in that partition.
|
||||
.Pp
|
||||
You should run this program interactively once or twice to see how it
|
||||
works. This is completely safe as long as you answer the last question
|
||||
in the negative. There are subtleties that the program detects that are
|
||||
not fully explained in this manual page.
|
||||
.Sh CONFIGURATION FILE
|
||||
When the
|
||||
.Fl f
|
||||
option is given, a disk's partition table can be written using values
|
||||
from a
|
||||
.Ar configfile .
|
||||
The syntax of this file is very simple. Each line is either a comment or
|
||||
a specification, and whitespace (except for newlines) are ignored:
|
||||
.Bl -tag -width Ds
|
||||
.It Xo
|
||||
.Ic #
|
||||
.No Ar comment ...
|
||||
.Xc
|
||||
Lines beginning with a "#" are comments and are ignored.
|
||||
.It Xo
|
||||
.Ic g
|
||||
.No Ar spec1
|
||||
.No Ar spec2
|
||||
.No Ar spec3
|
||||
.Xc
|
||||
Set the BIOS geometry used in partition calculations. There must be
|
||||
three values specified, with a letter preceding each number:
|
||||
.Bl -tag -width Ds
|
||||
.Sm off
|
||||
.It Cm c No Ar num
|
||||
.Sm on
|
||||
Set the number of cylinders to
|
||||
.Ar num .
|
||||
.Sm off
|
||||
.It Cm h No Ar num
|
||||
.Sm on
|
||||
Set the number of heads to
|
||||
.Ar num .
|
||||
.Sm off
|
||||
.It Cm s No Ar num
|
||||
.Sm on
|
||||
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 partition
|
||||
information.
|
||||
.Pp
|
||||
It is an error if the following is not true:
|
||||
.Pp
|
||||
.nf
|
||||
1 <= number of cylinders
|
||||
1 <= number of heads <= 256
|
||||
1 <= number of sectors/track < 64
|
||||
.fi
|
||||
.Pp
|
||||
The number of cylinders should be less than or equal to 1024, but this
|
||||
is not enforced, although a warning will be output. Note that bootable
|
||||
.Bx Free
|
||||
partitions (the "/" filesystem) must lie completely within the
|
||||
first 1024 cylinders; if this is not true, booting may fail.
|
||||
Non-bootable partitions do not have this restriction.
|
||||
.Pp
|
||||
Example (all of these are equivalent), for a disk with 1019 cylinders,
|
||||
39 heads, and 63 sectors:
|
||||
.Pp
|
||||
.nf
|
||||
g c1019 h39 s63
|
||||
g h39 c1019 s63
|
||||
g s63 h39 c1019
|
||||
.fi
|
||||
.It Xo
|
||||
.Ic p
|
||||
.No Ar partition
|
||||
.No Ar type
|
||||
.No Ar start
|
||||
.No Ar length
|
||||
.Xc
|
||||
Set the partition given by
|
||||
.Ar partition
|
||||
(1-4) to type
|
||||
.Ar type ,
|
||||
starting at sector
|
||||
.Ar start
|
||||
for
|
||||
.Ar length
|
||||
sectors.
|
||||
.Pp
|
||||
Only those partitions explicitly mentioned by these lines are modified;
|
||||
any partition not referenced by a "p" line will not be modified.
|
||||
However, if an invalid partition table is present, or the
|
||||
.Fl i
|
||||
option is specified, all existing partition entries will be cleared
|
||||
(marked as unused), and these "p" lines will have to be used to
|
||||
explicitly set partition information. If multiple partitions need to be
|
||||
set, multiple "p" lines must be specified; one for each partition.
|
||||
.Pp
|
||||
These partition lines must occur after any geometry specification lines,
|
||||
if one is present.
|
||||
.Pp
|
||||
The
|
||||
.Ar type
|
||||
is 165 for
|
||||
.Bx Free
|
||||
partitions. Specifying a partition type of zero is
|
||||
the same as clearing the partition and marking it as unused; however,
|
||||
dummy values (such as "0") must still be specified for
|
||||
.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 partition 4 and mark it as unused:
|
||||
.Pp
|
||||
.nf
|
||||
p 4 0 0 0
|
||||
.fi
|
||||
.Pp
|
||||
Example: to set partition 1 to a
|
||||
.Bx Free
|
||||
partition, starting at sector 1
|
||||
for 2503871 sectors (note: these numbers will be rounded upwards and
|
||||
downwards to correspond to head and cylinder boundaries):
|
||||
.Pp
|
||||
.nf
|
||||
p 1 165 1 2503871
|
||||
.fi
|
||||
.It Xo
|
||||
.Ic a
|
||||
.No Ar partition
|
||||
.Xc
|
||||
Make
|
||||
.Ar partition
|
||||
the active partition. Can occur anywhere in the config file, but only
|
||||
one must be present.
|
||||
.Pp
|
||||
Example: to make partition 1 the active partition:
|
||||
.Pp
|
||||
.nf
|
||||
a 1
|
||||
.fi
|
||||
|
||||
.El
|
||||
.Pp
|
||||
.Sh FILES
|
||||
.Bl -tag -width /boot/mbr -compact
|
||||
.It Pa /boot/mbr
|
||||
The default boot code
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr disklabel 8
|
||||
.Sh BUGS
|
||||
The default boot code will not necessarily handle all partition types
|
||||
correctly, in particular those introduced since MS-DOS 6.x.
|
||||
.Pp
|
||||
The entire program should be made more user-friendly.
|
||||
.Pp
|
||||
Throughout this man page, the term
|
||||
.Sq partition
|
||||
is used where it should actually be
|
||||
.Sq slice ,
|
||||
in order to conform with the terms used elsewhere.
|
||||
.Pp
|
||||
You cannot use this command to completely dedicate a disk to
|
||||
.Bx Free .
|
||||
The
|
||||
.Xr disklabel 8
|
||||
command must be used for this.
|
1539
sbin/fdisk_pc98/fdisk.c
Normal file
1539
sbin/fdisk_pc98/fdisk.c
Normal file
File diff suppressed because it is too large
Load Diff
7
sbin/pc98/Makefile
Normal file
7
sbin/pc98/Makefile
Normal file
@ -0,0 +1,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
SUBDIR= fdisk
|
||||
#NOTYET: nextboot
|
||||
#NOTYET: cxconfig
|
||||
|
||||
.include <bsd.subdir.mk>
|
3
sbin/pc98/Makefile.inc
Normal file
3
sbin/pc98/Makefile.inc
Normal file
@ -0,0 +1,3 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.include "${.CURDIR}/../../Makefile.inc"
|
8
sbin/pc98/fdisk/Makefile
Normal file
8
sbin/pc98/fdisk/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= fdisk
|
||||
MAN8= fdisk.8
|
||||
|
||||
CFLAGS += -DPC98
|
||||
|
||||
.include <bsd.prog.mk>
|
468
sbin/pc98/fdisk/fdisk.8
Normal file
468
sbin/pc98/fdisk/fdisk.8
Normal file
@ -0,0 +1,468 @@
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 4, 1996
|
||||
.Dt FDISK 8
|
||||
.\".Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm fdisk
|
||||
.Nd PC partition table maintenance program
|
||||
.Sh SYNOPSIS
|
||||
.Nm fdisk
|
||||
.\" !PC98 .Op Fl BIaistu
|
||||
.Op Fl Bastu
|
||||
.Op Fl b Ar bootcode
|
||||
.Op Fl 1234
|
||||
.Op Ar disk
|
||||
.Bl -tag -width time
|
||||
.Nm fdisk
|
||||
.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 partition table,
|
||||
and a magic number.
|
||||
BIOS partitions 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 partition table to determine which
|
||||
partition is marked
|
||||
.Em active .
|
||||
This boot code then brings in the bootstrap from the
|
||||
.Em active
|
||||
partition and, if marked bootable, runs it.
|
||||
Under DOS,
|
||||
you can have one or more partitions with one
|
||||
.Em active .
|
||||
The DOS
|
||||
.Nm
|
||||
program can be used to divide space on the disk into partitions and set one
|
||||
.Em active .
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Bx Free
|
||||
program
|
||||
.Nm
|
||||
serves a similar purpose to the DOS program. The first form is used to
|
||||
display partition information or to interactively edit the partition
|
||||
table. The second is used to write a partition table using a
|
||||
.Ar configfile
|
||||
and is designed to be used by other scripts/programs.
|
||||
.Pp
|
||||
Options are:
|
||||
.It Fl a
|
||||
Change the active partition only. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl b Ar bootcode
|
||||
Get the boot code from the file
|
||||
.Ar bootcode .
|
||||
.It Fl B
|
||||
Reinitialize the boot code contained in sector 0 of the disk. Ignored
|
||||
if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl f Ar configfile
|
||||
Set partition values using the file
|
||||
.Ar configfile .
|
||||
The
|
||||
.Ar configfile
|
||||
always modifies existing partitions, unless
|
||||
.Fl i
|
||||
is also given, in which case all existing partitions are deleted (marked
|
||||
as "unused") before the
|
||||
.Ar configfile
|
||||
is read. The
|
||||
.Ar configfile
|
||||
can be "-", in which case
|
||||
.Ar stdin
|
||||
is read. See
|
||||
.Sx CONFIGURATION FILE ,
|
||||
below, for file syntax.
|
||||
.Pp
|
||||
.Em WARNING Ns :
|
||||
when
|
||||
.Fl f
|
||||
is used, you are not asked if you really want to write the partition
|
||||
table (as you are in the interactive mode). Use with caution!
|
||||
.\" !PC98
|
||||
.\" .It Fl i
|
||||
.\" Initialize sector 0 of the disk. This implies
|
||||
.\" .Fl u ,
|
||||
.\" unless
|
||||
.\" .Fl f
|
||||
.\" is given.
|
||||
.\" .It Fl I
|
||||
.\" Initialize the contents of sector 0
|
||||
.\" with one
|
||||
/\" .Fx
|
||||
/\" slice covering the entire disk.
|
||||
.It Fl s
|
||||
Print summary information and exit.
|
||||
.It Fl t
|
||||
Test mode; do not write partition values. Generally used with the
|
||||
.Fl f
|
||||
option to see what would be written to the partition table. Implies
|
||||
.Fl v .
|
||||
.It Fl u
|
||||
Is used for updating (editing) sector 0 of the disk. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.It Fl v
|
||||
Be verbose. When
|
||||
.Fl f
|
||||
is used,
|
||||
.Nm
|
||||
prints out the partition table that is written to the disk.
|
||||
.It Fl 12345678
|
||||
Operate on a single fdisk entry only. Ignored if
|
||||
.Fl f
|
||||
is given.
|
||||
.El
|
||||
.Pp
|
||||
The final disk name can be provided as a
|
||||
.Sq bare
|
||||
disk name only, e.g.
|
||||
.Ql da0 ,
|
||||
or as a fully qualified device node under
|
||||
.Pa /dev .
|
||||
If omitted, the disks
|
||||
.Ql wd0 ,
|
||||
.Ql da0 ,
|
||||
and
|
||||
.Ql od0
|
||||
are being searched in that order, until one is
|
||||
being found responding.
|
||||
.Pp
|
||||
When called with no arguments, it prints the sector 0 partition table.
|
||||
An example follows:
|
||||
|
||||
.Bd -literal
|
||||
******* Working on device /dev/rda0 *******
|
||||
parameters extracted from in-core disklabel are:
|
||||
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
|
||||
|
||||
parameters to be used for BIOS calculations are:
|
||||
cylinders=33075 heads=8 sectors/track=32 (256 blks/cyl)
|
||||
|
||||
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 partitions that happen to fill the disk.
|
||||
The second partition overlaps the end of the first.
|
||||
(Used for debugging purposes)
|
||||
.Bl -tag -width "cyl, sector and head"
|
||||
.It Em "sysmid"
|
||||
is used to label the partition.
|
||||
.Bx Free
|
||||
reserves the
|
||||
magic number 148 decimal (94 in hex).
|
||||
.It Em "start and size"
|
||||
fields provide the start address
|
||||
and size of a partition in sectors.
|
||||
.\" !PC98 .It Em "flag 80"
|
||||
.\" specifies that this is the active partition.
|
||||
.It Em "cyl, sector and head"
|
||||
fields are used to specify the beginning address
|
||||
and end address for the partition.
|
||||
.It Em "system Name"
|
||||
is the name of the partition.
|
||||
.It Em "Note:"
|
||||
these numbers are calculated using BIOS's understanding of the disk geometry
|
||||
and saved in the bootblock.
|
||||
.El
|
||||
.Pp
|
||||
The flags
|
||||
.\" .Fl i
|
||||
.\" or
|
||||
.Fl u
|
||||
are used to indicate that the partition data is to be updated, unless the
|
||||
.Fl f
|
||||
option is used. If the
|
||||
.Fl f
|
||||
option is not used, the
|
||||
.Nm
|
||||
program will enter a conversational mode.
|
||||
This mode is designed not to change any data unless you explicitly tell it to.
|
||||
.Nm Fdisk
|
||||
selects defaults for its questions to guarantee the above behavior.
|
||||
.Pp
|
||||
It displays each partition
|
||||
and ask if you want to edit it.
|
||||
If you say yes,
|
||||
it will step through each field showing the old value
|
||||
and asking for a new one.
|
||||
When you are done with a partition,
|
||||
.Nm
|
||||
will display it and ask if it is correct.
|
||||
.Nm Fdisk
|
||||
will then proceed to the next entry.
|
||||
.Pp
|
||||
Getting the
|
||||
.Em cyl, sector,
|
||||
and
|
||||
.Em head
|
||||
fields correct is tricky.
|
||||
So by default,
|
||||
they will be calculated for you;
|
||||
you can specify them if you choose.
|
||||
.Pp
|
||||
After all the partitions are processed,
|
||||
you are given the option to change the
|
||||
.Em active
|
||||
partition.
|
||||
Finally,
|
||||
when the all the data for the first sector has been accumulated,
|
||||
you are asked if you really want to rewrite sector 0.
|
||||
Only if you answer yes,
|
||||
will the data be written to disk.
|
||||
.Pp
|
||||
The difference between the
|
||||
.Fl u
|
||||
flag and
|
||||
.Fl i
|
||||
flag is that
|
||||
the
|
||||
.Fl u
|
||||
flag just edits the fields as they appear on the disk.
|
||||
While the
|
||||
.Fl i
|
||||
flag is used to "initialize" sector 0;
|
||||
it will setup the last BIOS partition to use the whole disk for
|
||||
.Bx Free ;
|
||||
and make it active.
|
||||
.Sh NOTES
|
||||
The automatic calculation of starting cylinder etc. uses
|
||||
a set of figures that represent what the BIOS thinks is the
|
||||
geometry of the drive.
|
||||
These figures are by default taken from the incore disklabel,
|
||||
but the program initially gives you an opportunity to change them.
|
||||
This allows the user to create a bootblock that can work with drives
|
||||
that use geometry translation under the BIOS.
|
||||
.Pp
|
||||
If you hand craft your disk layout,
|
||||
please make sure that the
|
||||
.Bx Free
|
||||
partition starts on a cylinder boundary.
|
||||
A number of decisions made later may assume this.
|
||||
(This might not be necessary later.)
|
||||
.Pp
|
||||
Editing an existing partition will most likely cause you to
|
||||
lose all the data in that partition.
|
||||
.Pp
|
||||
You should run this program interactively once or twice to see how it
|
||||
works. This is completely safe as long as you answer the last question
|
||||
in the negative. There are subtleties that the program detects that are
|
||||
not fully explained in this manual page.
|
||||
.Sh CONFIGURATION FILE
|
||||
When the
|
||||
.Fl f
|
||||
option is given, a disk's partition table can be written using values
|
||||
from a
|
||||
.Ar configfile .
|
||||
The syntax of this file is very simple. Each line is either a comment or
|
||||
a specification, and whitespace (except for newlines) are ignored:
|
||||
.Bl -tag -width Ds
|
||||
.It Xo
|
||||
.Ic #
|
||||
.No Ar comment ...
|
||||
.Xc
|
||||
Lines beginning with a "#" are comments and are ignored.
|
||||
.It Xo
|
||||
.Ic g
|
||||
.No Ar spec1
|
||||
.No Ar spec2
|
||||
.No Ar spec3
|
||||
.Xc
|
||||
Set the BIOS geometry used in partition calculations. There must be
|
||||
three values specified, with a letter preceding each number:
|
||||
.Bl -tag -width Ds
|
||||
.Sm off
|
||||
.It Cm c No Ar num
|
||||
.Sm on
|
||||
Set the number of cylinders to
|
||||
.Ar num .
|
||||
.Sm off
|
||||
.It Cm h No Ar num
|
||||
.Sm on
|
||||
Set the number of heads to
|
||||
.Ar num .
|
||||
.Sm off
|
||||
.It Cm s No Ar num
|
||||
.Sm on
|
||||
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 partition
|
||||
information.
|
||||
.Pp
|
||||
It is an error if the following is not true:
|
||||
.Pp
|
||||
.nf
|
||||
1 <= number of cylinders
|
||||
1 <= number of heads <= 256
|
||||
1 <= number of sectors/track < 64
|
||||
.fi
|
||||
.Pp
|
||||
The number of cylinders should be less than or equal to 1024, but this
|
||||
is not enforced, although a warning will be output. Note that bootable
|
||||
.Bx Free
|
||||
partitions (the "/" filesystem) must lie completely within the
|
||||
first 1024 cylinders; if this is not true, booting may fail.
|
||||
Non-bootable partitions do not have this restriction.
|
||||
.Pp
|
||||
Example (all of these are equivalent), for a disk with 1019 cylinders,
|
||||
39 heads, and 63 sectors:
|
||||
.Pp
|
||||
.nf
|
||||
g c1019 h39 s63
|
||||
g h39 c1019 s63
|
||||
g s63 h39 c1019
|
||||
.fi
|
||||
.It Xo
|
||||
.Ic p
|
||||
.No Ar partition
|
||||
.No Ar type
|
||||
.No Ar start
|
||||
.No Ar length
|
||||
.Xc
|
||||
Set the partition given by
|
||||
.Ar partition
|
||||
(1-4) to type
|
||||
.Ar type ,
|
||||
starting at sector
|
||||
.Ar start
|
||||
for
|
||||
.Ar length
|
||||
sectors.
|
||||
.Pp
|
||||
Only those partitions explicitly mentioned by these lines are modified;
|
||||
any partition not referenced by a "p" line will not be modified.
|
||||
However, if an invalid partition table is present, or the
|
||||
.Fl i
|
||||
option is specified, all existing partition entries will be cleared
|
||||
(marked as unused), and these "p" lines will have to be used to
|
||||
explicitly set partition information. If multiple partitions need to be
|
||||
set, multiple "p" lines must be specified; one for each partition.
|
||||
.Pp
|
||||
These partition lines must occur after any geometry specification lines,
|
||||
if one is present.
|
||||
.Pp
|
||||
The
|
||||
.Ar type
|
||||
is 165 for
|
||||
.Bx Free
|
||||
partitions. Specifying a partition type of zero is
|
||||
the same as clearing the partition and marking it as unused; however,
|
||||
dummy values (such as "0") must still be specified for
|
||||
.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 partition 4 and mark it as unused:
|
||||
.Pp
|
||||
.nf
|
||||
p 4 0 0 0
|
||||
.fi
|
||||
.Pp
|
||||
Example: to set partition 1 to a
|
||||
.Bx Free
|
||||
partition, starting at sector 1
|
||||
for 2503871 sectors (note: these numbers will be rounded upwards and
|
||||
downwards to correspond to head and cylinder boundaries):
|
||||
.Pp
|
||||
.nf
|
||||
p 1 165 1 2503871
|
||||
.fi
|
||||
.It Xo
|
||||
.Ic a
|
||||
.No Ar partition
|
||||
.Xc
|
||||
Make
|
||||
.Ar partition
|
||||
the active partition. Can occur anywhere in the config file, but only
|
||||
one must be present.
|
||||
.Pp
|
||||
Example: to make partition 1 the active partition:
|
||||
.Pp
|
||||
.nf
|
||||
a 1
|
||||
.fi
|
||||
|
||||
.El
|
||||
.Pp
|
||||
.Sh FILES
|
||||
.Bl -tag -width /boot/mbr -compact
|
||||
.It Pa /boot/mbr
|
||||
The default boot code
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr disklabel 8
|
||||
.Sh BUGS
|
||||
The default boot code will not necessarily handle all partition types
|
||||
correctly, in particular those introduced since MS-DOS 6.x.
|
||||
.Pp
|
||||
The entire program should be made more user-friendly.
|
||||
.Pp
|
||||
Throughout this man page, the term
|
||||
.Sq partition
|
||||
is used where it should actually be
|
||||
.Sq slice ,
|
||||
in order to conform with the terms used elsewhere.
|
||||
.Pp
|
||||
You cannot use this command to completely dedicate a disk to
|
||||
.Bx Free .
|
||||
The
|
||||
.Xr disklabel 8
|
||||
command must be used for this.
|
1539
sbin/pc98/fdisk/fdisk.c
Normal file
1539
sbin/pc98/fdisk/fdisk.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user