From 22a571d08cae288f78b8077e0b14ed399b44a2e3 Mon Sep 17 00:00:00 2001 From: trhodes Date: Thu, 18 Apr 2002 16:25:18 +0000 Subject: [PATCH] Fix the fdisk(8) manual page. s/partition/slice/ in fdisk.8 fix a bug in fdisk(8) where it did not honer -t when using -I PR: 36563 and 35688 Submitted by: bde Reviewed by: bde --- sbin/fdisk/fdisk.8 | 217 +++++++++++++++++++++++---------------------- sbin/fdisk/fdisk.c | 10 +-- 2 files changed, 115 insertions(+), 112 deletions(-) diff --git a/sbin/fdisk/fdisk.8 b/sbin/fdisk/fdisk.8 index 03e2c7a5f822..491eb228d314 100644 --- a/sbin/fdisk/fdisk.8 +++ b/sbin/fdisk/fdisk.8 @@ -5,7 +5,7 @@ .Os .Sh NAME .Nm fdisk -.Nd PC partition table maintenance program +.Nd PC slice table maintenance program .Sh SYNOPSIS .Nm .Op Fl BIaistu @@ -21,37 +21,37 @@ 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, +a slice table, and a magic number. -BIOS partitions can be used to break the disk up into several pieces. +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 partition table to determine which -partition is marked +0 boot code then searches the slice table to determine which +slice is marked .Em active . This boot code then brings in the bootstrap from the .Em active -partition and, if marked bootable, runs it. +slice and, if marked bootable, runs it. Under DOS, -you can have one or more partitions with one +you can have one or more slices with one .Em active . The DOS .Nm -program can be used to divide space on the disk into partitions and set one +program can be used to divide space on the disk into slices and set one .Em active . .Sh DESCRIPTION The .Fx -program -.Nm +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 +display slice information or to interactively edit the slice +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: .It Fl a -Change the active partition only. Ignored if +Change the active slice only. Ignored if .Fl f is given. .It Fl b Ar bootcode @@ -65,13 +65,13 @@ if .Fl f is given. .It Fl f Ar configfile -Set partition values using the file +Set slice values using the file .Ar configfile . The .Ar configfile -always modifies existing partitions, unless +always modifies existing slices, unless .Fl i -is also given, in which case all existing partitions are deleted (marked +is also given, in which case all existing slices are deleted (marked as "unused") before the .Ar configfile is read. The @@ -85,7 +85,7 @@ below, for file syntax. .Em WARNING : when .Fl f -is used, you are not asked if you really want to write the partition +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 Initialize sector 0 of the disk. This implies @@ -95,15 +95,15 @@ unless is given. .It Fl I Initialize the contents of sector 0 -with one +for 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 +Test mode; do not write slice values. Generally used with the .Fl f -option to see what would be written to the partition 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 @@ -114,7 +114,7 @@ Be verbose. When .Fl f is used, .Nm -prints out the partition table that is written to the disk. +prints out the slice table that is written to the disk. .It Fl 1234 Operate on a single fdisk entry only. Ignored if .Fl f @@ -162,51 +162,50 @@ An example follows: end: cyl 197/ sector 33/ head 14 .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) +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" -is used to label the partition. +is used to label the slice. .Fx reserves the magic number 165 decimal (A5 in hex). .It Em start No and Em size fields provide the start address -and size of a partition in sectors. +and size of a slice in sectors. .It Em "flag 80" -specifies that this is the active partition. +specifies that this is the active slice. .It Em cyl , sector No and Em head -fields are used to specify the beginning address -and end address for the partition. +fields are used to specify the beginning and end addresses of the slice. .It Em Note : these numbers are calculated using BIOS's understanding of the disk geometry and saved in the bootblock. .El .Pp -The flags +The .Fl i -or +and .Fl u -are used to indicate that the partition data is to be updated, unless the +flags are used to indicate that the slice data is to be updated. +Unless the .Fl f -option is used. If the -.Fl f -option is not used, the +option is also given, .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. +will enter a conversational mode. +In this mode, no changes will be written to disk unless you explicitly tell +.Nm +to. .Pp -It displays each partition -and ask if you want to edit it. +.Nm Fdisk +will display each slice and ask whether 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. +will step through each field, show you the old value, +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. .Pp @@ -214,66 +213,67 @@ Getting the .Em cyl , sector , and .Em head -fields correct is tricky. -So by default, +fields correct is tricky, so by default, they will be calculated for you; -you can specify them if you choose. +you can specify them if you choose to though. .Pp -After all the partitions are processed, +After all the slices 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. +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. .Pp The difference between the .Fl u -flag and +and .Fl i -flag is that +flags is that the .Fl u -flag just edits the fields as they appear on the disk. -While the +flag just edits (updates) 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 -.Fx ; +it will set up the last BIOS slice to use the whole disk for +.Fx 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 +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 that use geometry translation under the BIOS. .Pp If you hand craft your disk layout, please make sure that the .Fx -partition starts on a cylinder boundary. +slice 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. +Editing an existing slice will most likely result in the loss of +all data in that slice. .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. +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 +.Nm +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 +option is given, a disk's slice 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: +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 .Ic # @@ -286,7 +286,7 @@ Lines beginning with a "#" are comments and are ignored. .Ar spec2 .Ar spec3 .Xc -Set the BIOS geometry used in partition calculations. There must be +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 @@ -309,7 +309,7 @@ Set the number of sectors/track to 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 +This line must occur before any lines that specify slice information. .Pp It is an error if the following is not true: @@ -320,11 +320,11 @@ 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 output. Note that bootable +is not enforced, although a warning will be printed. Note that bootable .Fx -partitions (the "/" filesystem) must lie completely within the +slices (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. +Non-bootable slices do not have this restriction. .Pp Example (all of these are equivalent), for a disk with 1019 cylinders, 39 heads, and 63 sectors: @@ -335,13 +335,13 @@ g s63 h39 c1019 .Ed .It Xo .Ic p -.Ar partition +.Ar slice .Ar type .Ar start .Ar length .Xc -Set the partition given by -.Ar partition +Set the slice given by +.Ar slice (1-4) to type .Ar type , starting at sector @@ -350,24 +350,24 @@ 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 +Only those slices explicitly mentioned by these lines are modified; +any slice not referenced by a "p" line will not be modified. +However, if an invalid slice table is present, or the .Fl i -option is specified, all existing partition entries will be cleared +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 partition information. If multiple partitions need to be -set, multiple "p" lines must be specified; one for each partition. +explicitly set slice information. If multiple slices need to be +set, multiple "p" lines must be specified; one for each slice. .Pp -These partition lines must occur after any geometry specification lines, +These slice lines must occur after any geometry specification lines, if one is present. .Pp The .Ar type is 165 for .Fx -partitions. Specifying a partition type of zero is -the same as clearing the partition and marking it as unused; however, +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 .Ar start and @@ -377,14 +377,14 @@ 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: +Example: to clear slice 4 and mark it as unused: .Bd -literal -offset indent p 4 0 0 0 .Ed .Pp -Example: to set partition 1 to a +Example: to set slice 1 to a .Fx -partition, starting at sector 1 +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 @@ -394,14 +394,14 @@ p 1 165 1 2503871 .Pp .It Xo .Ic a -.Ar partition +.Ar slice .Xc Make -.Ar partition -the active partition. Can occur anywhere in the config file, but only +.Ar slice +the active slice. Can occur anywhere in the config file, but only one must be present. .Pp -Example: to make partition 1 the active partition: +Example: to make slice 1 the active slice: .Bd -literal -offset indent a 1 .Ed @@ -413,18 +413,21 @@ The default boot code .El .Sh SEE ALSO .Xr boot0cfg 8 , -.Xr disklabel 8 +.Xr disklabel 8 , +.Xr newfs 8 .Sh BUGS -The default boot code will not necessarily handle all partition types +The default boot code will not necessarily handle all slice 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. +Most users new to +.Fx +do not understand the difference between +.Ar slice +and +.Ar partition +causing difficulty to adjust. .Pp You cannot use this command to completely dedicate a disk to .Fx . diff --git a/sbin/fdisk/fdisk.c b/sbin/fdisk/fdisk.c index d2726ae55566..7be1cd846dbb 100644 --- a/sbin/fdisk/fdisk.c +++ b/sbin/fdisk/fdisk.c @@ -119,7 +119,7 @@ static char *b_flag = NULL; /* path to boot code */ static int i_flag = 0; /* replace partition data */ static int u_flag = 0; /* update partition data */ static int s_flag = 0; /* Print a summary and exit */ -static int t_flag = 0; /* test only, if f_flag is given */ +static int t_flag = 0; /* test only */ static char *f_flag = NULL; /* Read config info from file */ static int v_flag = 0; /* Be verbose */ @@ -349,11 +349,11 @@ main(int argc, char *argv[]) partp->dp_start = dos_sectors; partp->dp_size = (disksecs / dos_cylsecs) * dos_cylsecs - dos_sectors; - dos(partp); if (v_flag) print_s0(-1); - write_s0(); + if (!t_flag) + write_s0(); exit(0); } if (f_flag) { @@ -390,12 +390,12 @@ main(int argc, char *argv[]) change_code(); if (u_flag || a_flag || B_flag) { - if (!t_flag) { + if (!t_flag) { printf("\nWe haven't changed the partition table yet. "); printf("This is your last chance.\n"); } print_s0(-1); - if (!t_flag) { + if (!t_flag) { if (ok("Should we write new partition table?")) write_s0(); } else {