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:
parent
7d6b68c4de
commit
4ddd60b905
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user