Number partitions 1-4, not 0-3.

Any existing config files (using the -f option) will need
to be changed although using the old files will usually result
in an error (partition 0 is invalid).
This commit is contained in:
Brian Somers 1997-06-03 21:24:39 +00:00
parent 7d6b68c4de
commit 4ddd60b905
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=26421
4 changed files with 60 additions and 60 deletions

View File

@ -9,7 +9,7 @@
.Op Fl i
.Op Fl u
.Op Fl a
.Op Fl 0123
.Op Fl 1234
.Op Ar disk
.Bl -tag -width time
.Nm fdisk
@ -66,7 +66,7 @@ is given.
Change the active partition only. Ignored if
.Fl f
is given.
.It Fl 0123
.It Fl 1234
Operate on a single fdisk entry only. Ignored if
.Fl f
is given.
@ -133,19 +133,19 @@ An example follows:
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 0 is:
The data for partition 1 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 495, size 380160 (185 Meg), flag 0
beg: cyl 1/ sector 1/ head 0;
end: cyl 768/ sector 33/ head 14
The data for partition 1 is:
The data for partition 2 is:
sysid 164,(unknown)
start 378180, size 2475 (1 Meg), flag 0
beg: cyl 764/ sector 1/ head 0;
end: cyl 768/ sector 33/ head 14
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach)
start 380656, size 224234 (109 Meg), flag 80
beg: cyl 769/ sector 2/ head 0;
@ -330,7 +330,7 @@ Example (all of these are equivalent), for a disk with 1019 cylinders,
.Xc
Set the partition given by
.Ar partition
(0-3) to type
(1-4) to type
.Ar type ,
starting at sector
.Ar start
@ -363,18 +363,18 @@ 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 3 and mark it as unused:
Example: to clear partition 4 and mark it as unused:
.Pp
.nf
p 3 0 0 0
p 4 0 0 0
.fi
.Pp
Example: to set partition 0 to a FreeBSD partition, starting at sector 1
Example: to set partition 1 to a FreeBSD 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 0 165 1 2503871
p 1 165 1 2503871
.fi
.It Xo
.Ic a
@ -385,10 +385,10 @@ Make
the active partition. Can occur anywhere in the config file, but only
one must be present.
.Pp
Example: to make partition 0 the active partition:
Example: to make partition 1 the active partition:
.Pp
.nf
a 0
a 1
.fi
.El

View File

@ -246,9 +246,6 @@ main(int argc, char *argv[])
else { register int flag;
for ( ; (flag = *token++) ; ) {
switch (flag) {
case '0':
partition = 0;
break;
case '1':
partition = 1;
break;
@ -258,6 +255,9 @@ main(int argc, char *argv[])
case '3':
partition = 3;
break;
case '4':
partition = 4;
break;
case 'a':
a_flag = 1;
break;
@ -376,7 +376,7 @@ main(int argc, char *argv[])
printf("Warning: BIOS sector numbering starts with sector 1\n");
printf("Information from DOS bootblock is:\n");
if (partition == -1)
for (i = 0; i < NDOSPART; i++)
for (i = 1; i <= NDOSPART; i++)
change_part(i);
else
change_part(partition);
@ -406,7 +406,7 @@ main(int argc, char *argv[])
exit(0);
usage:
printf("fdisk {-a|-i|-u} [-f <config file> [-t] [-v]] [-{0,1,2,3}] [disk]\n");
printf("fdisk {-a|-i|-u} [-f <config file> [-t] [-v]] [-{1,2,3,4}] [disk]\n");
return(1);
}
@ -418,7 +418,7 @@ int i;
print_params();
printf("Information from DOS bootblock is:\n");
if (which == -1)
for (i = 0; i < NDOSPART; i++)
for (i = 1; i <= NDOSPART; i++)
printf("%d: ", i), print_part(i);
else
print_part(which);
@ -432,7 +432,7 @@ print_part(int i)
struct dos_partition *partp;
u_int64_t part_mb;
partp = ((struct dos_partition *) &mboot.parts) + i;
partp = ((struct dos_partition *) &mboot.parts) + i - 1;
if (!bcmp(partp, &mtpart, sizeof (struct dos_partition))) {
printf("<UNUSED>\n");
@ -490,7 +490,7 @@ unsigned long size = disksecs - start;
static void
change_part(int i)
{
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i - 1;
printf("The data for partition %d is:\n", i);
print_part(i);
@ -500,9 +500,9 @@ struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
if (i_flag) {
bzero((char *)partp, sizeof (struct dos_partition));
if (i == 3) {
if (i == 4) {
init_sector0(1);
printf("\nThe static data for the DOS partition 3 has been reinitialized to:\n");
printf("\nThe static data for the DOS partition 4 has been reinitialized to:\n");
print_part(i);
}
}
@ -563,7 +563,7 @@ static void
change_active(int which)
{
int i;
int active = 3, tmp;
int active = 4, tmp;
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts);
if (a_flag && which != -1)
@ -575,8 +575,8 @@ struct dos_partition *partp = ((struct dos_partition *) &mboot.parts);
while (!ok("Are you happy with this choice"));
for (i = 0; i < NDOSPART; i++)
partp[i].dp_flag = 0;
if (active >= 0 && active < NDOSPART)
partp[active].dp_flag = ACTIVE;
if (active > 0 && active <= NDOSPART)
partp[active-1].dp_flag = ACTIVE;
}
void
@ -1087,13 +1087,13 @@ process_partition(command)
break;
}
partition = command->args[0].arg_val;
if (partition < 0 || partition > 3)
if (partition < 1 || partition > 4)
{
fprintf(stderr, "%s: ERROR line %d: invalid partition number %d\n",
name, current_line_number, partition);
break;
}
partp = ((struct dos_partition *) &mboot.parts) + partition;
partp = ((struct dos_partition *) &mboot.parts) + partition - 1;
bzero((char *)partp, sizeof (struct dos_partition));
partp->dp_typ = command->args[1].arg_val;
partp->dp_start = command->args[2].arg_val;
@ -1198,7 +1198,7 @@ process_active(command)
break;
}
partition = command->args[0].arg_val;
if (partition < 0 || partition > 3)
if (partition < 1 || partition > 4)
{
fprintf(stderr, "%s: ERROR line %d: invalid partition number %d\n",
name, current_line_number, partition);
@ -1210,7 +1210,7 @@ process_active(command)
partp = ((struct dos_partition *) &mboot.parts);
for (i = 0; i < NDOSPART; i++)
partp[i].dp_flag = 0;
partp[partition].dp_flag = ACTIVE;
partp[partition-1].dp_flag = ACTIVE;
status = 1;
break;

View File

@ -9,7 +9,7 @@
.Op Fl i
.Op Fl u
.Op Fl a
.Op Fl 0123
.Op Fl 1234
.Op Ar disk
.Bl -tag -width time
.Nm fdisk
@ -66,7 +66,7 @@ is given.
Change the active partition only. Ignored if
.Fl f
is given.
.It Fl 0123
.It Fl 1234
Operate on a single fdisk entry only. Ignored if
.Fl f
is given.
@ -133,19 +133,19 @@ An example follows:
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 0 is:
The data for partition 1 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 495, size 380160 (185 Meg), flag 0
beg: cyl 1/ sector 1/ head 0;
end: cyl 768/ sector 33/ head 14
The data for partition 1 is:
The data for partition 2 is:
sysid 164,(unknown)
start 378180, size 2475 (1 Meg), flag 0
beg: cyl 764/ sector 1/ head 0;
end: cyl 768/ sector 33/ head 14
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach)
start 380656, size 224234 (109 Meg), flag 80
beg: cyl 769/ sector 2/ head 0;
@ -330,7 +330,7 @@ Example (all of these are equivalent), for a disk with 1019 cylinders,
.Xc
Set the partition given by
.Ar partition
(0-3) to type
(1-4) to type
.Ar type ,
starting at sector
.Ar start
@ -363,18 +363,18 @@ 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 3 and mark it as unused:
Example: to clear partition 4 and mark it as unused:
.Pp
.nf
p 3 0 0 0
p 4 0 0 0
.fi
.Pp
Example: to set partition 0 to a FreeBSD partition, starting at sector 1
Example: to set partition 1 to a FreeBSD 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 0 165 1 2503871
p 1 165 1 2503871
.fi
.It Xo
.Ic a
@ -385,10 +385,10 @@ Make
the active partition. Can occur anywhere in the config file, but only
one must be present.
.Pp
Example: to make partition 0 the active partition:
Example: to make partition 1 the active partition:
.Pp
.nf
a 0
a 1
.fi
.El

View File

@ -246,9 +246,6 @@ main(int argc, char *argv[])
else { register int flag;
for ( ; (flag = *token++) ; ) {
switch (flag) {
case '0':
partition = 0;
break;
case '1':
partition = 1;
break;
@ -258,6 +255,9 @@ main(int argc, char *argv[])
case '3':
partition = 3;
break;
case '4':
partition = 4;
break;
case 'a':
a_flag = 1;
break;
@ -376,7 +376,7 @@ main(int argc, char *argv[])
printf("Warning: BIOS sector numbering starts with sector 1\n");
printf("Information from DOS bootblock is:\n");
if (partition == -1)
for (i = 0; i < NDOSPART; i++)
for (i = 1; i <= NDOSPART; i++)
change_part(i);
else
change_part(partition);
@ -406,7 +406,7 @@ main(int argc, char *argv[])
exit(0);
usage:
printf("fdisk {-a|-i|-u} [-f <config file> [-t] [-v]] [-{0,1,2,3}] [disk]\n");
printf("fdisk {-a|-i|-u} [-f <config file> [-t] [-v]] [-{1,2,3,4}] [disk]\n");
return(1);
}
@ -418,7 +418,7 @@ int i;
print_params();
printf("Information from DOS bootblock is:\n");
if (which == -1)
for (i = 0; i < NDOSPART; i++)
for (i = 1; i <= NDOSPART; i++)
printf("%d: ", i), print_part(i);
else
print_part(which);
@ -432,7 +432,7 @@ print_part(int i)
struct dos_partition *partp;
u_int64_t part_mb;
partp = ((struct dos_partition *) &mboot.parts) + i;
partp = ((struct dos_partition *) &mboot.parts) + i - 1;
if (!bcmp(partp, &mtpart, sizeof (struct dos_partition))) {
printf("<UNUSED>\n");
@ -490,7 +490,7 @@ unsigned long size = disksecs - start;
static void
change_part(int i)
{
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i - 1;
printf("The data for partition %d is:\n", i);
print_part(i);
@ -500,9 +500,9 @@ struct dos_partition *partp = ((struct dos_partition *) &mboot.parts) + i;
if (i_flag) {
bzero((char *)partp, sizeof (struct dos_partition));
if (i == 3) {
if (i == 4) {
init_sector0(1);
printf("\nThe static data for the DOS partition 3 has been reinitialized to:\n");
printf("\nThe static data for the DOS partition 4 has been reinitialized to:\n");
print_part(i);
}
}
@ -563,7 +563,7 @@ static void
change_active(int which)
{
int i;
int active = 3, tmp;
int active = 4, tmp;
struct dos_partition *partp = ((struct dos_partition *) &mboot.parts);
if (a_flag && which != -1)
@ -575,8 +575,8 @@ struct dos_partition *partp = ((struct dos_partition *) &mboot.parts);
while (!ok("Are you happy with this choice"));
for (i = 0; i < NDOSPART; i++)
partp[i].dp_flag = 0;
if (active >= 0 && active < NDOSPART)
partp[active].dp_flag = ACTIVE;
if (active > 0 && active <= NDOSPART)
partp[active-1].dp_flag = ACTIVE;
}
void
@ -1087,13 +1087,13 @@ process_partition(command)
break;
}
partition = command->args[0].arg_val;
if (partition < 0 || partition > 3)
if (partition < 1 || partition > 4)
{
fprintf(stderr, "%s: ERROR line %d: invalid partition number %d\n",
name, current_line_number, partition);
break;
}
partp = ((struct dos_partition *) &mboot.parts) + partition;
partp = ((struct dos_partition *) &mboot.parts) + partition - 1;
bzero((char *)partp, sizeof (struct dos_partition));
partp->dp_typ = command->args[1].arg_val;
partp->dp_start = command->args[2].arg_val;
@ -1198,7 +1198,7 @@ process_active(command)
break;
}
partition = command->args[0].arg_val;
if (partition < 0 || partition > 3)
if (partition < 1 || partition > 4)
{
fprintf(stderr, "%s: ERROR line %d: invalid partition number %d\n",
name, current_line_number, partition);
@ -1210,7 +1210,7 @@ process_active(command)
partp = ((struct dos_partition *) &mboot.parts);
for (i = 0; i < NDOSPART; i++)
partp[i].dp_flag = 0;
partp[partition].dp_flag = ACTIVE;
partp[partition-1].dp_flag = ACTIVE;
status = 1;
break;