diff --git a/sbin/fdisk/fdisk.8 b/sbin/fdisk/fdisk.8 index 491eb228d314..27da79be6dd1 100644 --- a/sbin/fdisk/fdisk.8 +++ b/sbin/fdisk/fdisk.8 @@ -1,18 +1,17 @@ .\" $FreeBSD$ .\" -.Dd October 4, 1996 +.Dd April 18, 2002 .Dt FDISK 8 .Os .Sh NAME .Nm fdisk -.Nd PC slice table maintenance program +.Nd PC slice table maintenance utility .Sh SYNOPSIS .Nm .Op Fl BIaistu .Op Fl b Ar bootcode .Op Fl 1234 .Op Ar disk -.Bl -tag -width time .Nm .Fl f Ar configfile .Op Fl itv @@ -24,34 +23,41 @@ Sector 0 of the disk must contain boot code, a slice table, 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 +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 -.Em active . +.Dq active . This boot code then brings in the bootstrap from the -.Em active -slice and, if marked bootable, runs it. -Under DOS, -you can have one or more slices with one -.Em active . -The DOS +active slice and, if marked bootable, runs it. +Under +.Tn DOS , +you can have one or more slices with one active. +The +.Tn DOS .Nm -program can be used to divide space on the disk into slices and set one -.Em active . +utility can be used to divide space on the disk into slices and set one +active. .Sh DESCRIPTION The .Fx -program, +utility, .Nm , -serves a similar purpose to the DOS program. The first form is used to +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 -.Ar configfile +table. +The second is used to write a slice table using a +.Ar configfile , and is designed to be used by other scripts/programs. .Pp Options are: +.Bl -tag -width indent .It Fl a -Change the active slice only. Ignored if +Change the active slice only. +Ignored if .Fl f is given. .It Fl b Ar bootcode @@ -60,8 +66,8 @@ Get the boot code from the file Default is .Pa /boot/mbr . .It Fl B -Reinitialize the boot code contained in sector 0 of the disk. Ignored -if +Reinitialize the boot code contained in sector 0 of the disk. +Ignored if .Fl f is given. .It Fl f Ar configfile @@ -72,13 +78,17 @@ The always modifies existing slices, unless .Fl i is also given, in which case all existing slices are deleted (marked -as "unused") before the +as +.Dq unused ) +before the .Ar configfile -is read. The +is read. +The .Ar configfile -can be "-", in which case -.Ar stdin -is read. See +can be +.Sq Fl , +in which case standard input is read. +See .Sx CONFIGURATION FILE , below, for file syntax. .Pp @@ -86,9 +96,11 @@ below, for file syntax. 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! +table (as you are in the interactive mode). +Use with caution! .It Fl i -Initialize sector 0 of the disk. This implies +Initialize sector 0 of the disk. +This implies .Fl u , unless .Fl f @@ -101,37 +113,42 @@ slice covering the entire disk. .It Fl s Print summary information and exit. .It Fl t -Test mode; do not write slice values. Generally used with the +Test mode; do not write slice values. +Generally used with the .Fl f -option to see what would be written to the slice table. Implies +option to see what would be written to the slice table. +Implies .Fl v . .It Fl u -Is used for updating (editing) sector 0 of the disk. Ignored if +Is used for updating (editing) sector 0 of the disk. +Ignored if .Fl f is given. .It Fl v -Be verbose. When +Be verbose. +When .Fl f is used, .Nm prints out the slice table that is written to the disk. .It Fl 1234 -Operate on a single fdisk entry only. Ignored if +Operate on a single slice table entry only. +Ignored if .Fl f is given. .El .Pp The final disk name can be provided as a -.Sq bare +.Dq bare disk name only, e.g.\& -.Ql da0 , +.Pa da0 , or as a full pathname. If omitted, .Nm tries to figure out the default disk device name from the mounted root device. .Pp -When called with no arguments, it prints the sector 0 partition table. +When called with no arguments, it prints the sector 0 slice table. An example follows: .Bd -literal ******* Working on device /dev/ad0 ******* @@ -165,23 +182,32 @@ An example follows: The disk is divided into three slices that happen to fill the disk. The second slice overlaps the end of the first. (Used for debugging purposes.) -.Bl -tag -width "cyl, sector and head" -.It Em "sysid" +.Bl -tag -width ".Em cyl , sector No and Em head" +.It Em sysid is used to label the slice. .Fx reserves the magic number 165 decimal (A5 in hex). -.It Em start No and Em size +.It Xo +.Em start +and +.Em size +.Xc fields provide the start address and size of a slice in sectors. .It Em "flag 80" specifies that this is the active slice. -.It Em cyl , sector No and Em head +.It Xo +.Em cyl , sector +and +.Em head +.Xc fields are used to specify the beginning and end addresses of the slice. -.It Em Note : +.El +.Pp +.Em Note : these numbers are calculated using BIOS's understanding of the disk geometry and saved in the bootblock. -.El .Pp The .Fl i @@ -197,8 +223,9 @@ In this mode, no changes will be written to disk unless you explicitly tell .Nm to. .Pp -.Nm Fdisk -will display each slice and ask whether you want to edit it. +The +.Nm +utility will display each slice and ask whether you want to edit it. If you say yes, .Nm will step through each field, show you the old value, @@ -206,8 +233,7 @@ and ask you for a new one. When you are done with the slice, .Nm will display it and ask you whether it is correct. -.Nm Fdisk -will then proceed to the next entry. +It will then proceed to the next entry. .Pp Getting the .Em cyl , sector , @@ -219,7 +245,7 @@ you can specify them if you choose to though. .Pp After all the slices are processed, you are given the option to change the -.Em active +.Dq active slice. Finally, when all the new data for sector 0 has been accumulated, you are asked to confirm whether you really want to rewrite it. @@ -234,7 +260,9 @@ the flag just edits (updates) the fields as they appear on the disk, while the .Fl i -flag is used to "initialize" sector 0; +flag is used to +.Dq initialize +sector 0; it will set up the last BIOS slice to use the whole disk for .Fx and make it active. @@ -263,7 +291,8 @@ 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. There are subtleties that +in the negative. +There are subtleties that .Nm detects that are not fully explained in this manual page. .Sh CONFIGURATION FILE @@ -274,34 +303,23 @@ from a .Ar configfile . The syntax of this file is very simple; each line is either a comment or a specification, as follows: -.Bl -tag -width Ds -.It Xo +.Bl -tag -width indent +.It Ic # Ar comment ... +Lines beginning with a .Ic # -.Ar comment ... -.Xc -Lines beginning with a "#" are comments and are ignored. -.It Xo -.Ic g -.Ar spec1 -.Ar spec2 -.Ar spec3 -.Xc -Set the BIOS geometry used in slice calculations. There must be +are comments and are ignored. +.It Ic g Ar spec1 spec2 spec3 +Set the BIOS geometry used in slice calculations. +There must be three values specified, with a letter preceding each number: -.Bl -tag -width Ds -.Sm off -.It Cm c Ar num -.Sm on +.Bl -tag -width indent +.It Cm c Ns Ar num Set the number of cylinders to .Ar num . -.Sm off -.It Cm h Ar num -.Sm on +.It Cm h Ns Ar num Set the number of heads to .Ar num . -.Sm off -.It Cm s Ar num -.Sm on +.It Cm s Ns Ar num Set the number of sectors/track to .Ar num . .El @@ -320,9 +338,12 @@ It is an error if the following is not true: .Ed .Pp The number of cylinders should be less than or equal to 1024, but this -is not enforced, although a warning will be printed. Note that bootable +is not enforced, although a warning will be printed. +Note that bootable .Fx -slices (the "/" filesystem) must lie completely within the +slices (the +.Dq Pa / +filesystem) must lie completely within the first 1024 cylinders; if this is not true, booting may fail. Non-bootable slices do not have this restriction. .Pp @@ -333,13 +354,7 @@ g c1019 h39 s63 g h39 c1019 s63 g s63 h39 c1019 .Ed -.It Xo -.Ic p -.Ar slice -.Ar type -.Ar start -.Ar length -.Xc +.It Ic p Ar slice type start length Set the slice given by .Ar slice (1-4) to type @@ -351,13 +366,20 @@ for sectors. .Pp Only those slices explicitly mentioned by these lines are modified; -any slice not referenced by a "p" line will not be modified. +any slice not referenced by a +.Ic p +line will not be modified. However, if an invalid slice table is present, or the .Fl i option is specified, all existing slice entries will be cleared -(marked as unused), and these "p" lines will have to be used to -explicitly set slice information. If multiple slices need to be -set, multiple "p" lines must be specified; one for each slice. +(marked as unused), and these +.Ic p +lines will have to be used to +explicitly set slice information. +If multiple slices need to be +set, multiple +.Ic p +lines must be specified; one for each slice. .Pp These slice lines must occur after any geometry specification lines, if one is present. @@ -366,9 +388,12 @@ The .Ar type is 165 for .Fx -slices. Specifying a slice type of zero is +slices. +Specifying a slice type of zero is the same as clearing the slice and marking it as unused; however, -dummy values (such as "0") must still be specified for +dummy values (such as +.Dq 0 ) +must still be specified for .Ar start and .Ar length . @@ -378,9 +403,8 @@ 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: -.Bd -literal -offset indent -p 4 0 0 0 -.Ed +.Pp +.Dl "p 4 0 0 0" .Pp Example: to set slice 1 to a .Fx @@ -388,28 +412,23 @@ slice, starting at sector 1 for 2503871 sectors (note: these numbers will be rounded upwards and downwards to correspond to head and cylinder boundaries): .Pp -.Bd -literal -offset indent -p 1 165 1 2503871 -.Ed +.Dl "p 1 165 1 2503871" .Pp -.It Xo -.Ic a -.Ar slice -.Xc +.It Ic a Ar slice Make .Ar slice -the active slice. Can occur anywhere in the config file, but only +the active slice. +Can occur anywhere in the config file, but only one must be present. .Pp Example: to make slice 1 the active slice: -.Bd -literal -offset indent -a 1 -.Ed +.Pp +.Dl "a 1" .El .Sh FILES -.Bl -tag -width /boot/mbr -compact +.Bl -tag -width ".Pa /boot/mbr" -compact .It Pa /boot/mbr -The default boot code +The default boot code. .El .Sh SEE ALSO .Xr boot0cfg 8 , @@ -417,16 +436,18 @@ The default boot code .Xr newfs 8 .Sh BUGS The default boot code will not necessarily handle all slice types -correctly, in particular those introduced since MS-DOS 6.x. +correctly, in particular those introduced since +.Tn MS-DOS +6.x. .Pp -The entire program should be made more user-friendly. +The entire utility should be made more user-friendly. .Pp Most users new to .Fx do not understand the difference between -.Ar slice +.Dq slice and -.Ar partition +.Dq partition , causing difficulty to adjust. .Pp You cannot use this command to completely dedicate a disk to