Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2014 15:22:57 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r271967 - stable/10/usr.bin/mkimg
Message-ID:  <201409221522.s8MFMvLX051287@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Mon Sep 22 15:22:57 2014
New Revision: 271967
URL: http://svnweb.freebsd.org/changeset/base/271967

Log:
  MFC 271482: Add support for adding empty partition entries.
  
  Relnotes:	yes
  Approved by:	re@ (gjb)

Modified:
  stable/10/usr.bin/mkimg/mkimg.1
  stable/10/usr.bin/mkimg/mkimg.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/mkimg/mkimg.1
==============================================================================
--- stable/10/usr.bin/mkimg/mkimg.1	Mon Sep 22 15:08:58 2014	(r271966)
+++ stable/10/usr.bin/mkimg/mkimg.1	Mon Sep 22 15:22:57 2014	(r271967)
@@ -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.

Modified: stable/10/usr.bin/mkimg/mkimg.c
==============================================================================
--- stable/10/usr.bin/mkimg/mkimg.c	Mon Sep 22 15:08:58 2014	(r271966)
+++ stable/10/usr.bin/mkimg/mkimg.c	Mon Sep 22 15:22:57 2014	(r271967)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409221522.s8MFMvLX051287>