Add support for adding empty partition entries. I.e. skip partition
numbers or names. This gives more control over the actual layout and helps to construct BSD disklabels with /usr or /var at dedicated partitions. Obtained from: Juniper Networks, Inc. MFC after: 3 days Relnotes: yes
This commit is contained in:
parent
017717d87f
commit
752bf46955
@ -24,7 +24,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 4, 2014
|
||||
.Dd September 12, 2014
|
||||
.Dt MKIMG 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -171,6 +171,25 @@ utility as follows:
|
||||
.Dl % mkimg -s mbr -b /boot/mbr -p freebsd:-'mkimg -s bsd -b /boot/boot \
|
||||
-p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::1G' -o mbr-bsd.img
|
||||
.Pp
|
||||
To accomodate the need to have partitions named or numbered in a certain
|
||||
way, the
|
||||
.Nm
|
||||
utility allows for the specification of empty partitions.
|
||||
For example, to create an image that is compatible with partition layouts
|
||||
found in
|
||||
.Pa /etc/disktab ,
|
||||
the 'd' partition often needs to be skipped.
|
||||
This is accomplished by inserting an unused partition after the first 2
|
||||
partition specifications.
|
||||
It is worth noting at this time that the BSD scheme will automatically
|
||||
skip the 'c' partition by virtue of it referring to the entire disk.
|
||||
To create an image that is compatible with the qp120at disk, use the
|
||||
.Nm
|
||||
utility as follows:
|
||||
.Dl % mkimg -s bsd -b /boot/boot -p freebsd-ufs:=root-file-system.ufs \
|
||||
-p freebsd-swap::20M -p- -p- -p- -p- -p freebsd-ufs:=usr-file-system.ufs \
|
||||
-o bsd.img
|
||||
.Pp
|
||||
For partitioning schemes that feature partition labels, the
|
||||
.Nm
|
||||
utility supports assigning labels to the partitions specified.
|
||||
|
@ -101,6 +101,7 @@ usage(const char *why)
|
||||
"are determined\n\t\t\t\t by the named file\n");
|
||||
fprintf(stderr, "\t<t>[/<l>]:-<cmd>\t- partition content and size "
|
||||
"are taken from\n\t\t\t\t the output of the command to run\n");
|
||||
fprintf(stderr, "\t-\t\t\t- unused partition entry\n");
|
||||
fprintf(stderr, "\t where:\n");
|
||||
fprintf(stderr, "\t\t<t>\t- scheme neutral partition type\n");
|
||||
fprintf(stderr, "\t\t<l>\t- optional scheme-dependent partition "
|
||||
@ -140,6 +141,9 @@ pwr_of_two(u_int nr)
|
||||
* '-' contents holds a command to run; the output of
|
||||
* which is the contents of the partition.
|
||||
* contents the specification of a partition's contents
|
||||
*
|
||||
* A specification that is a single dash indicates an unused partition
|
||||
* entry.
|
||||
*/
|
||||
static int
|
||||
parse_part(const char *spec)
|
||||
@ -149,6 +153,11 @@ parse_part(const char *spec)
|
||||
size_t len;
|
||||
int error;
|
||||
|
||||
if (strcmp(spec, "-") == 0) {
|
||||
nparts++;
|
||||
return (0);
|
||||
}
|
||||
|
||||
part = calloc(1, sizeof(struct part));
|
||||
if (part == NULL)
|
||||
return (ENOMEM);
|
||||
|
Loading…
Reference in New Issue
Block a user