summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authormanu <manu@FreeBSD.org>2018-02-07 15:32:31 +0000
committermanu <manu@FreeBSD.org>2018-02-07 15:32:31 +0000
commitea0ddd373b35cb21f4575497ac41b047997d7de6 (patch)
treefbef5b8560a3b502d1ce2b630b744e881ac1bdc4 /usr.bin
parent95f395e1bf1d833593f8e7531972a9a3f4ffb16d (diff)
downloadFreeBSD-src-ea0ddd373b35cb21f4575497ac41b047997d7de6.zip
FreeBSD-src-ea0ddd373b35cb21f4575497ac41b047997d7de6.tar.gz
MFC r306325, r306329-r306330, r306333, r306620-r306622, r307387, r307544, r307550, r318137, r319125, r319295
r306325 by marcel: Replace the use of linker sets with constructors for both the formats and schemes. Formats and schemes are registered at runtime now, rather than collected at link time. r306329 by marcel: Eliminate the use of EDOOFUS. The error code was used to signal programming errors, but is really a poor substitute for assert. And less portable as well. r306330 by marcel: Avoid depending on the <sys/endian.h> header for le*enc and be*enc. Not only is the header unportable, the encoding/decoding functions are as well. Instead, duplicate the handful of small inlines we need into a private header called endian.h. Aside: an alternative approach is to move the encoding/decoding functions to a separate system header. While the header is still nonportable, such an approach would make it possible to re-use the definitions by playing games with include paths. This may be the preferred approach if more (build) utilities need this. This change does not preclude that. In fact, it makes it easier. r306333 by marcel: Portability changes: 1. macOS nor Linux have MAP_NOCORE nor MAP_NOSYNC. Define as 0. 2. macOS doesn't have SEEK_DATA nor SEEK_HOLE. Define as -1 so that lseek will return -1 (with errno set to EINVAL). 3. gcc correctly warns that error is assigned but not used in image_copyout_region(). Fix by returning on the first error. r306620 by marcel: Replace STAILQ with TAILQ. TAILQs are portable enough that they can be used on both macOS and Linux. STAILQs are not. In particular, STAILQ_LAST does not next on Linux. Since neither STAILQ_FOREACH_SAFE nor TAILQ_FOREACH_SAFE exist on Linux, replace its use with a regular TAILQ_FOREACH. The _SAFE variant was only used for having the next pointer in a local variable. r306621 by marcel: Prefer <stdint.h> over <sys/types.h>. While here remove redundant inclusion of <sys/queue.h>. Move the inclusion of the disk partitioning headers out of order and inbetween standard headers and local header. They will change in a subsequent commit. r306622 by marcel: Replace OFF_MAX with INT64_MAX. The former is defined on Linux. r307387 by marcel: Switch to using the portable partition scheme headers. r307544 by marcel: o Provide a private definition for UUIDs (mkimg_uuid_t) because UUIDs are not portable. o Move mkimg_uuid() to a new file and merge both gpt_uuid_enc() and vhd_uuid_enc() into a single mkimg_uuid_enc() that lives in the same file. o Move the OS-specific implementation of generating a UUID to osdep_uuidgen() and provide the implementations for FreeBSD, macOS and Linux. o Expect the partitioning scheme headers to be found by having a search to the directory in which the headers live. This avoids conflicts on non-FreeBSD machines. r307550 by imp: Add a new flag to mkimg (-a num) to specify the active partition for those partitioning schemes that have this concept. Implement it as an override for mbr's setting 0x80 in the flags for the first partition when we have boot code. Differential Revision: https://reviews.freebsd.org/D4403 r318137: mkimg: Add -C argument to specify maximum capacity Add a -C option to specify a maximum capacity for the final image file. It is useful to control the size of the generated image for sdcard or when we will add dynamic size partition. Add --capacity which is a shorthand to define min and max capacity at the same time. Reviewed by: bapt, marcel, wblock (manpages) Sponsored by: Gandi.net Differential Revision: https://reviews.freebsd.org/D10509 r319125: mkimg: Correct an off by one error in the PMBR size The PMBR last sector should be number of sector - 1 (As stated in UEFI Spec 2.6 page 118 table 17). This fixes warning printed by linux tools like parted or fdisk. Sponsored by: Gandi.net r319295 by ngie: Update the usr.bin/mkimg golden test output files after ^/head@r319125 ^/head@r319125 changed the location of the backup pmbr, requiring the output files to be regenerated, since they're binary disk dumps. The output files were regenerated with "make rebase"--fixed in ^/head@r319294. MFC with: r319125, r319294 PR: 219673 Sponsored by: Dell EMC Isilon
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/mkimg/Makefile5
-rw-r--r--usr.bin/mkimg/apm.c16
-rw-r--r--usr.bin/mkimg/bsd.c41
-rw-r--r--usr.bin/mkimg/ebr.c19
-rw-r--r--usr.bin/mkimg/endian.h106
-rw-r--r--usr.bin/mkimg/format.c25
-rw-r--r--usr.bin/mkimg/format.h13
-rw-r--r--usr.bin/mkimg/gpt.c63
-rw-r--r--usr.bin/mkimg/image.c58
-rw-r--r--usr.bin/mkimg/mbr.c31
-rw-r--r--usr.bin/mkimg/mkimg.141
-rw-r--r--usr.bin/mkimg/mkimg.c107
-rw-r--r--usr.bin/mkimg/mkimg.h20
-rw-r--r--usr.bin/mkimg/pc98.c22
-rw-r--r--usr.bin/mkimg/qcow.c11
-rw-r--r--usr.bin/mkimg/raw.c3
-rw-r--r--usr.bin/mkimg/scheme.c24
-rw-r--r--usr.bin/mkimg/scheme.h10
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu256
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu44
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu36
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu30
-rw-r--r--usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu166
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu44
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu36
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu30
-rw-r--r--usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu166
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu256
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu44
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu29
-rw-r--r--usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu166
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu44
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu22
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu38
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu28
-rw-r--r--usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu168
-rw-r--r--usr.bin/mkimg/uuid.c125
-rw-r--r--usr.bin/mkimg/vhd.c28
-rw-r--r--usr.bin/mkimg/vmdk.c3
-rw-r--r--usr.bin/mkimg/vtoc8.c13
46 files changed, 1389 insertions, 1130 deletions
diff --git a/usr.bin/mkimg/Makefile b/usr.bin/mkimg/Makefile
index 6622fe4..836bed8 100644
--- a/usr.bin/mkimg/Makefile
+++ b/usr.bin/mkimg/Makefile
@@ -3,14 +3,15 @@
.include <src.opts.mk>
PROG= mkimg
-SRCS= format.c image.c mkimg.c scheme.c
+SRCS= format.c image.c mkimg.c scheme.c uuid.c
MAN= mkimg.1
-MKIMG_VERSION=20151211
+MKIMG_VERSION=20161016
mkimg.o: Makefile
CFLAGS+=-DMKIMG_VERSION=${MKIMG_VERSION}
CFLAGS+=-DSPARSE_WRITE
+CFLAGS+=-I${SRCTOP}/sys/sys/disk
# List of formats to support
SRCS+= \
diff --git a/usr.bin/mkimg/apm.c b/usr.bin/mkimg/apm.c
index de92cc0..7a4a47e 100644
--- a/usr.bin/mkimg/apm.c
+++ b/usr.bin/mkimg/apm.c
@@ -27,25 +27,19 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/apm.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/apm.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef APM_ENT_TYPE_APPLE_BOOT
-#define APM_ENT_TYPE_APPLE_BOOT "Apple_Bootstrap"
-#endif
-#ifndef APM_ENT_TYPE_FREEBSD_NANDFS
-#define APM_ENT_TYPE_FREEBSD_NANDFS "FreeBSD-nandfs"
-#endif
-
static struct mkimg_alias apm_aliases[] = {
{ ALIAS_FREEBSD, ALIAS_PTR2TYPE(APM_ENT_TYPE_FREEBSD) },
{ ALIAS_FREEBSD_BOOT, ALIAS_PTR2TYPE(APM_ENT_TYPE_APPLE_BOOT) },
@@ -91,7 +85,7 @@ apm_write(lba_t imgsz, void *bootcode __unused)
strncpy(ent->ent_type, APM_ENT_TYPE_SELF, sizeof(ent->ent_type));
strncpy(ent->ent_name, "Apple", sizeof(ent->ent_name));
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
ent = (void *)(buf + (part->index + 2) * secsz);
be16enc(&ent->ent_sig, APM_ENT_SIG);
be32enc(&ent->ent_pmblkcnt, nparts + 1);
diff --git a/usr.bin/mkimg/bsd.c b/usr.bin/mkimg/bsd.c
index 75e554f..ee66fe6 100644
--- a/usr.bin/mkimg/bsd.c
+++ b/usr.bin/mkimg/bsd.c
@@ -27,22 +27,19 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/disklabel.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/disklabel.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef FS_NANDFS
-#define FS_NANDFS 30
-#endif
-
static struct mkimg_alias bsd_aliases[] = {
{ ALIAS_FREEBSD_NANDFS, ALIAS_INT2TYPE(FS_NANDFS) },
{ ALIAS_FREEBSD_SWAP, ALIAS_INT2TYPE(FS_SWAP) },
@@ -57,7 +54,7 @@ bsd_metadata(u_int where, lba_t blk)
{
if (where == SCHEME_META_IMG_START)
- blk += BBSIZE / secsz;
+ blk += BSD_BOOTBLOCK_SIZE / secsz;
else if (where == SCHEME_META_IMG_END)
blk = round_cylinder(blk);
else
@@ -75,21 +72,21 @@ bsd_write(lba_t imgsz, void *bootcode)
int bsdparts, error, n;
uint16_t checksum;
- buf = malloc(BBSIZE);
+ buf = malloc(BSD_BOOTBLOCK_SIZE);
if (buf == NULL)
return (ENOMEM);
if (bootcode != NULL) {
- memcpy(buf, bootcode, BBSIZE);
+ memcpy(buf, bootcode, BSD_BOOTBLOCK_SIZE);
memset(buf + secsz, 0, sizeof(struct disklabel));
} else
- memset(buf, 0, BBSIZE);
+ memset(buf, 0, BSD_BOOTBLOCK_SIZE);
bsdparts = nparts + 1; /* Account for c partition */
- if (bsdparts < MAXPARTITIONS)
- bsdparts = MAXPARTITIONS;
+ if (bsdparts < BSD_NPARTS_MIN)
+ bsdparts = BSD_NPARTS_MIN;
d = (void *)(buf + secsz);
- le32enc(&d->d_magic, DISKMAGIC);
+ le32enc(&d->d_magic, BSD_MAGIC);
le32enc(&d->d_secsize, secsz);
le32enc(&d->d_nsectors, nsecs);
le32enc(&d->d_ntracks, nheads);
@@ -97,14 +94,14 @@ bsd_write(lba_t imgsz, void *bootcode)
le32enc(&d->d_secpercyl, nsecs * nheads);
le32enc(&d->d_secperunit, imgsz);
le16enc(&d->d_rpm, 3600);
- le32enc(&d->d_magic2, DISKMAGIC);
+ le32enc(&d->d_magic2, BSD_MAGIC);
le16enc(&d->d_npartitions, bsdparts);
- le32enc(&d->d_bbsize, BBSIZE);
+ le32enc(&d->d_bbsize, BSD_BOOTBLOCK_SIZE);
- dp = &d->d_partitions[RAW_PART];
+ dp = &d->d_partitions[BSD_PART_RAW];
le32enc(&dp->p_size, imgsz);
- STAILQ_FOREACH(part, &partlist, link) {
- n = part->index + ((part->index >= RAW_PART) ? 1 : 0);
+ TAILQ_FOREACH(part, &partlist, link) {
+ n = part->index + ((part->index >= BSD_PART_RAW) ? 1 : 0);
dp = &d->d_partitions[n];
le32enc(&dp->p_size, part->size);
le32enc(&dp->p_offset, part->block);
@@ -120,7 +117,7 @@ bsd_write(lba_t imgsz, void *bootcode)
checksum ^= le16dec(p);
le16enc(&d->d_checksum, checksum);
- error = image_write(0, buf, BBSIZE / secsz);
+ error = image_write(0, buf, BSD_BOOTBLOCK_SIZE / secsz);
free(buf);
return (error);
}
@@ -131,8 +128,8 @@ static struct mkimg_scheme bsd_scheme = {
.aliases = bsd_aliases,
.metadata = bsd_metadata,
.write = bsd_write,
- .nparts = 19,
- .bootcode = BBSIZE,
+ .nparts = BSD_NPARTS_MAX - 1,
+ .bootcode = BSD_BOOTBLOCK_SIZE,
.maxsecsz = 512
};
diff --git a/usr.bin/mkimg/ebr.c b/usr.bin/mkimg/ebr.c
index 526c494..a42fe1b 100644
--- a/usr.bin/mkimg/ebr.c
+++ b/usr.bin/mkimg/ebr.c
@@ -27,27 +27,21 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/diskmbr.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/diskmbr.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef DOSPTYP_FAT16B
-#define DOSPTYP_FAT16B 0x06
-#endif
-#ifndef DOSPTYP_FAT32
-#define DOSPTYP_FAT32 0x0b
-#endif
-
static struct mkimg_alias ebr_aliases[] = {
- { ALIAS_FAT16B, ALIAS_INT2TYPE(DOSPTYP_FAT16B) },
+ { ALIAS_FAT16B, ALIAS_INT2TYPE(DOSPTYP_FAT16) },
{ ALIAS_FAT32, ALIAS_INT2TYPE(DOSPTYP_FAT32) },
{ ALIAS_FREEBSD, ALIAS_INT2TYPE(DOSPTYP_386BSD) },
{ ALIAS_NONE, 0 }
@@ -88,7 +82,7 @@ ebr_write(lba_t imgsz __unused, void *bootcode __unused)
le16enc(ebr + DOSMAGICOFFSET, DOSMAGIC);
error = 0;
- STAILQ_FOREACH_SAFE(part, &partlist, link, next) {
+ TAILQ_FOREACH(part, &partlist, link) {
block = part->block - nsecs;
size = round_track(part->size);
dp = (void *)(ebr + DOSPARTOFF);
@@ -100,6 +94,7 @@ ebr_write(lba_t imgsz __unused, void *bootcode __unused)
le32enc(&dp->dp_size, size);
/* Add link entry */
+ next = TAILQ_NEXT(part, link);
if (next != NULL) {
size = round_track(next->size);
dp++;
diff --git a/usr.bin/mkimg/endian.h b/usr.bin/mkimg/endian.h
new file mode 100644
index 0000000..a8d3120
--- /dev/null
+++ b/usr.bin/mkimg/endian.h
@@ -0,0 +1,106 @@
+/*-
+ * Copyright (c) 2002 Thomas Moestl <tmm@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _MKIMG_ENDIAN_H_
+#define _MKIMG_ENDIAN_H_
+
+static __inline uint16_t
+be16dec(const void *pp)
+{
+ uint8_t const *p = (uint8_t const *)pp;
+
+ return ((p[0] << 8) | p[1]);
+}
+
+static __inline void
+be16enc(void *pp, uint16_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ p[0] = (u >> 8) & 0xff;
+ p[1] = u & 0xff;
+}
+
+static __inline void
+be32enc(void *pp, uint32_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ p[0] = (u >> 24) & 0xff;
+ p[1] = (u >> 16) & 0xff;
+ p[2] = (u >> 8) & 0xff;
+ p[3] = u & 0xff;
+}
+
+static __inline void
+be64enc(void *pp, uint64_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ be32enc(p, (uint32_t)(u >> 32));
+ be32enc(p + 4, (uint32_t)(u & 0xffffffffU));
+}
+
+static __inline uint16_t
+le16dec(const void *pp)
+{
+ uint8_t const *p = (uint8_t const *)pp;
+
+ return ((p[1] << 8) | p[0]);
+}
+
+static __inline void
+le16enc(void *pp, uint16_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ p[0] = u & 0xff;
+ p[1] = (u >> 8) & 0xff;
+}
+
+static __inline void
+le32enc(void *pp, uint32_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ p[0] = u & 0xff;
+ p[1] = (u >> 8) & 0xff;
+ p[2] = (u >> 16) & 0xff;
+ p[3] = (u >> 24) & 0xff;
+}
+
+static __inline void
+le64enc(void *pp, uint64_t u)
+{
+ uint8_t *p = (uint8_t *)pp;
+
+ le32enc(p, (uint32_t)(u & 0xffffffffU));
+ le32enc(p + 4, (uint32_t)(u >> 32));
+}
+
+#endif /* _MKIMG_ENDIAN_H_ */
diff --git a/usr.bin/mkimg/format.c b/usr.bin/mkimg/format.c
index a21b08a..00139eb 100644
--- a/usr.bin/mkimg/format.c
+++ b/usr.bin/mkimg/format.c
@@ -27,9 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/linker_set.h>
-#include <sys/queue.h>
#include <sys/stat.h>
#include <err.h>
#include <errno.h>
@@ -42,8 +39,24 @@ __FBSDID("$FreeBSD$");
#include "format.h"
#include "mkimg.h"
+static struct mkimg_format *first;
static struct mkimg_format *format;
+struct mkimg_format *
+format_iterate(struct mkimg_format *f)
+{
+
+ return ((f == NULL) ? first : f->next);
+}
+
+void
+format_register(struct mkimg_format *f)
+{
+
+ f->next = first;
+ first = f;
+}
+
int
format_resize(lba_t end)
{
@@ -56,10 +69,10 @@ format_resize(lba_t end)
int
format_select(const char *spec)
{
- struct mkimg_format *f, **iter;
+ struct mkimg_format *f;
- SET_FOREACH(iter, formats) {
- f = *iter;
+ f = NULL;
+ while ((f = format_iterate(f)) != NULL) {
if (strcasecmp(spec, f->name) == 0) {
format = f;
return (0);
diff --git a/usr.bin/mkimg/format.h b/usr.bin/mkimg/format.h
index aa00e6e..e50fe3d 100644
--- a/usr.bin/mkimg/format.h
+++ b/usr.bin/mkimg/format.h
@@ -29,21 +29,24 @@
#ifndef _MKIMG_FORMAT_H_
#define _MKIMG_FORMAT_H_
-#include <sys/linker_set.h>
-
struct mkimg_format {
+ struct mkimg_format *next;
const char *name;
const char *description;
int (*resize)(lba_t);
int (*write)(int);
};
-SET_DECLARE(formats, struct mkimg_format);
-#define FORMAT_DEFINE(nm) DATA_SET(formats, nm)
+#define FORMAT_DEFINE(nm) \
+static void format_register_##nm(void) __attribute__((constructor)); \
+static void format_register_##nm(void) { format_register(&nm); }
-int format_resize(lba_t);
+struct mkimg_format *format_iterate(struct mkimg_format *);
+void format_register(struct mkimg_format *);
int format_select(const char *);
struct mkimg_format *format_selected(void);
+
+int format_resize(lba_t);
int format_write(int);
#endif /* _MKIMG_FORMAT_H_ */
diff --git a/usr.bin/mkimg/gpt.c b/usr.bin/mkimg/gpt.c
index 678e636..ac207f1 100644
--- a/usr.bin/mkimg/gpt.c
+++ b/usr.bin/mkimg/gpt.c
@@ -27,37 +27,31 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/diskmbr.h>
-#include <sys/endian.h>
#include <sys/errno.h>
-#include <sys/gpt.h>
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <uuid.h>
+#include <sys/diskmbr.h>
+#include <sys/gpt.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef GPT_ENT_TYPE_FREEBSD_NANDFS
-#define GPT_ENT_TYPE_FREEBSD_NANDFS \
- {0x74ba7dd9,0xa689,0x11e1,0xbd,0x04,{0x00,0xe0,0x81,0x28,0x6a,0xcf}}
-#endif
-
-static uuid_t gpt_uuid_efi = GPT_ENT_TYPE_EFI;
-static uuid_t gpt_uuid_freebsd = GPT_ENT_TYPE_FREEBSD;
-static uuid_t gpt_uuid_freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT;
-static uuid_t gpt_uuid_freebsd_nandfs = GPT_ENT_TYPE_FREEBSD_NANDFS;
-static uuid_t gpt_uuid_freebsd_swap = GPT_ENT_TYPE_FREEBSD_SWAP;
-static uuid_t gpt_uuid_freebsd_ufs = GPT_ENT_TYPE_FREEBSD_UFS;
-static uuid_t gpt_uuid_freebsd_vinum = GPT_ENT_TYPE_FREEBSD_VINUM;
-static uuid_t gpt_uuid_freebsd_zfs = GPT_ENT_TYPE_FREEBSD_ZFS;
-static uuid_t gpt_uuid_mbr = GPT_ENT_TYPE_MBR;
-static uuid_t gpt_uuid_ms_basic_data = GPT_ENT_TYPE_MS_BASIC_DATA;
+static mkimg_uuid_t gpt_uuid_efi = GPT_ENT_TYPE_EFI;
+static mkimg_uuid_t gpt_uuid_freebsd = GPT_ENT_TYPE_FREEBSD;
+static mkimg_uuid_t gpt_uuid_freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT;
+static mkimg_uuid_t gpt_uuid_freebsd_nandfs = GPT_ENT_TYPE_FREEBSD_NANDFS;
+static mkimg_uuid_t gpt_uuid_freebsd_swap = GPT_ENT_TYPE_FREEBSD_SWAP;
+static mkimg_uuid_t gpt_uuid_freebsd_ufs = GPT_ENT_TYPE_FREEBSD_UFS;
+static mkimg_uuid_t gpt_uuid_freebsd_vinum = GPT_ENT_TYPE_FREEBSD_VINUM;
+static mkimg_uuid_t gpt_uuid_freebsd_zfs = GPT_ENT_TYPE_FREEBSD_ZFS;
+static mkimg_uuid_t gpt_uuid_mbr = GPT_ENT_TYPE_MBR;
+static mkimg_uuid_t gpt_uuid_ms_basic_data = GPT_ENT_TYPE_MS_BASIC_DATA;
static struct mkimg_alias gpt_aliases[] = {
{ ALIAS_EFI, ALIAS_PTR2TYPE(&gpt_uuid_efi) },
@@ -131,21 +125,6 @@ crc32(const void *buf, size_t sz)
return (crc ^ ~0U);
}
-static void
-gpt_uuid_enc(void *buf, const uuid_t *uuid)
-{
- uint8_t *p = buf;
- int i;
-
- le32enc(p, uuid->time_low);
- le16enc(p + 4, uuid->time_mid);
- le16enc(p + 6, uuid->time_hi_and_version);
- p[8] = uuid->clock_seq_hi_and_reserved;
- p[9] = uuid->clock_seq_low;
- for (i = 0; i < _UUID_NODE_LEN; i++)
- p[10 + i] = uuid->node[i];
-}
-
static u_int
gpt_tblsz(void)
{
@@ -173,7 +152,7 @@ gpt_write_pmbr(lba_t blks, void *bootcode)
uint32_t secs;
int error;
- secs = (blks > UINT32_MAX) ? UINT32_MAX : (uint32_t)blks;
+ secs = (blks > UINT32_MAX) ? UINT32_MAX : (uint32_t)blks - 1;
pmbr = malloc(secsz);
if (pmbr == NULL)
@@ -199,7 +178,7 @@ gpt_write_pmbr(lba_t blks, void *bootcode)
static struct gpt_ent *
gpt_mktbl(u_int tblsz)
{
- uuid_t uuid;
+ mkimg_uuid_t uuid;
struct gpt_ent *tbl, *ent;
struct part *part;
int c, idx;
@@ -208,11 +187,11 @@ gpt_mktbl(u_int tblsz)
if (tbl == NULL)
return (NULL);
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
ent = tbl + part->index;
- gpt_uuid_enc(&ent->ent_type, ALIAS_TYPE2PTR(part->type));
+ mkimg_uuid_enc(&ent->ent_type, ALIAS_TYPE2PTR(part->type));
mkimg_uuid(&uuid);
- gpt_uuid_enc(&ent->ent_uuid, &uuid);
+ mkimg_uuid_enc(&ent->ent_uuid, &uuid);
le64enc(&ent->ent_lba_start, part->block);
le64enc(&ent->ent_lba_end, part->block + part->size - 1);
if (part->label != NULL) {
@@ -243,7 +222,7 @@ gpt_write_hdr(struct gpt_hdr *hdr, uint64_t self, uint64_t alt, uint64_t tbl)
static int
gpt_write(lba_t imgsz, void *bootcode)
{
- uuid_t uuid;
+ mkimg_uuid_t uuid;
struct gpt_ent *tbl;
struct gpt_hdr *hdr;
uint32_t crc;
@@ -280,7 +259,7 @@ gpt_write(lba_t imgsz, void *bootcode)
le64enc(&hdr->hdr_lba_start, 2 + tblsz);
le64enc(&hdr->hdr_lba_end, imgsz - tblsz - 2);
mkimg_uuid(&uuid);
- gpt_uuid_enc(&hdr->hdr_uuid, &uuid);
+ mkimg_uuid_enc(&hdr->hdr_uuid, &uuid);
le32enc(&hdr->hdr_entries, nparts);
le32enc(&hdr->hdr_entsz, sizeof(struct gpt_ent));
crc = crc32(tbl, nparts * sizeof(struct gpt_ent));
diff --git a/usr.bin/mkimg/image.c b/usr.bin/mkimg/image.c
index 2527f28..3e132e8 100644
--- a/usr.bin/mkimg/image.c
+++ b/usr.bin/mkimg/image.c
@@ -28,9 +28,7 @@
__FBSDID("$FreeBSD$");
#include <sys/mman.h>
-#include <sys/queue.h>
#include <sys/stat.h>
-#include <sys/types.h>
#include <assert.h>
#include <err.h>
#include <errno.h>
@@ -45,8 +43,22 @@ __FBSDID("$FreeBSD$");
#include "image.h"
#include "mkimg.h"
+#ifndef MAP_NOCORE
+#define MAP_NOCORE 0
+#endif
+#ifndef MAP_NOSYNC
+#define MAP_NOSYNC 0
+#endif
+
+#ifndef SEEK_DATA
+#define SEEK_DATA -1
+#endif
+#ifndef SEEK_HOLE
+#define SEEK_HOLE -1
+#endif
+
struct chunk {
- STAILQ_ENTRY(chunk) ch_list;
+ TAILQ_ENTRY(chunk) ch_list;
size_t ch_size; /* Size of chunk in bytes. */
lba_t ch_block; /* Block address in image. */
union {
@@ -64,7 +76,7 @@ struct chunk {
#define CH_TYPE_MEMORY 2 /* Memory-backed chunk */
};
-static STAILQ_HEAD(chunk_head, chunk) image_chunks;
+static TAILQ_HEAD(chunk_head, chunk) image_chunks;
static u_int image_nchunks;
static char image_swap_file[PATH_MAX];
@@ -125,14 +137,14 @@ image_chunk_find(lba_t blk)
struct chunk *ch;
ch = (last != NULL && last->ch_block <= blk)
- ? last : STAILQ_FIRST(&image_chunks);
+ ? last : TAILQ_FIRST(&image_chunks);
while (ch != NULL) {
if (ch->ch_block <= blk &&
(lba_t)(ch->ch_block + (ch->ch_size / secsz)) > blk) {
last = ch;
break;
}
- ch = STAILQ_NEXT(ch, ch_list);
+ ch = TAILQ_NEXT(ch, ch_list);
}
return (ch);
}
@@ -174,7 +186,7 @@ image_chunk_memory(struct chunk *ch, lba_t blk)
ch->ch_size = (blk - ch->ch_block) * secsz;
new->ch_block = blk;
new->ch_size -= ch->ch_size;
- STAILQ_INSERT_AFTER(&image_chunks, ch, new, ch_list);
+ TAILQ_INSERT_AFTER(&image_chunks, ch, new, ch_list);
image_nchunks++;
ch = new;
}
@@ -189,7 +201,7 @@ image_chunk_memory(struct chunk *ch, lba_t blk)
ch->ch_size = secsz;
new->ch_block++;
new->ch_size -= secsz;
- STAILQ_INSERT_AFTER(&image_chunks, ch, new, ch_list);
+ TAILQ_INSERT_AFTER(&image_chunks, ch, new, ch_list);
image_nchunks++;
}
@@ -205,7 +217,7 @@ image_chunk_skipto(lba_t to)
lba_t from;
size_t sz;
- ch = STAILQ_LAST(&image_chunks, chunk, ch_list);
+ ch = TAILQ_LAST(&image_chunks, chunk_head);
from = (ch != NULL) ? ch->ch_block + (ch->ch_size / secsz) : 0LL;
assert(from <= to);
@@ -230,7 +242,7 @@ image_chunk_skipto(lba_t to)
ch->ch_block = from;
ch->ch_size = sz;
ch->ch_type = CH_TYPE_ZEROES;
- STAILQ_INSERT_TAIL(&image_chunks, ch, ch_list);
+ TAILQ_INSERT_TAIL(&image_chunks, ch, ch_list);
image_nchunks++;
return (0);
}
@@ -240,7 +252,7 @@ image_chunk_append(lba_t blk, size_t sz, off_t ofs, int fd)
{
struct chunk *ch;
- ch = STAILQ_LAST(&image_chunks, chunk, ch_list);
+ ch = TAILQ_LAST(&image_chunks, chunk_head);
if (ch != NULL && ch->ch_type == CH_TYPE_FILE) {
if (fd == ch->ch_u.file.fd &&
blk == (lba_t)(ch->ch_block + (ch->ch_size / secsz)) &&
@@ -261,7 +273,7 @@ image_chunk_append(lba_t blk, size_t sz, off_t ofs, int fd)
ch->ch_type = CH_TYPE_FILE;
ch->ch_u.file.ofs = ofs;
ch->ch_u.file.fd = fd;
- STAILQ_INSERT_TAIL(&image_chunks, ch, ch_list);
+ TAILQ_INSERT_TAIL(&image_chunks, ch, ch_list);
image_nchunks++;
return (0);
}
@@ -456,8 +468,7 @@ image_copyin_mapped(lba_t blk, int fd, uint64_t *sizep)
* I don't know what this means or whether it
* can happen at all...
*/
- error = EDOOFUS;
- break;
+ assert(0);
}
}
if (error)
@@ -583,10 +594,13 @@ image_copyout_region(int fd, lba_t blk, lba_t size)
size *= secsz;
- while (size > 0) {
+ error = 0;
+ while (!error && size > 0) {
ch = image_chunk_find(blk);
- if (ch == NULL)
- return (EINVAL);
+ if (ch == NULL) {
+ error = EINVAL;
+ break;
+ }
ofs = (blk - ch->ch_block) * secsz;
sz = ch->ch_size - ofs;
sz = ((lba_t)sz < size) ? sz : (size_t)size;
@@ -602,12 +616,12 @@ image_copyout_region(int fd, lba_t blk, lba_t size)
error = image_copyout_memory(fd, sz, ch->ch_u.mem.ptr);
break;
default:
- return (EDOOFUS);
+ assert(0);
}
size -= sz;
blk += sz / secsz;
}
- return (0);
+ return (error);
}
int
@@ -682,7 +696,7 @@ image_cleanup(void)
{
struct chunk *ch;
- while ((ch = STAILQ_FIRST(&image_chunks)) != NULL) {
+ while ((ch = TAILQ_FIRST(&image_chunks)) != NULL) {
switch (ch->ch_type) {
case CH_TYPE_FILE:
/* We may be closing the same file multiple times. */
@@ -695,7 +709,7 @@ image_cleanup(void)
default:
break;
}
- STAILQ_REMOVE_HEAD(&image_chunks, ch_list);
+ TAILQ_REMOVE(&image_chunks, ch, ch_list);
free(ch);
}
if (image_swap_fd != -1)
@@ -708,7 +722,7 @@ image_init(void)
{
const char *tmpdir;
- STAILQ_INIT(&image_chunks);
+ TAILQ_INIT(&image_chunks);
image_nchunks = 0;
image_swap_size = 0;
diff --git a/usr.bin/mkimg/mbr.c b/usr.bin/mkimg/mbr.c
index 071bcf5..217fbeb 100644
--- a/usr.bin/mkimg/mbr.c
+++ b/usr.bin/mkimg/mbr.c
@@ -27,35 +27,23 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/diskmbr.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/diskmbr.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef DOSPTYP_FAT16B
-#define DOSPTYP_FAT16B 0x06
-#endif
-#ifndef DOSPTYP_FAT32
-#define DOSPTYP_FAT32 0x0b
-#endif
-#ifndef DOSPTYP_PPCBOOT
-#define DOSPTYP_PPCBOOT 0x41
-#endif
-#ifndef DOSPTYP_EFI
-#define DOSPTYP_EFI 0xef
-#endif
-
static struct mkimg_alias mbr_aliases[] = {
{ ALIAS_EBR, ALIAS_INT2TYPE(DOSPTYP_EXT) },
{ ALIAS_EFI, ALIAS_INT2TYPE(DOSPTYP_EFI) },
- { ALIAS_FAT16B, ALIAS_INT2TYPE(DOSPTYP_FAT16B) },
+ { ALIAS_FAT16B, ALIAS_INT2TYPE(DOSPTYP_FAT16) },
{ ALIAS_FAT32, ALIAS_INT2TYPE(DOSPTYP_FAT32) },
{ ALIAS_FREEBSD, ALIAS_INT2TYPE(DOSPTYP_386BSD) },
{ ALIAS_NTFS, ALIAS_INT2TYPE(DOSPTYP_NTFS) },
@@ -101,10 +89,15 @@ mbr_write(lba_t imgsz __unused, void *bootcode)
memset(mbr, 0, secsz);
le16enc(mbr + DOSMAGICOFFSET, DOSMAGIC);
dpbase = (void *)(mbr + DOSPARTOFF);
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
size = round_track(part->size);
dp = dpbase + part->index;
- dp->dp_flag = (part->index == 0 && bootcode != NULL) ? 0x80 : 0;
+ if (active_partition != 0)
+ dp->dp_flag =
+ (part->index + 1 == active_partition) ? 0x80 : 0;
+ else
+ dp->dp_flag =
+ (part->index == 0 && bootcode != NULL) ? 0x80 : 0;
mbr_chs(&dp->dp_scyl, &dp->dp_shd, &dp->dp_ssect,
part->block);
dp->dp_typ = ALIAS_TYPE2INT(part->type);
diff --git a/usr.bin/mkimg/mkimg.1 b/usr.bin/mkimg/mkimg.1
index c63ab68..4643aaf 100644
--- a/usr.bin/mkimg/mkimg.1
+++ b/usr.bin/mkimg/mkimg.1
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 7, 2015
+.Dd April 26, 2017
.Dt MKIMG 1
.Os
.Sh NAME
@@ -37,9 +37,12 @@
.Op Fl S Ar secsz
.Op Fl T Ar tracksz
.Op Fl b Ar bootcode
-.Op Fl c Ar capacity
+.Op Fl c Ar min_capacity
+.Op Fl C Ar max_capacity
+.Op Fl -capacity Ar capacity
.Op Fl f Ar format
.Op Fl o Ar outfile
+.Op Fl a Ar active
.Op Fl v
.Op Fl y
.Op Fl s Ar scheme Op Fl p Ar partition ...
@@ -119,11 +122,23 @@ An empty partition table can be written to the disk when specifying a
partitioning scheme with the
.Fl s
option, but without specifying any partitions.
-When the size required to for all the partitions is larger than the
+When the size required for all the partitions is larger than the
given capacity, then the disk image will be larger than the capacity
given.
.Pp
The
+.Fl C
+option specifies a maximum capacity for the disk image.
+If the combined sizes of the given partitions exceed the size given with
+.Fl C ,
+image creation fails.
+.Pp
+The
+.Fl -capacity
+option is a shorthand to specify the minimum and maximum capacity at the
+same time.
+.Pp
+The
.Fl v
option increases the level of output that the
.Nm
@@ -139,6 +154,26 @@ utility will generate predictable values for Universally Unique Identifiers
.Nm
utility will create images that are identical.
.Pp
+The
+.Ar active
+option marks a partition as active, if the partitioning
+scheme supports it.
+Currently, only the
+.Ar mbr
+scheme supports this concept.
+By default,
+.Nm
+will only mark the first partition as active when boot code is
+specified.
+Use the
+.Ar active
+option to override the active partition.
+The number specified corresponds to the number after the 's' in the
+partition's
+.Xr geom 8
+name.
+No partitions are marked active when the value is 0.
+.Pp
A set of long options exist to query about the
.Nm
utility itself.
diff --git a/usr.bin/mkimg/mkimg.c b/usr.bin/mkimg/mkimg.c
index 5d41e3b..51b22c7 100644
--- a/usr.bin/mkimg/mkimg.c
+++ b/usr.bin/mkimg/mkimg.c
@@ -27,17 +27,15 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/linker_set.h>
-#include <sys/queue.h>
+#include <sys/param.h>
#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/uuid.h>
#include <errno.h>
#include <err.h>
#include <fcntl.h>
#include <getopt.h>
#include <libutil.h>
#include <limits.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -49,20 +47,23 @@ __FBSDID("$FreeBSD$");
#include "mkimg.h"
#include "scheme.h"
-#define LONGOPT_FORMATS 0x01000001
-#define LONGOPT_SCHEMES 0x01000002
-#define LONGOPT_VERSION 0x01000003
+#define LONGOPT_FORMATS 0x01000001
+#define LONGOPT_SCHEMES 0x01000002
+#define LONGOPT_VERSION 0x01000003
+#define LONGOPT_CAPACITY 0x01000004
static struct option longopts[] = {
{ "formats", no_argument, NULL, LONGOPT_FORMATS },
{ "schemes", no_argument, NULL, LONGOPT_SCHEMES },
{ "version", no_argument, NULL, LONGOPT_VERSION },
+ { "capacity", required_argument, NULL, LONGOPT_CAPACITY },
{ NULL, 0, NULL, 0 }
};
-static uint64_t capacity;
+static uint64_t min_capacity = 0;
+static uint64_t max_capacity = 0;
-struct partlisthead partlist = STAILQ_HEAD_INITIALIZER(partlist);
+struct partlisthead partlist = TAILQ_HEAD_INITIALIZER(partlist);
u_int nparts = 0;
u_int unit_testing;
@@ -73,24 +74,25 @@ u_int nheads = 1;
u_int nsecs = 1;
u_int secsz = 512;
u_int blksz = 0;
+uint32_t active_partition = 0;
static void
print_formats(int usage)
{
- struct mkimg_format *f, **f_iter;
+ struct mkimg_format *f;
const char *sep;
if (usage) {
fprintf(stderr, " formats:\n");
- SET_FOREACH(f_iter, formats) {
- f = *f_iter;
+ f = NULL;
+ while ((f = format_iterate(f)) != NULL) {
fprintf(stderr, "\t%s\t- %s\n", f->name,
f->description);
}
} else {
sep = "";
- SET_FOREACH(f_iter, formats) {
- f = *f_iter;
+ f = NULL;
+ while ((f = format_iterate(f)) != NULL) {
printf("%s%s", sep, f->name);
sep = " ";
}
@@ -101,20 +103,20 @@ print_formats(int usage)
static void
print_schemes(int usage)
{
- struct mkimg_scheme *s, **s_iter;
+ struct mkimg_scheme *s;
const char *sep;
if (usage) {
fprintf(stderr, " schemes:\n");
- SET_FOREACH(s_iter, schemes) {
- s = *s_iter;
+ s = NULL;
+ while ((s = scheme_iterate(s)) != NULL) {
fprintf(stderr, "\t%s\t- %s\n", s->name,
s->description);
}
} else {
sep = "";
- SET_FOREACH(s_iter, schemes) {
- s = *s_iter;
+ s = NULL;
+ while ((s = scheme_iterate(s)) != NULL) {
printf("%s%s", sep, s->name);
sep = " ";
}
@@ -148,8 +150,10 @@ usage(const char *why)
fprintf(stderr, "\t--schemes\t- list partition schemes\n");
fprintf(stderr, "\t--version\t- show version information\n");
fputc('\n', stderr);
+ fprintf(stderr, "\t-a <num>\t- mark num'th partion as active\n");
fprintf(stderr, "\t-b <file>\t- file containing boot code\n");
- fprintf(stderr, "\t-c <num>\t- capacity (in bytes) of the disk\n");
+ fprintf(stderr, "\t-c <num>\t- minimum capacity (in bytes) of the disk\n");
+ fprintf(stderr, "\t-C <num>\t- maximum capacity (in bytes) of the disk\n");
fprintf(stderr, "\t-f <format>\n");
fprintf(stderr, "\t-o <file>\t- file to write image into\n");
fprintf(stderr, "\t-p <partition>\n");
@@ -302,7 +306,7 @@ parse_part(const char *spec)
}
part->index = nparts;
- STAILQ_INSERT_TAIL(&partlist, part, link);
+ TAILQ_INSERT_TAIL(&partlist, part, link);
nparts++;
return (0);
@@ -376,31 +380,20 @@ mkimg_chs(lba_t lba, u_int maxcyl, u_int *cylp, u_int *hdp, u_int *secp)
*secp = sec;
}
-void
-mkimg_uuid(struct uuid *uuid)
-{
- static uint8_t gen[sizeof(struct uuid)];
- u_int i;
-
- if (!unit_testing) {
- uuidgen(uuid, 1);
- return;
- }
-
- for (i = 0; i < sizeof(gen); i++)
- gen[i]++;
- memcpy(uuid, gen, sizeof(uuid_t));
-}
-
static int
capacity_resize(lba_t end)
{
- lba_t capsz;
+ lba_t min_capsz, max_capsz;
+
+ min_capsz = (min_capacity + secsz - 1) / secsz;
+ max_capsz = (max_capacity + secsz - 1) / secsz;
- capsz = (capacity + secsz - 1) / secsz;
- if (end >= capsz)
+ if (max_capsz != 0 && end > max_capsz)
+ return (ENOSPC);
+ if (end >= min_capsz)
return (0);
- return (image_set_size(capsz));
+
+ return (image_set_size(min_capsz));
}
static void
@@ -413,14 +406,14 @@ mkimg(void)
int error, fd;
/* First check partition information */
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
error = scheme_check_part(part);
if (error)
errc(EX_DATAERR, error, "partition %d", part->index+1);
}
block = scheme_metadata(SCHEME_META_IMG_START, 0);
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
block = scheme_metadata(SCHEME_META_PART_BEFORE, block);
if (verbose)
fprintf(stderr, "partition %d: starting block %llu "
@@ -487,9 +480,14 @@ main(int argc, char *argv[])
bcfd = -1;
outfd = 1; /* Write to stdout by default */
- while ((c = getopt_long(argc, argv, "b:c:f:o:p:s:vyH:P:S:T:",
+ while ((c = getopt_long(argc, argv, "a:b:c:C:f:o:p:s:vyH:P:S:T:",
longopts, NULL)) != -1) {
switch (c) {
+ case 'a': /* ACTIVE PARTITION, if supported */
+ error = parse_uint32(&active_partition, 1, 100, optarg);
+ if (error)
+ errc(EX_DATAERR, error, "Partition ordinal");
+ break;
case 'b': /* BOOT CODE */
if (bcfd != -1)
usage("multiple bootcode given");
@@ -497,10 +495,15 @@ main(int argc, char *argv[])
if (bcfd == -1)
err(EX_UNAVAILABLE, "%s", optarg);
break;
- case 'c': /* CAPACITY */
- error = parse_uint64(&capacity, 1, OFF_MAX, optarg);
+ case 'c': /* MINIMUM CAPACITY */
+ error = parse_uint64(&min_capacity, 1, INT64_MAX, optarg);
if (error)
- errc(EX_DATAERR, error, "capacity in bytes");
+ errc(EX_DATAERR, error, "minimum capacity in bytes");
+ break;
+ case 'C': /* MAXIMUM CAPACITY */
+ error = parse_uint64(&max_capacity, 1, INT64_MAX, optarg);
+ if (error)
+ errc(EX_DATAERR, error, "maximum capacity in bytes");
break;
case 'f': /* OUTPUT FORMAT */
if (format_selected() != NULL)
@@ -571,6 +574,12 @@ main(int argc, char *argv[])
print_version();
exit(EX_OK);
/*NOTREACHED*/
+ case LONGOPT_CAPACITY:
+ error = parse_uint64(&min_capacity, 1, INT64_MAX, optarg);
+ if (error)
+ errc(EX_DATAERR, error, "capacity in bytes");
+ max_capacity = min_capacity;
+ break;
default:
usage("unknown option");
}
@@ -580,8 +589,10 @@ main(int argc, char *argv[])
usage("trailing arguments");
if (scheme_selected() == NULL && nparts > 0)
usage("no scheme");
- if (nparts == 0 && capacity == 0)
+ if (nparts == 0 && min_capacity == 0)
usage("no partitions");
+ if (max_capacity != 0 && min_capacity > max_capacity)
+ usage("minimum capacity cannot be larger than the maximum one");
if (secsz > blksz) {
if (blksz != 0)
diff --git a/usr.bin/mkimg/mkimg.h b/usr.bin/mkimg/mkimg.h
index 281beeb..70b14e3 100644
--- a/usr.bin/mkimg/mkimg.h
+++ b/usr.bin/mkimg/mkimg.h
@@ -30,9 +30,10 @@
#define _MKIMG_MKIMG_H_
#include <sys/queue.h>
+#include <sys/types.h>
struct part {
- STAILQ_ENTRY(part) link;
+ TAILQ_ENTRY(part) link;
char *alias; /* Partition type alias. */
char *contents; /* Contents/size specification. */
u_int kind; /* Content kind. */
@@ -47,7 +48,7 @@ struct part {
char *label; /* Partition label. */
};
-extern STAILQ_HEAD(partlisthead, part) partlist;
+extern TAILQ_HEAD(partlisthead, part) partlist;
extern u_int nparts;
extern u_int unit_testing;
@@ -58,6 +59,7 @@ extern u_int nheads;
extern u_int nsecs;
extern u_int secsz; /* Logical block size. */
extern u_int blksz; /* Physical block size. */
+extern uint32_t active_partition;
static inline lba_t
round_block(lba_t n)
@@ -89,7 +91,17 @@ ssize_t sparse_write(int, const void *, size_t);
void mkimg_chs(lba_t, u_int, u_int *, u_int *, u_int *);
-struct uuid;
-void mkimg_uuid(struct uuid *);
+struct mkimg_uuid {
+ uint32_t time_low;
+ uint16_t time_mid;
+ uint16_t time_hi_and_version;
+ uint8_t clock_seq_hi_and_reserved;
+ uint8_t clock_seq_low;
+ uint8_t node[6];
+};
+typedef struct mkimg_uuid mkimg_uuid_t;
+
+void mkimg_uuid(mkimg_uuid_t *);
+void mkimg_uuid_enc(void *, const mkimg_uuid_t *);
#endif /* _MKIMG_MKIMG_H_ */
diff --git a/usr.bin/mkimg/pc98.c b/usr.bin/mkimg/pc98.c
index 2db0394..f93ecc9 100644
--- a/usr.bin/mkimg/pc98.c
+++ b/usr.bin/mkimg/pc98.c
@@ -27,31 +27,19 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/diskpc98.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/diskpc98.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef PC98_MAGIC
-#define PC98_MAGIC 0xaa55
-#endif
-#ifndef PC98_MAGICOFS
-#define PC98_MAGICOFS 510
-#endif
-#ifndef PC98_NPARTS
-#define PC98_NPARTS 16
-#endif
-#ifndef PC98_PTYP_386BSD
-#define PC98_PTYP_386BSD 0xc494
-#endif
-
#define PC98_BOOTCODESZ 8192
static struct mkimg_alias pc98_aliases[] = {
@@ -97,7 +85,7 @@ pc98_write(lba_t imgsz __unused, void *bootcode)
memset(buf, 0, PC98_BOOTCODESZ);
le16enc(buf + PC98_MAGICOFS, PC98_MAGIC);
dpbase = (void *)(buf + secsz);
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
size = round_track(part->size);
dp = dpbase + part->index;
ptyp = ALIAS_TYPE2INT(part->type);
diff --git a/usr.bin/mkimg/qcow.c b/usr.bin/mkimg/qcow.c
index 4bdc227..fdf2d8c 100644
--- a/usr.bin/mkimg/qcow.c
+++ b/usr.bin/mkimg/qcow.c
@@ -27,15 +27,15 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <assert.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include "endian.h"
#include "image.h"
#include "format.h"
#include "mkimg.h"
@@ -102,7 +102,7 @@ qcow_resize(lba_t imgsz, u_int version)
clstr_log2sz = QCOW2_CLSTR_LOG2SZ;
break;
default:
- return (EDOOFUS);
+ assert(0);
}
imagesz = round_clstr(imgsz * secsz);
@@ -143,8 +143,7 @@ qcow_write(int fd, u_int version)
u_int clstrsz, l1idx, l2idx;
int error;
- if (clstr_log2sz == 0)
- return (EDOOFUS);
+ assert(clstr_log2sz != 0);
clstrsz = 1U << clstr_log2sz;
blk_clstrsz = clstrsz / secsz;
@@ -203,7 +202,7 @@ qcow_write(int fd, u_int version)
be32enc(&hdr->u.v2.refcnt_clstrs, refcnt_clstrs);
break;
default:
- return (EDOOFUS);
+ assert(0);
}
if (sparse_write(fd, hdr, clstrsz) < 0) {
diff --git a/usr.bin/mkimg/raw.c b/usr.bin/mkimg/raw.c
index 759debf..adeb690 100644
--- a/usr.bin/mkimg/raw.c
+++ b/usr.bin/mkimg/raw.c
@@ -27,9 +27,8 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/usr.bin/mkimg/scheme.c b/usr.bin/mkimg/scheme.c
index 6cd332f..3e2ab46 100644
--- a/usr.bin/mkimg/scheme.c
+++ b/usr.bin/mkimg/scheme.c
@@ -27,9 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/linker_set.h>
-#include <sys/queue.h>
#include <sys/stat.h>
#include <assert.h>
#include <err.h>
@@ -65,6 +62,7 @@ static struct {
{ NULL, ALIAS_NONE } /* Keep last! */
};
+static struct mkimg_scheme *first;
static struct mkimg_scheme *scheme;
static void *bootcode;
@@ -82,13 +80,27 @@ scheme_parse_alias(const char *name)
return (ALIAS_NONE);
}
+struct mkimg_scheme *
+scheme_iterate(struct mkimg_scheme *s)
+{
+
+ return ((s == NULL) ? first : s->next);
+}
+
+void
+scheme_register(struct mkimg_scheme *s)
+{
+ s->next = first;
+ first = s;
+}
+
int
scheme_select(const char *spec)
{
- struct mkimg_scheme *s, **iter;
+ struct mkimg_scheme *s;
- SET_FOREACH(iter, schemes) {
- s = *iter;
+ s = NULL;
+ while ((s = scheme_iterate(s)) != NULL) {
if (strcasecmp(spec, s->name) == 0) {
scheme = s;
return (0);
diff --git a/usr.bin/mkimg/scheme.h b/usr.bin/mkimg/scheme.h
index 552d031..5826036 100644
--- a/usr.bin/mkimg/scheme.h
+++ b/usr.bin/mkimg/scheme.h
@@ -29,8 +29,6 @@
#ifndef _MKIMG_SCHEME_H_
#define _MKIMG_SCHEME_H_
-#include <sys/linker_set.h>
-
enum alias {
ALIAS_NONE, /* Keep first! */
/* start */
@@ -62,6 +60,7 @@ struct mkimg_alias {
};
struct mkimg_scheme {
+ struct mkimg_scheme *next;
const char *name;
const char *description;
struct mkimg_alias *aliases;
@@ -77,9 +76,12 @@ struct mkimg_scheme {
u_int maxsecsz;
};
-SET_DECLARE(schemes, struct mkimg_scheme);
-#define SCHEME_DEFINE(nm) DATA_SET(schemes, nm)
+#define SCHEME_DEFINE(nm) \
+static void scheme_register_##nm(void) __attribute__((constructor)); \
+static void scheme_register_##nm(void) { scheme_register(&nm); }
+struct mkimg_scheme *scheme_iterate(struct mkimg_scheme *);
+void scheme_register(struct mkimg_scheme *);
int scheme_select(const char *);
struct mkimg_scheme *scheme_selected(void);
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu
index a67e3eb..3fa74db 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow.gz.uu
@@ -1,132 +1,132 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.qcow.gz
-M'XL("*XS(E0``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=RYO=70`K9W;;AS7M47?
-M_16ENT1)5*^UJJJK=$^`!,B;$YSS=@Z0NCX&G7=]?-CDOI"KY]2*(=J$(4.H
-MB>ZMP4'9'MX\'.[^:)I.FK9OVK'9Y^;F[].'-/?^YN%'\^/O?_W;]?T_?OQV
-M-R:'GSSE_K[51M/<@ZT_-V5.ST\MS6'\+^9N/@3-W7MU]@=>W;TW>SEW]=O=
-MF\7/*1NT!X--FCNDUR?D]-K_[O5]=V]7[D[O\=ZNDK?;L<'^P>#O:>Z?Z?4I
-M>;M'-C<\F#NYMZOD[8YL;OHI+$I@F=G<$LRU\*F5S6W!7`>?VO&<_.37]FZN
-MAT\)FX.?M]=-F3O"IXS-M0_F#M<9Z#PWP*<(=Q)R-\*G"'<2<C?!IPAW$G(W
-MPZ<(=Q)RM\"G"'<2<K?"IPAW&G*WP:<(=^3KQ3WN=O@4X4XC[@0_1;C3B#M!
-MOE/&G4;<"?*=,NXTXDZ0[Y1QIQ%W@GRGC#N-N!/D.V7<6<2=(-\9X\XB[@3Y
-MSAAW%G*'?&>,.PNY0[XSQIV%W"'?&>/.0NZ0[XQQ9R%WR'?&N+.0.^0[8]RU
-M(7?(=RWCK@VY0[YK&7=MQ)WBIPAW;<2=(M^UC+LVXDZ1[UK&71MQI\AW+>.N
-MC;A3Y+N6<==&W"GR7<NXZR+N%/FN8]QU$7>*?-<Q[KJ0.^2[CG'7A=PAWW6,
-MNR[D#OFN8]QU(7?(=QWCK@NY0[[K&'==R!WR7<>XZT/ND.]ZQET?<H=\US/N
-M^H@[PT\1[OJ(.T.^ZQEW?<2=(=_UC+L^XLZ0[WK&71]Q9\AW/>.NC[@SY+N>
-M<7>,N#/DNR/C[AAQ9\AW1\;=,>0.^>[(N#N&W"'?'1EWQY`[Y+LCX^X8<H=\
-M=V3<'4/ND.^.C+MCR!WRW9%Q-X3<(=\-C+LAY`[Y;F#<#1%W+7Z*<#=$W+7(
-M=P/C;HBX:Y'O!L;=$''7(M\-C+LAXJY%OAL8=T/$78M\-S#N\K_^YG/(=R/C
-M;HRX:Y'O1L;=&'*'?#<R[L:0.^2[D7$WAMPAWXV,NS'D#OEN9-R-(7?(=R/C
-M;@RY0[X;&7=3R!WRW<2XFT+ND.\FQMT4<=?AIPAW4\1=AWPW,>ZFB+L.^6YB
-MW$T1=QWRW<2XFR+N.N2[B7$W1=QUR'<3XR[_9T@^AWPW,^[FB+L.^6YFW,TA
-M=\AW,^-N#KE#OIL9=W/('?+=S+B;0^Z0[V;&W1QRAWPW,^[FD#ODNYEQMX3<
-M(=\MC+LEY`[Y;F'<+1%W/7Z*<+=$W/7(=POC;HFXZY'O%L;=$G'7(]\MC+LE
-MXJY'OEL8=TO$78]\MS#NUHB['OEN9=RM$7<]\MW*N%M#[I#O5L;=&G*'?+<R
-M[M:0.^2[E7&WAMPAWZV,NS7D#OEN9=RM(7?(=ROC;@NY0[[;&'=;R!WRW<:X
-MVR+NCO@IPMT6<7=$OML8=UO$W1'Y;F/<;1%W1^2[C7&W1=P=D>\VQMT6<7=$
-MOML8=WO$W1'Y;F?<[1%W1^2[G7&WA]PAW^V,NSWD#OEN9]SM(7?(=SOC;@^Y
-M0[[;&7=[R!WRW<ZXVT/ND.]VPIWD'_`YX#LY$.[D$'('?"<'PIT<(NX&_!3F
-M3L+^;@"^$];?2=C?#<!WPOH["?N[`?A.6'\G87\W`-\)Z^\D[.\&X#MA_9V$
-M_=T`?">LOY.POQN`[X3U=Q+V=P/PG;#^3L+^;@"^$];?2=C?#<!WPOH["?N[
-M`?A.6'\G87\W`-\)Z^\D[.\&X#MA_9V$_=V`?,?Z.PG[NP'YCO5W$O9W(WZ*
-M<!?V=R/R'>OO).SO1N0[UM])V-^-R'>LOY.POQN1[UA_)V%_-R+?L?Y.POYN
-M1+YC_9V$_=V(?,?Z.PG[NQ'YCO5W$O9W(_(=Z^\D[.]&Y#O6WTG8WXW(=ZR_
-MD["_&Y'O6'\G87\W(M^Q_D["_FY$OF/]G83]W8A\Q_H["?N["3]%N`O[NPGY
-MCO5W$O9W$_(=Z^\D[.\FY#O6WTG8WTW(=ZR_D["_FY#O6'\G87\W(=^Q_D["
-M_FY"OF/]G83]W81\Q_H["?N["?F.]7<2]G<3\AWK[R3L[R;D.];?2=C?3<AW
-MK+^3L+^;D.]8?R=A?S<AW['^3L+^;D*^8_V=A/W=C)\BW(7]W8Q\Q_H["?N[
-M&?F.]7<2]G<S\AWK[R3L[V;D.];?2=C?S<AWK+^3L+^;D>]8?R=A?S<CW['^
-M3L+^;D:^8_V=A/W=C'S'^CL)^[L9^8[U=Q+V=S/R'>OO).SO9N0[UM])V-_-
-MR'>LOY.POYN1[UA_)V%_-R/?L?Y.POYNP4\1[L+^;D&^8_V=A/W=@GS'^CL)
-M^[L%^8[U=Q+V=POR'>OO).SO%N0[UM])V-\MR'>LOY.POUN0[UA_)V%_MR#?
-ML?Y.POYN0;YC_9V$_=V"?,?Z.PG[NP7YCO5W$O9W"_(=Z^\D[.\6Y#O6WTG8
-MWRW(=ZR_D["_6Y#O6'\G87^WXJ<(=V%_MR+?L?Y.POYN1;YC_9V$_=V*?,?Z
-M.PG[NQ7YCO5W$O9W*_(=Z^\D[.]6Y#O6WTG8WZW(=ZR_D["_6Y'O6'\G87^W
-M(M^Q_D["_FY%OF/]G83]W8I\Q_H["?N[%?F.]7<2]G<K\AWK[R3L[U;D.];?
-M2=C?K<AWK+^3L+_;\%.$N["_VY#O6'\G87^W(=^Q_D["_FY#OF/]G83]W89\
-MQ_H["?N[#?F.]7<2]G<;\AWK[R3L[S;D.];?2=C?;<AWK+^3L+_;D.]8?R=A
-M?[<AW['^3L+^;D.^8_V=A/W=AGS'^CL)^[L-^8[U=Q+V=QOR'>OO).SO-N0[
-MUM])V-_M^"G"7=C?[<AWK+^3L+_;D>]8?R=A?[<CW['^3L+^;D>^8_V=A/W=
-MCGS'^CL)^[L=^8[U=Q+V=SOR'>OO).SO=N0[UM])V-_MR'>LOY.PO]N1[UA_
-M)V%_MR/?L?Y.POYN1[YC_9V$_=V.?,?Z.\T_<'--G0.^NWD*<Z>NO\OWZ365
-M.^`[9?V=NOZN2=PUF3L[X*<P=^KZNR9QU_RSS`'?*>OOU/5WS<F=G:'[[Y3U
-M=^KZNW)V=0[X3EE_IZZ_`W/`=\KZ.W7]'9@#OE/6WZGK[_+<DSH'?*>LOU/7
-MWSW)<TV9`[Y3UM^IZ^^>).Z>5.Z`[Y3U=^KZNR>)NR>5.^`[9?V=NO[NR>GB
-M[(#OE/5WZOJ[<G9U#OA.67^GKK\#<\!WROH[=?T=F`.^4];?J>OO\MS3.H=\
-MQ_H[=?W=TSQ7N4.^8_V=NO[N:>+N:>$.W7^GK+]3U]\]3=P]+=RA^^^4]7?J
-M^KNG)W]VZ/X[9?V=NOZNG%V=0[YC_9VZ_@[,(=^Q_DY=?P?FD.]8?Z>NO\MS
-MS^H<\AWK[]3U=\_R7.$.W7^GK+]3U]\]2]P]J]PAW['^3EU_]RQQ]ZQRAWS'
-M^CMU_=VST\79(=^Q_DY=?U?.KLXAW['^3EU_!^:0[UA_IZZ_`W/(=ZR_4]??
-MY;GG=0[YCO5WZOJ[YWFN<H=\Q_H[=?W=\\3=\\(=NO].67^GKK][GKA[7KA#
-M]]\IZ^_4]7?/3_[LT/UWROH[=?U=.;LZAWS'^CMU_1V80[YC_9VZ_@[,(=^Q
-M_DY=?Y?G7M0YY#O6WZGK[U[DN<(=NO].67^GKK][D;A[4;E#OF/]G;K^[D7B
-M[D7E#OF.]7?J^KL7IXNS0[YC_9VZ_JZ<79U#OF/]G;K^#LPAW['^3EU_!^:0
-M[UA_IZZ_RW,OZQSR'>OOU/5W+_-<Y0[YCO5WZOJ[EXF[EX4[=/^=LOY.77_W
-M,G'WLG"'[K]3UM^IZ^]>GOS9H?OOE/5WZOJ[<G9U#OF.]7?J^CLPAWS'^CMU
-M_1V80[YC_9VZ_B[/O:ISR'>LOU/7W[W*<X4[=/^=LOY.77_W*G'WJG*'?,?Z
-M.W7]W:O$W:O*'?(=Z^_4]7>O3A=GAWS'^CMU_5TYNSJ'?,?Z.W7]'9A#OF/]
-MG;K^#LPAW['^3EU_E^=>USGD.];?J>OO7N>YRAWR'>OOU/5WKQ-WKPMWZ/X[
-M9?V=NO[N=>+N=>$.W7^GK+]3U]^]/OFS0_??*>OOU/5WY>SJ'/(=Z^_4]7=@
-M#OF.]7?J^CLPAWS'^CMU_5V>>U/GD.]8?Z>NOWN3YPIWZ/X[9?V=NO[N3>+N
-M3>4.^8[U=^KZNS>)NS>5.^0[UM^IZ^_>G"[.#OF.]7?J^KMR=G4.^8[U=^KZ
-M.S"'?,?Z.W7]'9A#OF/]G;K^+L]=U3GD.];?J>OOKO)<Y0[YCO5WZOJ[J\3=
-M5>$.W7^GK+]3U]]=)>ZN"G?H_CME_9VZ_N[JY,\.W7^GK+]3U]^5LZMSR'>L
-MOU/7WX$YY#O6WZGK[\`<\AWK[]3U=WGN;9U#OF/]G;K^[FV>*]RA^^^4]7?J
-M^KNWB;NWE3OD.];?J>OOWB;NWE;ND.]8?Z>NOWM[NC@[Y#O6WZGK[\K9U3GD
-M.];?J>OOP!SR'>OOU/5W8`[YCO5WZOJ[//>NSB'?L?Y.77_W+L]5[I#O6'^G
-MKK][E[A[5[A#]]\IZ^_4]7?O$G?O"G?H_CME_9VZ_N[=R9\=NO].67^GKK\K
-M9U?GD.]8?Z>NOP-SR'>LOU/7WX$YY#O6WZGK[_+<^SJ'?,?Z.W7]W?L\5[A#
-M]]\IZ^_4]7?O$W?O*W?(=ZR_4]??O4_<O:_<(=^Q_DY=?_?^='%VR'>LOU/7
-MWY6SJW/(=ZR_4]??@3GD.];?J>OOP!SR'>OOU/5W>>ZZSB'?L?Y.H_[.T/UW
-MROH[C?H[0_??*>OO-.KO#-U_IZR_TZB_,W3_G;+^3J/^SM#]=\KZ.XWZ.T/W
-MWRGK[S3J[PS=?Z>LOU/2WWVH<\AWK+]3U]]]R'.%.W3_G;+^3EU_]R%Q]Z%R
-MAWS'^CMU_=V'Q-V'RAWR'>OOU/5W'TX79X=\Q_H[=?U=.;LZAWS'^CMU_1V8
-M0[YC_9VZ_@[,(=^Q_L[R#]S<H<X!WQGK[VY^X@%WV4^'RAWPG;'^SEQ_=TA[
-MA\(=NO_.6']GKK\[).X.A3MT_YVQ_LY<?W<X^;-#]]\9Z^_,]7?E[.H<\)VQ
-M_LY<?P?F@.^,]7?F^CLP!WQGK+\SU]_E.:ESP'?&^CMS_9WDN<(=NO_.6']G
-MKK^3]/*D<@=\9ZR_,]??2>).*G?`=\;Z.W/]G9PNS@[XSEA_9ZZ_*V=7YX#O
-MC/5WYOH[,`=\9ZR_,]??@3G@.V/]G;G^+L]IG4.^8_V=N?Y.\USE#OF.]7?F
-M^CM-W&GA#MU_9ZR_,]??:>)."W?H_CMC_9VY_DY/_NS0_7?&^CMS_5TYNSJ'
-M?,?Z.W/]'9A#OF/]G;G^#LPAW['^SEQ_E^>LSB'?L?[.7']G>:YPA^Z_,];?
-MF>OO+'%GE3OD.];?F>OO+'%GE3OD.];?F>OO['1Q=LAWK+\SU]^5LZMSR'>L
-MOS/7WX$YY#O6WYGK[\`<\AWK[\SU=WFNK7/(=ZR_,]??M7FN<H=\Q_H[<_U=
-MF[AK"W?H_CMC_9VY_JY-W+6%.W3_G;'^SEQ_UY[\V:'[[XSU=^;ZNW)V=0[Y
-MCO5WYOH[,(=\Q_H[<_T=F$.^8_V=N?XNSW5U#OF.]7?F^KLNSQ7NT/UWQOH[
-M<_U=E[CK*G?(=ZR_,]??=8F[KG*'?,?Z.W/]77>Z.#OD.];?F>OORMG5.>0[
-MUM^9Z^_`'/(=Z^_,]7=@#OF.]7?F^KL\U]<YY#O6WYGK[_H\5[E#OF/]G;G^
-MKD_<]84[=/^=L?[.7'_7)^[ZPAVZ_\Y8?V>NO^M/_NS0_7?&^CMS_5TYNSJ'
-M?,?Z.W/]'9A#OF/]G;G^#LPAW['^SEQ_E^>.=0[YCO5WYOJ[8YXKW*'[[XSU
-M=^;ZNV/B[EBY0[YC_9VY_NZ8N#M6[I#O6']GKK\[GB[.#OF.]7?F^KMR=G4.
-M^8[U=^;Z.S"'?,?Z.W/]'9A#OF/]G;G^+L\-=0[YCO5WYOJ[(<]5[I#O6']G
-MKK\;$G=#X0[=?V>LOS/7WPV)NZ%PA^Z_,];?F>OOAI,_.W3_G;'^SEQ_5\ZN
-MSB'?L?[.7'\'YI#O6']GKK\#<\AWK+\SU]_EN;'.(=^Q_LY<?S?FN<(=NO_.
-M6']GKK\;$W=CY0[YCO5WYOJ[,7$W5NZ0[UA_9ZZ_&T\79X=\Q_H[<_U=.;LZ
-MAWS'^CMS_1V80[YC_9VY_@[,(=^Q_LY<?Y?G/M8YY#O6WYGK[S[FN<H=\AWK
-M[\SU=Q\3=Q\+=^C^.V/]G;G^[F/B[F/A#MU_9ZR_,]???3SYLT/WWQGK[\SU
-M=^7LZASR'>OOS/5W8`[YCO5WYOH[,(=\Q_H[<_U=GOM4YY#O6']GKK_[E.<*
-M=^C^.V/]G;G^[E/B[E/E#OF.]7?F^KM/B;M/E3OD.];?F>OO/ITNS@[YCO5W
-MYOJ[<G9U#OF.]7?F^CLPAWS'^CMS_1V80[YC_9VY_B[/?:YSR'>LOS/7WWW.
-M<Y4[Y#O6WYGK[SXG[CX7[M#]=\;Z.W/]W>?$W>?"';K_SEA_9ZZ_^WSR9X?N
-MOS/6WYGK[\K9U3GD.];?F>OOP!SR'>OOS/5W8`[YCO5WYOJ[//>ESB'?L?[.
-M7'_W)<\5[M#]=\;Z.W/]W9?$W9?*'?(=Z^_,]7=?$G=?*G?(=ZR_,]???3E=
-MG!WR'>OOS/5WY>SJ'/(=Z^_,]7=@#OF.]7?F^CLPAWS'^CMS_5V>^UKGD.]8
-M?V>NO_N:YRIWR'>LOS/7WWU-W'TMW*'[[XSU=^;ZNZ^)NZ^%.W3_G;'^SEQ_
-M]_7DSP[=?V>LOS/7WY6SJW/(=ZR_,]??@3GD.];?F>OOP!SR'>OOS/5W>>Y;
-MG4.^8_V=N?[N6YXKW*'[[XSU=^;ZNV^)NV^5.^0[UM^9Z^^^)>Z^5>Z0[UA_
-M9ZZ_^W:Z.#OD.];?F>OORMG5.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7=M_H&;
-M^U[G@.]:UM^UKK_[GN<J=\!W-T]A[EK7WWU/W'W/W+4'_!3YOL?NS7[/O?%U
-MF4/?;[L\%<S=^^/';U=W@^B^*CK8^N^/FT\O?UZTZ+ZJ7WE]W>WYM=H<)O!7
-M_A,__GS]\,\R>'MWT!\8S*_PX5S^!>GN[@ZZC::V&W?NZ>,@]][P^9L>"W_#
-M3Z[OS:'OS?PKYX>N^_G98-<UTW0Q^+_Y]=U>]]-V3=LW[9@N<FREZ;3IVC)W
-M^UZ[Y?[K^\M?_];\_J=__,]Y[/_JV[V][F>^>?[FMW#6;.Z0#D+?[O_[MWLW
-M=_OE>_>GG>>,SCW!<[=?OM>?S*$//M?^[*F#TE=W\6M[-]<='CXUW'_J_-L,
-M:_:IF58R]]7-H6\?_RODW=X<,/?-\>8?6F]^@R?-LI]_L/;G;[[;##>?)G?_
-M:49O_U^FL3G*^?^RNQG\\:^_7__K;NS]];_?IM=W=W.`X`_^$^ST[FX.&-C;
-MS?]YD;_=YN$<^)W>KYW>^?<K<_=HIS<F6-`'_PEZ>M/=Z>%#.I\>_)3Y<?\:
-MT?MSX/<KOW)Z_>U7C?/7V`G\E?_$C]^O'_YY-]BFP4=[A3>#RR-^=ISG'O&S
-MXSSWB)\=Y[E'_>PX#S[B9\=Y[A$_.\YSC_C9<9Y[U,^.F\';?^?X2%_$SW-R
-M]V5R7YM!F\W<ZV-?CNOK>_AV[_Z=(_O2_Y,OXO@78WO$+^+GN9]_$=_^Z)M]
-8Q"_BY[E'_2+>'HXWWOOM/_VP*B?UK```
+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
+8?HB?YQ[U0[P]'&^\]]M_`$CJT>#UK```
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu
index c9d99d1..6b4a6ca 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.qcow2.gz.uu
@@ -1,26 +1,26 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.qcow2.gz
-M'XL("*([(U0``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=S(N;W5T`*V92V_4,!"`
-M[_T5+F]:6.)7DN51:$LK]=8BN'')\UB)*PK\=N+8B9/)3-PNWK6BKJSY9#O?
-MC)TT2>R',<V92IG:L[9D_6_7!)O]6#;6W5W?[.:?[LC">$)$(1U*3K@%Z]+C
-M!(5+^+J#X[C9Z"2"$V/4&A3"*7)T6QT([N1H6+KA9N0@0AX"M#CR9APT/F''
-M!R/4@>,3L<<G\?738QSL2+?')^WX8%1&X?(@3B!1>PI7!'$2B2HI7!7$*22J
-MIG!-$*>1J);`\8`J/2Y%HCB%$T%<AD1)"J>"N!R)HKSC8>_V2!3E'0][5R!1
-ME'<\[%V)1%'>\;!W%1)%><?#WM5(%.6=(+QC'M<@491W`GAW['!//*Y%HBCO
-M!/#NJ<,]FW`<BZ*\$\"[YP[WPN.0>B<H[P3P[J7#O?(XI-X)RCL!O'OM<"<>
-MA]0[07DG@'>G#O?&XY!Z)RCO!/#N[<H[CM0[07DG@7?O'"OQ.*3>2<H[";SC
-M#B<\#JEWDO).`N^DPRF/0^J=I+R3P#OM<*G'(?5.4MY)X%WF<+G'(?5.4MY)
-MX-W>X=Y['%+O).6=!-Y]<+B/'H?4.TEY)X%WGQSNS..0>B<I[Q3P[K/#??$X
-MI-XIRCL%O#MWN`N/0^J=HKQ3P+M+A_LZX006-7F7)'ASN*M5S@JDWJGT@;CK
-M-8Y^6#GD.*O\<9LC5[IC`Y@_'DCNM<J>4^)-6-L)&ZL*Y$IW=!>[Y7<"#KG[
-M".`XPB7.35C;W+4/C$W#VM8UNU(N.)\=$)`)'^]FN#KR^@WI]@B@UJPH5L`?
-MX_B&=.OSR[X;Z.W60S'0@FDUX8:YZFH^OJOK&W9[_NV[@?WTTQW2+2M8Q5F1
-MLP*.CE/3_8W9IVVZ92U<[1$G*=QT+`,X<[S(Z@T<UECWA\"IK:CII<,#[JW%
-MZ609-2];9ILH)6L+5M0$[@S@TLCF*=-=IBRK6-J8]TE5:_ZH4_.4QO(^3>RV
-M+88SUIYEW)S=>F!W?[>[M["WNU^G;GR*.R.P1G=0JZ>&RIQ3T\W\@P`Q7;;$
-M8:^1_FOU3%TN=;35VSM9L$9WD*M7V-7#%\FL'IHRW;AJ8\*-N#+NZG'["C,Q
-M]7M]I3NZV]WR:X'*`:.-4*5M%3$[#"YB=AA<Q.PPN*C988`1L\/@(F:'P47,
-M#H.+FAT]L$GB;>(&9]PK,E8+\YRX^'_!UG;<#8^/Z^DV8FOKW]C$\9O11-S$
-B#6YS$\\:>K+V\Q=,-N(F;G!1-W&5F>/WT3\!FKQU%1H`````
+M'XL(",]Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N<6-O=S(N;W5T`*V92V_<(!"`
+M[_D5I.\FS=8,8'O[2)JD62FWI&IOO?AYC-1KY?:WUQALUGC&)%MVD945FD^`
+MOQFPDR3FPYCB3*9,;EE;LOZW;<#V?LP;Z^YWMYO]3W=D8#PAHI`.*2;<C'7M
+M<$#A$K[LX#AN;W0"P<$8M02%<)(<W5H'@CLY&I9NN!FY%R$.`1H<>3,.&A^8
+M\?D1\L#Q0>SQ"7S]U!CG=Z3KXQ-F?'Y41N'R(`Z0J"V%*X(X@425%*X*XB02
+M55.X)HA32%1+X'A`E1Z7(E&<PD$0ER%1@L+)("Y'HBCO>-B[+1)%><?#WA5(
+M%.4=#WM7(E&4=SSL785$4=[QL'<U$D5Y!X1WS.$:)(KR#CSOCBWNF<.U2!3E
+M'7C>/;>X%Q..8U&4=^!Y]]+B7CD<4N^`\@X\[UY;W!N'0^H=4-Z!Y]U;BSMQ
+M.*3>`>4=>-Z=6MP[AT/J'5#>@>?=V<([CM0[H+P3GG?O+2MQ.*3>"<H[X7G'
+M+0X<#JEW@O).>-X)BY,.A]0[07DG/.^4Q:4.A]0[07DG/.\RB\L=#JEW@O).
+M>-YM+>Z#PR'U3E#>"<^[CQ;WR>&0>B<H[X3GW6>+.W<XI-X)RCOI>7=A<5\<
+M#JEWDO).>MY=6MR5PR'U3E+>2<^[:XO[.N$`BYJ\2Q*\6=S-(F<!J7<R?21N
+MM\31#RN''&>E.VYSY$IWK`#SIP/)O5::<TJ\"2LS86U5@5SICNYJ,_].P"%W
+MGP`<1SC'V0DKD[OF@;%I6-O:9E;*!F>M.R`@$S[>[.'JR.LWI-L3@$JQHE@`
+M?XSC&]*MSR_S;J"W6PW%0`%3<L(-<U75_OAN=K?L[O+;=PW[Z:8[I%M6L(JS
+M(F>%/SI.3?<W9I\RZ;9<[1$G*-QT+/-P^GB1U2LXK+'N#X&3:U'32X='W%N#
+M4\D\:K]LZ6VB%*PM6%$3N',/ET8V3^KN,F59Q=)&OT^J6OU'G>JG-);W:6*V
+M;1C.6%N6<7UVZX'=P_WFP<#.-K].[?@DMT9@C>Z@5D\.E3FGIINY!P%BNFR.
+MPUXC_=?JZ;I<JFBKM[6R8(WN(%>O,*N'+Y)>/31ENG'5QH0;<67<U>/F%6:B
+MZ_?R2G=T=YOYUP"E!48;H4S;*F)V:%S$[-"XB-FA<5&S0P,C9H?&1<P.C8N8
+M'1H7-3MZ8)/$V\0U3KM79*P&_9PX^W_!VG;<#8^/R^DVL+;UKVSB^,UH(F[B
+B&K>ZB6<-/5GS^>M--N(FKG%1-W&9Z>/WT3]QQ=U%%1H`````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu
index c8adeb3..751395c 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.raw.gz.uu
@@ -1,15 +1,15 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.raw.gz
-M'XL("/#%'50``VEM9RTQ>#$M-#`Y-BUG<'0N<F%W+F]U=`"MEC]O@S`0Q?=\
-MBI>U52W;V`262JW42MW2JMW:@3]FC-2=#U\?A@2(C1KIP$)(Q_UR]_#C(F4X
-M`*,AJ\@U'>B?Q?+L=W>[@:;JVX#^]ZF$%5!X8,`U/B@U/>,<NFY<4@U9(5E)
-M:#7>3SAQ.?9BAFO/6=<K'9CC1,!-[7:W`:U%55T!OZ;Z]/`Z+$P.4T+[YR6,
-M@M6PYHP;>K7-O+Z7US<<GSX^"?9]:5=[:5#[_!95!K<22:IDNS_K=@-.4U:W
-M5GO"94G</H[+**O=P,56&F>VLL(>^M^[#3@KEUG%/"MSJ#-T%:HV@7M<X7+F
-MG6<H7.<X-,@=K$+3T4V;0RF@\#8I!HB&]B66."CHFH#]Z5V<`NQ!_-Z/]1DU
-M[HC82@=2ZIEAJQ2I=@^TMS?;Q1*7<:M7D'J63;URW"RQE0XDU:N">G&12+VH
-M9?I)M<DA$Z[F54\-4\/[PW^_KZ_I0'\4RS,`S0ADJ]!H/S;XW$$X1G<0CM$=
-MA&-U!P$9W4$X1G<0CM$=A&-UAP<ZR3?$":?"F.Q:%!HN6]67&L>7^I;M.KTU
-F^C>&>/QE.,8A3KCM(>YN;99QB!..=8@;_W]*RMT?5F[7A(@+````
+M'XL("-!Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N<F%W+F]U=`"MEDU/A#`0AN_[
+M*UZO&INVM"Q[,=%$$V^KT9L>^"C'3;SSX^U0D*^6N,E`0TB&>7;FI2^S4H8#
+M,!JRC%S3@>Y)+,_N<'OH::JZ#NA_GTI8`84'!ESM@U+3,\ZA;8<E59\5DF4+
+MK<;[`2>FXT;,<,V4M5GIP!PG`FYLM[T.:"W*<@/\'.O3_>NP,#G,"=H_+V$4
+MK(8U?[B^5UO/ZWM^><7Y\?V#8%]3NUKY8.7S&Y09W$HDJ9+M?J_;#3A-61NU
+M1UR6Q-W$<1EE-3NXV$KCS%Y6V$/_>[<!9^4RJYAG90Y5AK9$V21P#RM<SKSS
+M#(6K',<:N8-5J%NZ:7(H!13>)D4/T="^Q!.."KHB8'=Y$Y<`NQ<_=T-]1@T[
+M(K;2@91ZIM\J1:K=(^WMW7:QQ&7<ZA6DGF53[S1LEMA*!Y+JE4&]N$BD7M0R
+MW:C:Z)`15_&JI_JIX?WAO]_;:SK0G<7R#$`S`-DJ--J/#3YW$([1'81C=`?A
+M6-U!0$9W$([1'81C=`?A6-WA@4[R#7'"J3`FVP:%ALM6]:7&\53?LEVG]T;_
+ESA"/OPS'.,0)MS_$W;7-,@YQPK$.<>/_3TEY^`7C-"Q#B`L`````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu
index 4631e38..6c3e301 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhd.gz.uu
@@ -1,22 +1,22 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.vhd.gz
-M'XL("`XUQ%4``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD+F]U=`"MF$MOVS`,@._Y
-M%0QVZS!#;R>7`2O0`KMUPX9==K$=IRN&=8_VT(/WWT?*4FS9EK&T=%0CB<+/
-M)$61K(3H+P"GP1W!M>`LO2\-N#V4.P"<#$/YNPP?H6M^WK?-X]U3$:YNT\.D
-M&$NEXB2O-!A\2`FJHH>X`[V'+F**5U>W%W<_;B-.!9P*(%N2E%;@ZMES#'Z[
-MZ[4CTI<[]=TC+[^=M--S[08I_"L/(`Q(.?J%CMHAIOB;&FM0ZGCTP\&A)=G3
-M2#XD$X.Q$]]9,9$:J;GD5#$8NX1S:U+GX"XV82WZ4,'`*/$NP$DH%;W'L(E^
-MF`T,E:>'7]6?AW:BG\J$BCOI)V=S.F^N"J&BXH^#!H;"><U<\)3'*6XA5%[D
-M/9?*Q=5%)P@;)Y0W/_7>@(*Q?DZ*%9_G%R.K7T7ZX680U<(]/]%=%NGK!*SK
-M\X#1@RGN9'#=D/]\'FC;P:(^2(*P-J!D=D',=N2_^L"\OO7Q/*"U4%4SX.>H
-M7^.7PX)Q8/84&)@<C`2KP`[A[&VUS5B_J^OW<//NXR>"?1W,;2A<&@5-"7L%
-M<C_1;K[3UG-+0YM-ZZFW(T[G<'J[C*/-IN4*;FE`)S,XLR9UJB7_;:P5J=1N
-M+*5;J#4<*Z@.&=S;"8X[+[<T73LH&RKA5D+C:_G!42&#'6X37]_0`H4J8F%'
-M1]<$[.X_%/<][$WQ^W70KY4A(I9&?B+GO=;GY5W.W')(V!ES(<5QY^5V1]ZS
-M;-[;AV!9&OF)K/>JWGO+3B+O+6Z96-6*8IOB:E[O25\U<']@_I[?\Q/=39&^
-M>J`*98BMKJF02-DT-`'(IJ$)^Y=10]FN+N:YJVQ4J1@S#.$8,PSA&#,,X5@S
-M#`$9,PSA&#,,X1@S#.%8,PP"C>!KA`CG&R&LX>A]3=!$C6Q+0_I=$TJGYAJU
-MUC[E&Z',8AC&1HAPJXT0_A>=-]9?:F(L8R-$.-9&R(5$RG26X6(C--?A.6<9
-J+C9"8G#@"\XRW'(C]-RS#,(QGF40CO$L@W#,H2*Q=]G\`YT_-4@`$P``
+M'XL("-!Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD+F]U=`"MF$MOVS`,@._]
+M%2QVZS!#;R>7`2O0`KMUPX9==K$=IPN&98_VT(/WWT?*4FS9EK&T=%0CB<+/
+M)$61K(3H+P"GP>W!M>`LO2\-N"V4&P"<#$/YNPP?H6M^'MOF\?!4A*N[Z&%2
+MC*52<9)7&@P^I`15T4/<CMY#%S'%JYO[J\./^XA3`:<"R)8DI16X>O8<@]]N
+M>NV(].6@OGOD];>3=GJNW2"%?^4.A`$I1[_043O$%']38PU*[?=^.-BU)'L:
+MR8=D8C!VXCLK)E(C-9><*@9CEW!N3>H<W-5%6(L^5#`P2KP+<!)*1>\Q;*(?
+M9@-#Y>GA5_7GH9WHIS*AXD[ZR=F<SINK0JBH^..@@:%P7C,7/.5QBEL(E1=Y
+MSZ5R<771"<+&">7-3[TWH&"LGY-BQ>?YQ<CJ5Y%^N!E$M7#/3W371?HZ`>OZ
+M/&#T8(H[&5PWY#^?!]IVL*@/DB"L-2B971!].?)?O6->WWI_'M!:J*H9\'/4
+MK_'+8<$X,%L*#$P.1H)58(=P]K;:9JS?S>U[N'OW\1/!O@[F-A0NC8*FA*T"
+MN9UH-]]IZ[FEH<TV]W;$Z1RN7X(YCC:;EBNXI0&=S.#,FM2IEORWL5:D4INQ
+ME&ZAUK"OH-IE<&\G..Z\W-)T[:!LJ(1;"8VOY3M'A0PVN$U\?4,+%*J(A1T=
+M71.P.WXHCCWL3?'[=="OE2$BED9^(N>]UN?E3<[<<DC8&7,AQ7'GY79#WK-L
+MWMN&8%D:^8FL]ZK>>\M.(N\M;IE8U8KB,L75O-Z3OFK@_L#\/;_G)[J[(GWU
+M0!7*$%M=4R&1LFEH`I!-0Q/V+Z.&LEU=S'-7V:A2,688PC%F&,(Q9AC"L688
+M`C)F&,(Q9AC",688PK%F&`0:P=<($<XW0EC#T?N:H(D:V9:&]+LEE$[--6JM
+M?<HW0IG%,(R-$.%6&R'\+SIOK+_4Q%C&1HAPK(V0"XF4Z2S#Q49HKL-SSC)<
+I;(3$X,`7G&6XY4;HN6<9A&,\RR`<XUD&X9A#16+O<O$/A6BFVP`3````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu
index b8ea03f..598c046 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vhdf.gz.uu
@@ -1,19 +1,19 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.vhdf.gz
-M'XL("'LEAE4``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD9BYO=70`K9??B]0P$,??
-M]Z\8\>'DQ)#?[;X("J?XMAX>OOC2'\FQB"N"B`_]X\TD[37I)H63=$/I,IW/
-MSG<ZT\E2&@X`R8%VF7/9,+TGZ6<ZW!X\C?7/`[K?QQ`V0.*``3<X(^5XCS%@
-M[;PH\U[!V2W>KM<>1];C%8EP8^RU665#C",!M\BUSP,J!5UW!7Q8XN/^<2B0
-M&N01N+N?@F2@."CYA//:U1#'=_?A$YS>W7]!V+=5+F?..`A@'&2#E#0Z5I;[
-M\3Z5&W`N(,P^;[)B11%WL\U>P`G$C3NXW"KCY)X7Y66Q>9RBJ5<;>PD#O0#;
-M03<6<&\W.%VY\B2:>PW-`-J`8C!8O!@U,`;0NC8)/<&!NQ"/T##@/0*GRV=R
-M";`WY-?K.3[)YHK(K;*AE#V)I4+;DMP&:WM7+J0X43M[+69/5<O><2Z6W"H;
-MBMGK0O;R2<+LY5K7X>:LD1<IKJ^;/>:GANL/]_Z^/I<-TXFDGP"4,[!:A-+:
-MH6)W(*YB=R"N8G<@KFIW(+!B=R"N8G<@KF)W(*YJ=SB@H?6&..*P]@R%1H-M
-M<`.1A%$<QQ/YX_85>-PD<@W?&_T[0SS_,$S%(8ZXW2%N35'L<FS$5ASBB*LZ
-MQ-6\_=8"M.\OK?"ZD:!=2[4QD*\UXX'#SXL9?I__QME3_LT,ZR9YL]"?"RQ,
-M[5JDPQ_1(UY'\;V\>[P]_WA<<'Q6M210->@E..C^2JY*Y7X]\^\>>5JCR[RF
-M5)R]HP8J\143"Y^C.Z6EHOP.:!%K++02?9]6\B4Q9`L9<;Y4XIO_]]D&7.U2
-.<7\-#O\`_#?S";,-````
+M'XL("-!Q+ED``VEM9RTQ>#$M-#`Y-BUG<'0N=FAD9BYO=70`K9=/J]P@$,#O
+M^RFFO,/"*Q4U:K*7!RV\EMZVCY9>>LD??2RE6PJE])`/7T?-1G<U\(I&@LMD
+M?IF9S#@NI7X`"`ZTS]S+@OD=2:]Y=[]S-#:\#&C?CR9<`8D%>MQHA93C,UJ#
+M,6%2YK2\LOW-V[!><&0=>Q+AIHO6[2P+8ASQN,5=\S*@E-#W-\`OBWW<?0X)
+M0H$X`+?/4Q`,)`<I+CCGNQQC^Q[??X3CVZ?/"/NVNLN9%8X-,`ZB14IJ'2N[
+M^^$I==?CK$&9:"^XIHC;7T?/XQK$31NXW"SCQ)86Y65G\SA)4ZTNUFHT#`V8
+M'OJI@'NXPJG*F2=0/"AH1U`:)(/1X&)2P!A`9\ND<Q`.W)IX@)8!'Q`XGS^1
+MLX>](;]>!_L$"QF1FV5!*7H"4X5V)7=;S.U-=R'%-;6CUV'T9+7H'4*RY&99
+M4(Q>[Z.7#Q)&+U>Z%A>B1EZEN*%N])CK&K8^[/Y]>R\+YB-)+P\4`5C-0F',
+M6+$Z$%>Q.A!7L3H05[4Z$%BQ.A!7L3H05[$Z$%>U.BQ0TWI-''&8>YI"J\"T
+M>(!(S"BVXYG\L><*'/O$7<VW6O]&$\]_#%VQB2-NLXD;771V&5?.5FSBB*O:
+MQ&4X?JL&E*LO)7'="E"VI+H8R-><<<#QYUF/OT]_X^A)MS/#>DB^FJC/&TQ,
+M94NDQY>H"=>1?7>/S_>G'\\+C@>OE@#*%K4:#FJX<5>F[GX]\>\.>5RMRVQ3
+M,H[>00$5N,7$C@?KCFFJ2'<"6IS5!CJ!NI>9_$@$V41&G$N5^.'__;8>5SM5
+-[%^#W3\[9-S+LPT`````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu
index 782cb6c..d7c21b2 100644
--- a/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-4096-gpt.vmdk.gz.uu
@@ -1,87 +1,87 @@
# $FreeBSD$
begin 644 img-1x1-4096-gpt.vmdk.gz
-M'XL("/'%'50``VEM9RTQ>#$M-#`Y-BUG<'0N=FUD:RYO=70`K5Q=C]S&$7SW
-MKYC(#S829,%:DLOE@X+8D1T800!%=I*7/(2?\2&VI)P.A@WLCP^'G)HKWNT<
-M*5^?]K3;8G?M=,^RN:HN,,N6'^>*UA6%*WI7GEP&-_W3\G!9?F],C^.9!RY_
-M>?77?QSX\_GA</ED`8./DA!D"B?&ZGTNAP<_A#L^%;4Z,#V.FW"YCVH?!0:X
-M8^)`$JZ8#AZOA7!US7RX]R\$SD4@MX(KK^243/:IU?WVDU`\O[[<KV':WE/M
-MJMR=VF"Z4SG;N:N.\[',59/3.`%^ZE[=?/BO>S5\Z&YOWM^]"^L[^KV=G(N3
-M]S]U'F%*K#KY%_Z`AZL]Q&EP>>]R^,/N<OOUS0_#X:?A]L/-N[<OP72/?F^+
-MW!6U7X[WS^X?*\._2>9.\._A+G_ZYM7+\,G-#N^;6\+YJ&DATWM/>2CNZ>3\
-M[^/'O+KA[9U'',-/7)W?VU"<<G[OPK\H"U?5;EY.Z;&/T^$^I#S7KKL=FKOA
-MNU_>#R]?_/CN;:R=WUM?LGH&.L^%REV9>ZB0FB]?Z1']QV;>-7?YX>;N^YON
-MVRG-#\.+PZ>.<"=?NVD#SV%=2]93R"FYL].R+U_]?#?EZ_JPLS>$FQ<Q)S&]
-M=WET9>6QI@V<M^+H\L*_FOYI6O"420'OY"[OWA[>_',ZQ7VQOGW]Q1O"G:>H
-MR7-:X!0R);3*J5SR+Q]^+-WEVZ_<"Y_D=]\/\R>0</5RFGGG91\PFT?_(E1M
-M@?=-K/`'YIUUKYJ[QGW9?!@.G[YZ]67<V<8G6\R/:6F#1SDMT/[S/9=S*MRR
-MT\M&SUO1]^VAZ9OW=\.MW]ZX%:TO41\R]=M:W&_C^GVJ>:=&_XEQEY?NQ4T_
-M[:F'_<_P[D?"=<O'>%J'_TC4<V#N7TR?GAE^".^P?&+\-GFXX>[VET/WRP\W
-M;_OI1',O"=<OM9N6L^SF_69.&SBM\.H"I]J]F'<U+H]P@U]=_VB!\WZ&0L9%
-MQ;=UEQ_GY7T_-/VTM`F;<*-?W?'Z.D*E'KS5A.XN]U6;<3\$N#P++2`/K6Q5
-MHKB<Y0VE@0[=W;O;96$OI!_G#Z]ES^W'Q:-+:O4K`1<XZ_6=L@?7LUSC"C'*
-M%:"_BF73[Q^GW]?WZSOY]9W$L]*HLQCU"N[?$\3[Q^F>_%G8B&>K49T8_9[J
-MG7QK&\1S?%@]?M6`O$[#\;L`/7.-*L0H5W"IVI6A=O2L-.HL1KV"2]7N%&I'
-MSU:C.C'Z7<E6H7;T'#7*/_&K%+(=7\M.YU`[>N8:58A1KN!2M:M#[>A9:=19
-MC'H%EZI=$VI'SU:C.C'Z7<FVH7;T'#7*/[%!0%ZGX;I0.WKF&E6(4:[@4K7K
-M0^WH66G468QZ!9>JW1!J1\]6HSHQ^EW)CJ%V]!PURC\54KMB"Z[*0NWHF6M4
-M(4:Y@DO4KF*_HV>E46<QZA5<HG85^QT]6XWJQ.AW)<M^1\]1H_Q3*;4K-^'8
-M[^B9:U0A1KF"2]6._8Z>E4:=Q:A7<*G:L=_1L]6H3HQ^5[+L=_0<-<H_G:1V
-MITTX]CMZYAI5B%&NX%*U8[^C9Z519S'J%5RJ=NQW]&PUJA.CWY4L^QT]1XWR
-M3_P2!'F=AF._HV>N4848Y0HN53OV.WI6&G46HU[!I6K'?D?/5J,Z,?I=R;+?
-MT7/4*/]$0@;R.@EWSD+MZ)EK5"%&N8)+U.[,?D?/2J/.8M0KN$3MSNQW]&PU
-MJA.CWY4L^QT]1XWR3[74KMZ$8[^C9ZY1A1CE"BY5._8[>E8:=1:C7L&E:L=^
-M1\]6HSHQ^EW)LM_1<]0H_\3_/T%>I^'8[^B9:U0A1KF"2]6._8Z>E4:=Q:A7
-M<*G:L=_1L]6H3HQ^5[+L=_0<-<H_D7^$O$[#L=_1,]>H0HQR!9>J'?L=/2N-
-M.HM1K^!2M6._HV>K49T8_:YDV>_H.6J4?^JD=MT67)V%VM$SUZA"C'(%EZA=
-MS7Y'STJCSF+4*[A$[6KV.WJV&M6)T>]*EOV.GJ-&^:=>:M=OPK'?T3/7J$*,
-M<@67JAW['3TKC3J+4:_@4K5COZ-GJU&=&/VN9-GOZ#EJE'\:I';#)AS['3US
-MC2K$*%=PJ=JQW]&STJBS&/4*+E4[]CMZMAK5B='O2I;]CIZC1OFG46HW;L*Q
-MW]$SUZA"C'(%EZH=^QT]*XTZBU&OX%*U8[^C9ZM1G1C]KF39[^@Y:E0FTS/(
-MZR1<DRVUBYZY1A5BE"NX1.V:T.^B9Z519S'J%5RB=DWH=]&SU:A.C'Y7LJ'?
-M1<]1HWS)A+_#)J75A'X'X>^@_!V$O\,F?]>$?@?A[Z#\'82_PR9_UX1^!^'O
-MH/P=A+_;D6SH=Q#^#LK?0?@[;%):3>AW$/X.RM]!^#ML\G=-Z'<0_@[*WT'X
-M.VSR=TWH=Q#^#LK?0?B['<F&?@?A[Z#\'82_PR:EU81^!^'OH/P=A+_#)G_7
-MA'X'X>^@_!V$O\,F?]>$?@?A[Z#\'82_VY%LZ'<0_@[*WT'X.VQ26FT6:B?\
-M'92_@_!WV.3O6O8[X>^@_!V$O\,F?]>RWPE_!^7O(/S=CF39[X2_@_)W$/X.
-MFY16RWXG_!V4OX/P=]CD[UKV.^'OH/P=A+_#)G_7LM\)?P?E[R#\W8YDV>^$
-MOX/R=Q#^#IN45LM^)_P=E+^#\'?8Y.]:]COA[Z#\'82_PR9_U[+?"7\'Y>\@
-M_-V.9-GOA+^#\G<0_@Z;E%;+?B?\'92_@_!WV.3O6O8[X>^@_!V$O\,F?]>R
-MWPE_!^7O(/S=CF39[X2_@_)W$/X.FY16EX7:"7\'Y>\@_!TV^;N._4[X.RA_
-M!^'OL,G?=>QWPM]!^3L(?[<C6?8[X>^@_!V$O\,FI=6QWPE_!^7O(/P=-OF[
-MCOU.^#LH?P?A[[#)WW7L=\+?0?D["'^W(UGV.^'OH/P=A+_#)J75L=\)?P?E
-M[R#\'3;YNX[]3O@[*'\'X>^PR=]U['?"WT'Y.PA_MR-9]COA[Z#\'82_PR:E
-MU;'?"7\'Y>\@_!TV^;N._4[X.RA_!^'OL,G?=>QWPM]!^3L(?[<C6?8[X>^@
-M_!V$O\,FI=5GH7;"WT'Y.PA_ATW^KF>_$_X.RM]!^#ML\G<]^YWP=U#^#L+?
-M[4B6_4[X.RA_!^'OL$EI]>QWPM]!^3L(?X=-_JYGOQ/^#LK?0?@[;/)W/?N=
-M\'=0_@["W^U(EOU.^#LH?P?A[[!):?7L=\+?0?D["'^'3?ZN9[\3_@[*WT'X
-M.VSR=SW[G?!W4/X.PM_M2);]3O@[*'\'X>^P26GU['?"WT'Y.PA_ATW^KF>_
-M$_X.RM]!^#ML\G<]^YWP=U#^#L+?[4B6_4[X.RA_%\5TD-<"YY;?`#=D2^VN
-M2LJO_%.LG;NZNL%:'SB.>P'SZ^GZ/8[I(GMR&1^_/LSZQ3CS6*K^ZP`7../Z
-M(<[?I4SW<1^KKT2<O_/Q+'TEXOR=CV?I*Q'G[WP\2U^).'\WT5<BSM]-])6(
-M\W<3?27B_-U$7XDX?S?15R+.WTWTE8CS=Q-])>+\W41?B3A_-]%7(L[?3?25
-MB/-W$WTEXOS=1%^).'\WT5<BSM]-])6(\W<3?27B_-U$7XDX?S?15R+.WTWT
-ME8CS=Q-])>+\W41?B3A_-]%7(L[?3?25B/-W$WTEXOS=1%^).'\WT5<BSM]-
-M])6(\W<3?27B_-U$7PG.WVWTE>#\W49?"<[?;?25X/S=1E\)SM]M])7@_-U&
-M7PG.WVWTE>#\W49?"<[?;?25X/S=1E\)SM]M])7@_-U&7PG.WVWTE>#\W49?
-M"<[?;?25X/S=1E\)SM]M])7@_-U&7PG.WVWTE>#\W49?"<[?;?25X/S=1E\)
-MSM]M])7@_-U&7PG.WVWTE>#\W49?"<[?;?25X/S=1E\)SM]M])7@_-U&7PG.
-MWVWTE>#\W49?B3A_I^>S])6(\W=Z/DM?B3A_I^>S])6(\W=Z/DM?B3A_-]%7
-M(L[?3?25B/-W$WTEXOS=1%^).'\WT5<BSM]-])6(\W<3?27B_-U$7XDX?S?1
-M5R+.WTWTE8CS=Q-])>+\W41?B3A_-]%7(L[?3?25B/-W$WTEXOS=1%^).'\W
-MT5<BSM]-])6(\W<3?27B_-U$7XDX?S?15R+.WTWTE8CS=Q-])>+\W41?B3A_
-M-]%7(L[?3?25B/-W$WTEXOS=1%\)SM]M])483/65&$SUE1A,]9483/65&$SU
-ME1A,]9483/65&$SUE1A,]9483/65&$SUE1A,]9483/65&$SUE1A,]948L\Q0
-M7XG15%^)T51?B=%47XG15%^)T51?B=%47XG15%^)T51?B=%47XG15%^)T51?
-MB=%47XG15%^)T51?B=%47WG,LLQ07WE\=*_CG7"/DUWT@4>8ZBN/QR>7\?'K
-M*^;Z+7=7??QW^L#ER\/Z3P1$^W&`7.$:C@D7\.?&HO4:!C>.X;$HY^XSC'>Q
-MOI+PYP>!ZXWKMW]_ET=9NJ9Y!/AWKF_>WZ+T]V,NZOGFO+PS;UE$N#GWLM/U
-M??7U-^[U%V^^\V#_ND]WOKUSEWNRK:@\RGIU2*?[YS>/SXYBOKWS5/UC=379
-M/`GWV;63K9AO[SSV3\!=>Z3ABJ>B/O9.X,5\>V>-4O6MRP?7YFYL7-,GX/[P
-M`.YD_,F;[SS;GES5^?L'EW#=?+/G_N1I:7>>3I/EG#BZ8^^5"!7<T=^1^7!Y
-M^[?#VP7L]X?__2ZL;[GS+*X_T@=2U2OFN[R?4^E6B8:];O,"EUM7SW]?:4NS
-MZM7APW+MD3Z0K%ZS5"]Q59NJ=^W4G>!X5?O-&JZUK5XY7S46X<GCO],'+J\/
-MZS\+8!$`S598^%L*VIT='L[P[/!PAF>'AS,].SR@X=GAX0S/#@]G>'9X.-.S
-MH_`WC+2[B'LX+-^8JY,;*_\%8K6,Y.7X<OAI^E[A?SY;I3MSCLE+_Q,7\>N;
-G,1A>Q#W<DQ?Q<4@FRY\'R1I>Q#V<Z46\\'?OS#[Y/TT579ZT90``
+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
+E>!'W<,]>Q,<AF2Q_'B1K>!'W<*87\<+?O3/[[/^_O`I!M&4`````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu
index 93e4a77..efa290f 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow.gz.uu
@@ -1,6 +1,6 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.qcow.gz
-M'XL("*,S(E0``VEM9RTQ>#$M-3$R+6=P="YQ8V]W+F]U=`"MG<MN7-F11>?U
+M'XL(",5Q+ED``VEM9RTQ>#$M-3$R+6=P="YQ8V]W+F]U=`"MG<MN7-F11>?U
M%5=OB9*HC(C[U-MNM`'/RH9[UH.ZKQQU&]ES?7PSR?,@(_=6V!!51$$%X6YD
M'BTNJE2KC@Z'NV]-TTG3]DT[-<>EN?GG]"'-O7]X^-'\^-M?_GI]_]N/W^[&
MY/"3I]P_M]I(FGNP]><ZI^>GUN8P_0MS-Q]P[MZKLW_CU=U[LY=S5[_=O5G\
@@ -117,16 +117,16 @@ M?_<MSQ7NT/UWQOH[<_W=M\3=M\H=\AWK[\SU=]\2=]\J=\AWK+\SU]]].UV<
M'?(=Z^_,]7?E[.H<\AWK[\SU=V`.^8[U=^;Z.S"'?,?ZNS9_Q\U]KW/`=RWK
M[UK7WWW/<Y4[X+N;IS!WK>OOOB?NOF?NV@-^BORYQ^[-?L^]\7690W_>=GDJ
MF+OW[<=O5W>#Z+ZJMF2`T>O[P[\^=%_5K[R^[O;\6FT.,_@[_X$??[Y^^%<9
-MO+T[Z-\8S*_PX5Q^P]W=W4&WT=1^X\YC^CC(_3<\UNOTP!M^<GUO#OW9S+]R
+MO+T[Z-\8S*_PX5Q^P]W=W4&WT=1^X\YC^CC(_3<\U.OTP!M^<GUO#OW9S+]R
M?NBZGY\-=ETSSQ>#_Y5?W^UU/VW7M'W33NDBQU::3INN+7.W[[5;[[^^__S+
-M7YO?__3W?YS'_KN^W=OK?G9MAO7V#Q_8W*L3^G9_^+=[-W?[Y7OPIYWGC,X]
-MP7.W7[Z[G\RA#S[7_NRI@])7=_%S>S?7'1X^-=Y_:NR:49O^YM^&9CKW/P_F
-MT!\?_RODW=X<L/3GG]O^YA=XTJS'\W>V_OR'[S;CS:?)W7^:T=O_EVEJ!CG_
-M7W;GG]M__NWZGW=C[Z__[VUZ?7<W!PC^X#_`3N_NY@!&Q"%GB_SM-@_GP*_T
-M?NWTSK]>6;I'.[TIP8(^^`_0TYOO3@\?TOE%P4^9'_>O$;T_!WZ]\DNG=_M_
-M-9Z_QL[@[_P'?OQ^_?"ON\$V#3[:*VP/_?J(GQWGN4?\[#C//>)GQWGN43\[
-MSH./^-EQGGO$SX[SW"-^=ISG'O6SXV;P]O<<'^F+^'GNS%YKS;PVZ]#T_HLX
-M^W+\XS^NK_\7O-V[WW-D7_I_\D4<_V3LC_A%_#SW\R_B/?VYS=_<FWW$+^+G
-4N4?](MX>AAN9_O;_@'C+'O6L````
+M7YO?__3W?YS'_KN^W=OK?G9MAO7V#Q_8W*L3^G9_^+=[-W?[Y?OBM/.<T;DG
+M>.[VRW?WDSGTP>?:GSUU4/KJ+GYN[^:ZP\.GQOM/C5TS:M/?_-O03.?^Y\$<
+M^N/C?X6\VYL#EO[\<]O?_`)/FO5X_L[6G__PW6:\^32Y^T\S>OO_,DW-(.?_
+MR^[\<_O/OUW_\V[L_?7_O4VO[^[F`,$?_`?8Z=W=',"(..1LD;_=YN$<^)7>
+MKYW>^=<K2_=HIS<E6-`'_P%Z>O/=Z>%#.K\H^"GSX_XUHO?GP*]7?NGT;O^O
+MQO/7V!G\G?_`C]^O'_YU-]BFP4=[A>VA7Q_QL^,\]XB?'>>Y1_SL.,\]ZF?'
+M>?`1/SO.<X_XV7&>>\3/CO/<HWYVW`S>_I[C(WT1/\^=V6NMF==F'9K>?Q%G
+M7XY__,?U]?^"MWOW>X[L2_]/OHCCGXS]$;^(G^=^_D6\IS^W^9M[LX_X1?P\
+4]ZA?Q-O#<"/3W_X?EY=\._6L````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu
index 7528fc4..a979932 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.qcow2.gz.uu
@@ -1,26 +1,26 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.qcow2.gz
-M'XL(")4[(U0``VEM9RTQ>#$M-3$R+6=P="YQ8V]W,BYO=70`K9A+;YPP$(#O
-M^15.WTT:BL<VC[Z3-"OE4B55>VL/+(]3%:EWVM]>C`T&,P/)UKMHE<B:3V/S
-MS=@0Q^;#F.),)DSFK-FS[G][`9O\,[]8>[N[CJ:?]LC`>$Q$(0-2C+@9Z]+A
-M@,+%?#G`<=PD.X'@8(A:@K9PDLQN;0#!G1SU2]??C,R+$(<`#8Z\&0?E!R8_
-M/T(>F!^$SD_@ZZ>&.'\@6<]/F/S\J)3"99LX0*)R"E=LX@02M:=PY29.(E$5
-MA:LW<0J):@@<WU"EPR5(%*=PL(E+D2A!X>0F+D.B*._XMG<Y$D5YQ[>]*Y`H
-MRCN^[=T>B:*\X]O>E4@4Y1W?]JY"HBCO@/"..5R-1%'>@>?=L<4]<K@&B:*\
-M`\^[QQ;W9,1Q+(KR#CSOGEK<,X=#^AU0WH'GW7.+>^%P2+\#RCOPO'MI<2<.
-MA_0[H+P#S[M3BWOE<$B_`\H[\+P[6WC'D7X'E'?"\^ZU9<4.A_0[07DG/.^X
-MQ8'#(?U.4-X)SSMA<=+AD'XG*.^$YYVRN,3AD'XG*.^$YUUJ<9G#(?U.4-X)
-MS[O<XMXX'-+O!.6=\+Q[:W'O'`[I=X+R3GC>O;>X#PZ']#M!>2<][SY:W">'
-M0_J=I+R3GG?G%G?A<$B_DY1WTO/NTN(^CSC`HD;OXAB_+.YJ4;.`]#N9W!.W
-M6^+HAY5#CK/2';<Y\DL/K`"SAP/)O5::<TJX"2LS86U5@?S2`^U%-/^.P+YV
-M'P`<,ISC[(25J5WSP%C7K&GL95;*!F>3`P(RX>-H@JL"KU]?;@\`*L6*8@'\
-M/N37EUM77^;=0&>WZIN!`J;DB.OGJLII?E>[:W9S_O6;AOUPT^W+3>-J_;!4
-M)%YVG)KNU1?$/F7*+6W\U1YP@L*-QS(/IX\7:;6"PR[6_B%P<BUJ?.EPCWMK
-M<"J>1TW;%LL4RX`E):L*$O=KADL"FR?U\#YA:<F26K]/*AO]1Y7HIS26=65B
-MMFWHSU@Y2[D^NW7`]NXVNC.PL^CWJ<U/<FL$=M$#U.I)6#-")[4Q73;'8:^1
-M_FOU=%_>JV"KEUM9L(L>(%>O,*N'+Y)."BV9=EBUH>`&W#[PZB5ZN*N/KG\O
-M?^F!]B::?PU06F"P#&72E`&K0^,"5H?&!:P.C0M:'1H8L#HT+F!U:%S`ZM"X
-MH-71`>LXW":N<=J]/&.J8KED335/@]R.V^@G.MT:UK;^E4T<OQEUP$U<XU8W
-?\;0F)VL_?[W)!MS$-2[H)BY3??P^^@=.=Z`2%1H`````
+M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YQ8V]W,BYO=70`K9A+;YPP$(#O
+M^15.WTT:BL<VC[Z3-"OE4B55>VL/[`*G*E+OM+^]&!N\F!F<;+V+5HFL^30V
+MWXP-:6H^C"G.9,9DR=HMZ_^W%["]?^87ZVXWU\G^ISLR,)X24<B`%!-NQKIT
+M.*!P*5\.<!RWEYU`<#!&+4$AG"2S6QM`<"='P](--Z/P(L0A0(,C;\9!^8')
+MSX^0!^8'L?,3^/JI,<X?R-;S$R8_/RJG<$40!TA42>&J($X@45L*MPOB)!)5
+M4[@FB%-(5$O@>$"5'I<A49S"01"7(U&"PLD@KD"B*.]XV+L2B:*\XV'O*B2*
+M\HZ'O=LB491W/.S=#HFBO.-A[VHDBO(.".^8PS5(%.4=>-X=6]PCAVN1*,H[
+M\+Q[;'%/)AS'HBCOP//NJ<4]<SBDWP'E'7C>/;>X%PZ']#N@O`//NY<6=^)P
+M2+\#RCOPO#NUN%<.A_0[H+P#S[NSA7<<Z7=`>2<\[UY;5NIP2+\3E'?"\XY;
+M'#@<TN\$Y9WPO!,6)QT.Z7>"\DYXWBF+RQP.Z7>"\DYXWN465S@<TN\$Y9WP
+MO"LM[HW#(?U.4-X)S[NW%O?.X9!^)RCOA.?=>XO[X'!(OQ.4=]+S[J/%?7(X
+MI-])RCOI>7=N<1<.A_0[27DG/>\N+>[SA`,L:O(N3?'+XJX6-0M(OY/9/7&;
+M)8Y^6#GD."O=<9LCO_3`"K!X.)#<:Z4YI\2;L#(3UE95R"\]T%TD\^\$'&KW
+M`<`QPSG.3EB9VC4/C$W#VM9>9J5L<-ZZ`P(RX>-D#U='7K^AW!X`5(I5U0+X
+M?<QO*+>^OLR[@=YN-30#!4S)"3?,5>WV\[O:7+.;\Z_?-.R'F^Y0;AK7Z(>E
+M*O.RX]1TK[X@]BE3;LO5'G&"PDW',@^GCQ=YO8+#+M;](7!R+6IZZ7"/>VMP
+M*IU'[;<M5BA6`,MVK*Y(W*\9+HMLGM3#VXSE.Y8U^GW2KM5_U)E^2F-%7R9F
+MVX;AC%6RG.NS6P_L[FZ3.P,[2WZ?VOPDMT9@%SU`K9Z$-2-T4H'ILCD.>XWT
+M7ZNG^_)615N]TLJ"7?0`N7J563U\D712:,ETXZJ-!3?BMI%7+]/#?7WT_7OY
+M2P]T-\G\:X#2`J-E*+-V%[$Z-"YB=6A<Q.K0N*C5H8$1JT/C(E:'QD6L#HV+
+M6AT]L$GC;>(:I]TK"Z9J5DK6UO,TR.VX2WZBTVU@;>M?V<3QF]%$W,0U;G43
+>SQMRLO;SUYMLQ$U<XZ)NXC+7Q^^C?SXHP2(5&@``
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu
index 98d9945..9966862 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.raw.gz.uu
@@ -1,15 +1,15 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.raw.gz
-M'XL(".C%'50``VEM9RTQ>#$M-3$R+6=P="YR87<N;W5T`*V534_#,`R&[_L5
-MWA5$E*1)FIWXD$#B-A#<N/1C/:%)W,M_)VX:UG9Q89+3J*KD^JGM^*VEC`O`
-M:)!5YDX;^@<QO_K-U6:@J?HR8/@^AK``B@",N"88I<9W#@?HNG%+-7A%9VE!
-MJ_0\XL1I;<4$UYZ\SC9MF.)$Q*5TN\N`UD)5G0'?4WQZ.`X+QH'9@0[O2S`*
-MK`9K?G%#KK:9QO?X]`S[^]<WA'V<TM4J&%4#1D)30MLMHE-DNG?+="-.HY=9
-M5COA"A*WS>.*>+8T+K=IG%GSBCWTO[.-."OG7G[JY2UX#:Z!MB)QGS.<8^X\
-M@^;:0=F`.X!5T'3XT#I0*L079.('2*AO"W('I0)=([`_OHACA-V(K^LQ/J/&
-MCLAMVD!5S^BUCL"@_D@7YKB"NWH>JV?9JK<;FR6W:0-9O2I6+U\D4C)]JEI2
-M2,+5S-5S:`[Z"/_O\SMMZ/=B?D6@&8%L$8;F<XSJ0!RC.A#'J`[$L:H#@8SJ
-M0!RC.A#'J`[$L:HC`+WD&^*(&X:X@;*%MH!B.<2I<=R+;W&;2=?KM=&_,L3S
-CA^$9ASCBUH=X02:;UB)9QB&..-8A'H"5E)L?B^NWCH@+````
+M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YR87<N;W5T`*V52T_#,`S'[_L4
+MWA5$E*1)EIUX2"!Q&PAN7/I83V@2]_+=B9N&]1$7)CF-JDJN?[4=_VLIXP(P
+M&F29N=.&[D%,KVYSM>EIJKH,&+Z/(<R`(@`CK@Y&J?&=XQ':=MA2]5[161K0
+M*CT/.'%>6S'"-6>OQ:8-8YR(N)1N>QG06BC+!?`]Q:?[X[!@')@]Z/"^!*/`
+M:K#F%]?G:NMQ?(]/SW"X?WU#V,<Y7:V"4=5@)-0[:-I9=(I,]VZ>;L1I]%I4
+M.^$*$K?-XXIXMC0NMVF<6?.*/?2_LXTX*Z=>?NSE+7@-KH:F)'&?$YQC[CR#
+MYLK!K@9W!*N@;O&A<:!4B"_(Q/>04-\&Y!YV"G2%P.[T(DX1=B.^KH?XC!HZ
+M(K=I`U4]H]<Z`H/Z(UV8X@KNZGFLGF6KWGYHEMRF#63UREB]?)%(R72I:DDA
+M"5<Q5\^A.>@C_+^7=]K0'<3TBD`S`-DB#,WG&-6!.$9U((Y1'8AC50<"&=6!
+M.$9U((Y1'8AC54<`>LDWQ!'7#W$#NP::`HKY$*?&<2>^Q6TF7:_71O_*$,\?
+CAF<<XHA;'^(%F6Q:LV09ASCB6(=X`)92;GX`")Q24X@+````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu
index 81f18cb..0316665 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.vhd.gz.uu
@@ -1,22 +1,22 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.vhd.gz
-M'XL("/<TQ%4``VEM9RTQ>#$M-3$R+6=P="YV:&0N;W5T`*V82W/3,!"`[_T5
-MF^%6!H_>=F[0F3)P*PP,%RY^I62`\&@//9C_CE:6;,NV#&G743U)E/V\+ZVV
-M8JR_`(P$<P#3@M'X/E=@]I`7`';2#^'NW'^$KOYQ:NO[XT/FK^ZBAW$VE8K%
-M45Y(4/8A.8@2'V(:?`]=P&3/KF\OC]]O`TYXG/`@G:.4%&"JQ7.4_;;HM4/2
-MIZ/XZI!77P;MY%*[4<K^Y0TP!9Q/?B&#=A:3_8F-55;J<'##0-.B[#"B#]'$
-M:.S,=YK-I"9JKCF5C<:NX<R6U#FXRPL?BSY5;&+D]L[`<,@%OK=I$_RP&#95
-M'NY^EK_OVIE^(I$J9M"/+^9DVESA4T6$'WL-%*;SEKG@*/=SW$JJ/,E[)I8+
-MT;5.8#I,"&=^[+T1!5/]#&<;/D\'(ZE?B?K9Q<#*E7MZHKO*XM<`K*KS@,&#
-M,6XPN*K1?ZX.M.UH49\D7E@J$#P9$+6;^*]JB.-;'<X#:@UEN0!^#/K5+AP:
-ME`&UQ\2PQ4%QT`+TF,[.5EU/];M^_19N7KW_@+#/H[FU2Y<&5('%DQ]FVBU7
-M6C#WC5A;;#4N-BGGW@XXF<+)W>K:K7&Q2;Z!6QO0\01.;4D->\E_Q+;':19+
-M%5.I0D-AMY`:FC*)^Q;AJ.MRB].5@;S&+5QSJ-U>WAC<R*"PR\3M;]8"8;<W
-MN[%;1U<([$[OLE,/>Y']>N[U:[G/B+61GDAYKQ5;&8%*_<-<B''4=;DMT'N:
-MS'M[GRQK(SV1]%[9>V_=2:C4ZI()NUJ6[6)<1>L][MI'NSYL_5[>TQ/=31:_
-M>J#PVQ#9OB9\(2734'D@F8;*KU]"#;G:#.:Y458B%X05!G&$%09QA!4&<:05
-M!H&$%09QA!4&<805!G&D%<8"73(3-4*(\WVS]7-E_Q6=J9%L:5"_EXB2L;E*
-M;+5/Z48H$0Q%V`@A;K,1DNG8^DO,C"5LA!!'V@@97TB)SC),:(26.CSF+,.$
-H1HB-#GS"6899;X0>>Y:!.,*S#,01GF4@CCA5L&^Y^`N^QF[[`!,`````
+M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YV:&0N;W5T`*V82W/3,!"`[_D5
+MV^%6!H_>=F[0F3)P*PP,%RY^I62`\&@//9C_CE:6;,NV#&G743U)E/V\+ZVV
+M8JR_`(P$<P#3@M'X/E=@]I`7`';2#^'NW'^$KOYQ:NO[XT/FKV[7PSB;2L7B
+M*"\D*/N0'$2)#S$-OH<N8+)GU[>7Q^^W`2<\3GB0SE%*"C#5XCG*?EOTVB'I
+MTU%\=<BK+X-V<JG=*&7_\@:8`LXGOY!!.XO)_L3&*BMU.+AAH&E1=AC1AVAB
+M-';F.\UF4A,UUYS*1F/7<&9+ZAS<Y<['HD\5FQBYO3,P''*![VW:!#\LADV5
+MA[N?Y>^[=J:?2*2*&?3CBSF9-E?X5!'AQUX#A>F\92XXROT<MY(J3_*>B>5"
+M=*T3F`X3PID?>V]$P50_P]F&S]/!2.I7HGYV,;!RY9Z>Z*ZR^#4`J^H\8/!@
+MC!L,KFKTGZL#;3M:U">)%Y82!$\&1%Y,_%<UQ/&M#N<!M8:R7``_!OUJ%PX-
+MRH#:8V+8XJ`X:`%Z3&=GJZZG^EV_?@LWK]Y_0-CGT=S:I4L#JL#BR0\S[98K
+M+9C[1JPMMAH7V]+;`2=3N#X$2QPN-LDW<&L#.I[`J2VI82_YC]CV.,UBJ6(J
+M56@H[!920U,F<=\B''5=;G&Z,I#7N(5K#K7;RQN#&QD4=IFX_<U:(.SV9C=V
+MZ^@*@=WI77;J82^R7\^]?BWW&;$VTA,I[[5B*R-0J7^8"S&.NBZW!7I/DWEO
+M[Y-E;:0GDMXK>^^M.PF56ETR85?+LHL85]%ZC[OVT:X/6[^7]_1$=Y/%KQXH
+M_#9$MJ\)7TC)-%0>2*:A\NN74$.N-H-Y;I25R`5AA4$<885!'&&%01QIA4$@
+M885!'&&%01QAA4$<:86Q0)?,1(T0XGS?;/U<V7]%9VHD6QK4[R6B9&RN$EOM
+M4[H12@1#$39"B-MLA&0ZMOX2,V,)&R'$D39"QA=2HK,,$QJAI0Z/.<LPH1%B
+FHP.?<)9AUANAQYYE(([P+`-QA&<9B"-.%>Q;=G\!II']:``3````
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu
index f59ec14..e574937 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.vhdf.gz.uu
@@ -1,19 +1,19 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.vhdf.gz
-M'XL("&$EAE4``VEM9RTQ>#$M-3$R+6=P="YV:&1F+F]U=`"ME\V.U#`,@._S
-M%$9[6+1HJR9-TO8(TB)Q&V#17KCT)UF-@$%('#C,PV,GZ3:92;HL2FM5&;G^
-M:CMVW:EK=P`(#O60N.85IW=5?)YV-SM+8^/+@/A\<N$,6"'0X294UISNT1J,
-M\5(S:^6,47BWKBVN6H_758";0ZLSR2M"7.5P2[CF94`I81@N@%\6_[C=#@E"
-M@>B!X_TU"`:2@Q1/.!N[G$+_[MY_@/W;3_<$^[J&RQDJS03]#+HE1.P=VPCW
-M/@[7X3CA#/`V&6R3Q5V?9\_A&L+-&[B4Y'%BR\K5T+_MK</).K;J0JM.0L=!
-M33`/6=SW"*<*5YX@]:B@G4!ID`PF0XM9`6/H'[:)ZPD.?(:ZAY8!'PEX.GZL
-MC@YV6_UZX_T3S%=$2O**7/8$WZH(<NJ9<"'&-:6SUU'V9+'L];Y84I)79+,W
-MN.REDT1.I5H7<3YKU:L8-Q;.GB(U]@>^OR^O><5I7\6G`PH/+.:A,&8JV!V$
-M*]@=A"O8'80KVAT$+-@=A"O8'80KV!V$*]H="-1UN2%..*J]&7/>@\0A'E=-
-M?ARC?P^?K6/74;B:;XW^C2&>W@Q=<(@3;G.(&YT/UA]GP18<XH0K.L2E__Q6
-M#2C;7TK2NA6@L*6Z$,C7FK'`Z>=13[\/?\+L$8ZYBD@*V?.&"E.UP`=ZB)II
-M'?AW=?=X<_CQN."XCVI)(-8?6C68L_$B7!F'^W#@WRQROWJ7>$W),'N]@EK0
-M*R8,W'NWCTM%VB^@)5AMH!-D^R31CTB1+&3"V5();_[?O76XTJ6"?PUV?P'7
-':/,?LPT`````
+M'XL(",9Q+ED``VEM9RTQ>#$M-3$R+6=P="YV:&1F+F]U=`"METV/TS`0AN_]
+M%8,X5%I$9#NVDQQ!6B1N!1;MA4L^G%4%%"%QX-`?SXSMM'9C!Q8YL:)4DWDR
+M\V8FDS+F-@`I@/6)8]YP?EO%^WEWM[,T/CP/B/>G$&Z`%0(=;D0C$W2-,3#/
+M?C%NO9PS_A:-/U]PU77;5P%NNGBM5]X0XBJ'6]*=GP=4"OI^!?R\Q"?LXU`@
+M-<@.!%[/0')0`I2\X&SN:@SCNW_W'@YO/CX0[,LU7<'1.(_036`:0L31\8UT
+M'^)T'4X0;J7V@JNSN/VM>@Y7$V[:P*56'B>WO%P-_=NS=3C%8J\V]&H5M`+T
+M"%.?Q7V+<+IPY4DR#QJ:$;0!Q6&<Z632P#G&AVW26H@`,0'KH.$@!@*>3Q^J
+MDX.]KGZ^\O%)[BLBM?*&G'I2;%4$!?67="'&U:75:TD]54R]SA=+:N4-6?5Z
+MIUY:)`HJU;J(\ZI5+V+<4%@]36;L#WQ_KX]YP_E0Q;L#2@\L%J&<Y[%@=Q"N
+M8'<0KF!W$*YH=Q"P8'<0KF!W$*Y@=Q"N:'<@T+!R0YQP5'L3:MZ!PB$>5TU^
+M'&-\CY]L8/LH72.V1O_&$$\_#%-PB!-N<XC/)I^LWVZ2+3C$"5=TB"O_^:UK
+MT+:_M*+S1H+&EFI#H+C6C`6./TYF_'7\':I'..XJ(KG(7]14F+H!T=--]$3G
+M07PO[Y_NCM^?%ISP62T"8OVA5XV:#:MT59SNXU%\M<C#-;K$:TJ%ZG4:F*17
+M3)BXC^X0EXJR7T!+LF:&5I+O944_(D.RD`EG2R6\^'^?K<.5+A7\:[#[`Q`[
+&W-VS#0``
`
end
diff --git a/usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu b/usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu
index cec7ced..cbd9d1b 100644
--- a/usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu
+++ b/usr.bin/mkimg/tests/img-1x1-512-gpt.vmdk.gz.uu
@@ -1,87 +1,87 @@
# $FreeBSD$
begin 644 img-1x1-512-gpt.vmdk.gz
-M'XL(".G%'50``VEM9RTQ>#$M-3$R+6=P="YV;61K+F]U=`"M7%V/W,81?/>O
-MF,@/#A)DP5J22_)!0.S(!HP@@&(I\4L>LOR*#Y$EY70(8F!_?#CDU%SQ;N=(
-M^?I,B=O:[MKI'K+W7%U@EBT_SA6M*PI7]*X\N0QN^J?E<%E^;TS'L>8;ES^_
-M^LO?#_SY[>%P^6(!@X^2$&0*)\;J<RZ'!S^$.SX5M7IC.HZ;<+F/:A\%!KAC
-MXHTD7#&]>;P6PM6=Y[=[_T+@7`1R*[CR2D[)9)]:W>^^",7SZ\O]&J;M/36N
-MRMVI#:8[E;.=N^HXOY>Y:G(:)\`OW:N;3_]VKX9/W>W-Q[L/87U'O[>3<W'R
-M_J?.(TR)52?_PK_AX1H/<1I<WKL<_FUWN?WNYMUP^.]P^^GFP_N78+I'O[=%
-M[HK&+\?[9_?'RO`?DKD3_&>XRY^^?_4R7+G9X>/YEG`^:EK(]-E3'HI[.CG_
-MY_$QKVYX?^<1Q_`35^?W-A2GG#^[\"_*PE6-FY=3>NSC]'8?4IYKU]T.Y[OA
-M[2\?AY<O?O[P/M;.[ZTO63,#U7.A<E?F'BJDYLM7>D1_V<R[YB[O;NY^NNG>
-M3&E^&EX<OG2$._G:31M8AW4M64\AI^3.3LN^?/N_NRE?UX>=O2'<O(@YB>FS
-MRZ,K*X\U;>"\%4>7%_[5]$_3@J=,"G@G=_GP_O##C],M[HOUYO77/Q"NGJ(F
-MSVF!4\B4T"JG<LF_?'A9NLN;;]T+G^3;GX;Y"B1<L]QFWGG9!\SFT;\(55O@
-M?1,K_!OSSKI7Y[NS^^;\:3A\^>K5-W%GSS[98CZFI0T>Y;1`^^M[+N=4N&6G
-MEXV>MZ+OV\.Y/W^\&V[]]L:M:'V)^I"IW];B?AO7GU/-.S7Z*\9=7KH7-_VT
-MIQ[V7\.'GPG7+9?QM`Y_231S8.Y?3%?/##^$3UBN&+]-'FZXN_WET/WR[N9]
-M/]UH[B7A^J5VTW*6W;S?S&D#IQ5>7>!4NQ?SKL;E$6[PJ^L?+7#>SU#(N*CX
-ML>[R\[R\GX9S/RUMPB;<Z%=WO+Z.4*D''S6AN\M]U6;<3P$NST(+R$,K6Y4H
-M+F?Y0&F@0W?WX799V`OIQ_G#[[+G]N/BT5=J]2L!%SCK]9VR!]]GN<858I0K
-M0/\MEDU__CC]>7V_OI-?WTD\*XVJQ6A6</^<(#X^3O?D[\*S>+8:U8G1[ZG>
-MR;>V03S'A]7CKQJ0UVDX_BY`SURC"C'*%5RJ=F6H'3TKC:K%:%9PJ=J=0NWH
-MV6I4)T:_*]DJU(Z>HT;Y$W^50K;CU[)3'6I'SURC"C'*%5RJ=DVH'3TKC:K%
-M:%9PJ=J=0^WHV6I4)T:_*]DVU(Z>HT;Y$QL$Y'4:K@NUHV>N4848Y0HN5;L^
-MU(Z>E4;58C0KN%3MAE`[>K8:U8G1[TIV#+6CYZA1_E1([8HMN"H+M:-GKE&%
-M&.4*+E&[BOV.GI5&U6(T*[A$[2KV.WJV&M6)T>]*EOV.GJ-&^5,IM2LWX=CO
-MZ)EK5"%&N8)+U8[]CIZ51M5B-"NX5.W8[^C9:E0G1K\K6?8[>HX:Y4\GJ=UI
-M$X[]CIZY1A5BE"NX5.W8[^A9:50M1K."2]6._8Z>K49U8O2[DF6_H^>H4?[$
-M7X(@K]-P['?TS#6J$*-<P:5JQWY'STJC:C&:%5RJ=NQW]&PUJA.CWY4L^QT]
-M1XWR)Q(RD-=)N#H+M:-GKE&%&.4*+E&[FOV.GI5&U6(T*[A$[6KV.WJV&M6)
-MT>]*EOV.GJ-&^5,CM6LVX=COZ)EK5"%&N8)+U8[]CIZ51M5B-"NX5.W8[^C9
-M:E0G1K\K6?8[>HX:Y4_\_R?(ZS0<^QT]<XTJQ"A7<*G:L=_1L]*H6HQF!9>J
-M'?L=/5N-ZL3H=R7+?D?/4:/\B?PCY'4:COV.GKE&%6*4*[A4[=COZ%EI5"U&
-MLX)+U8[]CIZM1G5B]+N29;^CYZA1_M1)[;HMN"8+M:-GKE&%&.4*+E&[AOV.
-MGI5&U6(T*[A$[1KV.WJV&M6)T>]*EOV.GJ-&^5,OM>LWX=COZ)EK5"%&N8)+
-MU8[]CIZ51M5B-"NX5.W8[^C9:E0G1K\K6?8[>HX:Y4^#U&[8A&._HV>N4848
-MY0HN53OV.WI6&E6+T:S@4K5COZ-GJU&=&/VN9-GOZ#EJE#^-4KMQ$X[]CIZY
-M1A5BE"NX5.W8[^A9:50M1K."2]6._8Z>K49U8O2[DF6_H^>H49E,SR"ODW#G
-M;*E=],PUJA"C7,$E:G<._2YZ5AI5B]&LX!*U.X=^%SU;C>K$Z'<E&_I=]!PU
-MRI=,^#ML4EKGT.\@_!V4OX/P=]CD[\ZAWT'X.RA_!^'OL,G?G4._@_!W4/X.
-MPM_M2#;T.PA_!^7O(/P=-BFM<^AW$/X.RM]!^#ML\G?GT.\@_!V4OX/P=]CD
-M[\ZAWT'X.RA_!^'O=B0;^AV$OX/R=Q#^#IN4UCGT.PA_!^7O(/P=-OF[<^AW
-M$/X.RM]!^#ML\G?GT.\@_!V4OX/P=SN2#?T.PM]!^3L(?X=-2JO-0NV$OX/R
-M=Q#^#IO\7<M^)_P=E+^#\'?8Y.]:]COA[Z#\'82_VY$L^YWP=U#^#L+?89/2
-M:MGOA+^#\G<0_@Z;_%W+?B?\'92_@_!WV.3O6O8[X>^@_!V$O]N1+/N=\'=0
-M_@["WV&3TFK9[X2_@_)W$/X.F_Q=RWXG_!V4OX/P=]CD[UKV.^'OH/P=A+_;
-MD2S[G?!W4/X.PM]AD])JV>^$OX/R=Q#^#IO\7<M^)_P=E+^#\'?8Y.]:]COA
-M[Z#\'82_VY$L^YWP=U#^#L+?89/2ZK)0.^'OH/P=A+_#)G_7L=\)?P?E[R#\
-M'3;YNX[]3O@[*'\'X>]V),M^)_P=E+^#\'?8I+0Z]COA[Z#\'82_PR9_U['?
-M"7\'Y>\@_!TV^;N._4[X.RA_!^'O=B3+?B?\'92_@_!WV*2T.O8[X>^@_!V$
-MO\,F?]>QWPE_!^7O(/P=-OF[COU.^#LH?P?A[W8DRWXG_!V4OX/P=]BDM#KV
-M.^'OH/P=A+_#)G_7L=\)?P?E[R#\'3;YNX[]3O@[*'\'X>]V),M^)_P=E+^#
-M\'?8I+3Z+-1.^#LH?P?A[[#)W_7L=\+?0?D["'^'3?ZN9[\3_@[*WT'XNQW)
-MLM\)?P?E[R#\'38IK9[]3O@[*'\'X>^PR=_U['?"WT'Y.PA_ATW^KF>_$_X.
-MRM]!^+L=R;+?"7\'Y>\@_!TV*:V>_4[X.RA_!^'OL,G?]>QWPM]!^3L(?X=-
-M_JYGOQ/^#LK?0?B['<FRWPE_!^7O(/P=-BFMGOU.^#LH?P?A[[#)W_7L=\+?
-M0?D["'^'3?ZN9[\3_@[*WT'XNQW)LM\)?P?E[Z*8#O):X-SR)\`-V5*[JY+R
-M*_\4:^>NKFZPU@>.XU[`_'JZ?H]CNLB>7,;GKP^S?C'./):J_SK`!<ZX?HCS
-M=RG3?=SGZBL1Y^\\GJ6O1)R_\WB6OA)Q_L[C6?I*Q/F[B;X2<?YNHJ]$G+^;
-MZ"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_
-MF^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<
-MOYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$
-MG+^;Z"L1Y^\F^DIP_FZCKP3G[S;Z2G#^;J.O!.?O-OI*</YNHZ\$Y^\V^DIP
-M_FZCKP3G[S;Z2G#^;J.O!.?O-OI*</YNHZ\$Y^\V^DIP_FZCKP3G[S;Z2G#^
-M;J.O!.?O-OI*</YNHZ\$Y^\V^DIP_FZCKP3G[S;Z2G#^;J.O!.?O-OI*</YN
-MHZ\$Y^\V^DIP_FZCKP3G[S;Z2G#^;J.O!.?O-OI*</YNHZ\$Y^\V^DIP_FZC
-MKP3G[S;Z2L3Y.SV?I:]$G+_3\UGZ2L3Y.SV?I:]$G+_3\UGZ2L3YNXF^$G'^
-M;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q
-M_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2
-M<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^
-M$G'^;J*O1)R_F^@K$>?O)OI*</YNHZ_$8*JOQ&"JK\1@JJ_$8*JOQ&"JK\1@
-MJJ_$8*JOQ&"JK\1@JJ_$8*JOQ&"JK\1@JJ_$8*JOQ&"JK\1@JJ_$F&6&^DJ,
-MIOI*C*;Z2HRF^DJ,IOI*C*;Z2HRF^DJ,IOI*C*;Z2HRF^DJ,IOI*C*;Z2HRF
-M^DJ,IOI*C*;Z2HRF^LICEF6&^LKCHV<=[X1[G.RB#SS"5%]Y/#ZYC,]?7S'7
-M;WFZZN._TV]<OCFL_XN`:#\/D"M<PS'A`O[>6+1>P^#&,1R+<NX^P_@4ZRL)
-M__8@<+UQ_?;O[W*4I3N?'P'^C>N;][<H_?.8BV9^."^?S%L6$6[.O>QT?=]^
-M][U[_?4/;SW8/^[3G1_O/':NZ=U0>8CUZO!$NF\?WQW%_'CGJ?K'ZFJR>1+N
-MJVLW6S$_WGGLGX"[=J3ABJ>B/O=)X,7\>&>-4O6MJTM7'_WS>_MS$N[="NYD
-M?.7-3YYM3Z[J_/.#2[AN?MAS?_*TM*NGVV2Y)X[NV'LE0@5W]$]D/ES>__7P
-M?@'[P^$_OP_K6YX\B^M'^HU4]8KC4U>$7]1&NFX-EUM7S_^^TI9FU6O"Q7+M
-M2+^1K-YYJ5[B6VU:U+5;=X+CM]IOUG"M<?5F5?XB/'G\=_J-R^O#^K\%L`B`
-M9BLL_",%[>X.#V=X=W@XP[O#PYG>'1[0\.[P<(9WAX<SO#L\G.G=4?@'1MI]
-MB7LX?^WU4\T;_PS_<GW5I+^.I_7]^&9>V%>K=&?.,?G5_\27^/7-&`R_Q#W<
-BDU_BXY!.-OP\2-;P2]S#F7Z)%_[IG=D7_P=,%9H/M&4`````
+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
+@Q,<AG6SX>9"LX8>XAS/]$"_\W3NS+_X/OKS-T+1E````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu
index 624c326..f81d86b 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow.gz.uu
@@ -1,132 +1,132 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.qcow.gz
-M'XL(",8S(E0``VEM9RTV,W@R-34M-#`Y-BUG<'0N<6-O=RYO=70`K9W;;AS7
-MM47?_16ENT1)5*^UJJJK=$^`!,B;$YSS=@Z0NCX&G7=]?-CDOI"KY]2*(=J$
-M(4.HB>ZMP4'9'MX\'.[^:)I.FK9OVK'9Y^;F[].'-/?^YN%'\^/O?_W;]?T_
-M?OQV-R:'GSSE_K[51M/<@ZT_-V5.ST\MS6'\+^9N/@3-W7MU]@=>W;TW>SEW
-M]=O=F\7/*1NT!X--FCNDUR?D]-K_[O5]=V]7[D[O\=ZNDK?;L<'^P>#O:>Z?
-MZ?4I>;M'-C<\F#NYMZOD[8YL;OHI+$I@F=G<$LRU\*F5S6W!7`>?VO&<_.37
-M]FZNAT\)FX.?M]=-F3O"IXS-M0_F#M<9Z#PWP*<(=Q)R-\*G"'<2<C?!IPAW
-M$G(WPZ<(=Q)RM\"G"'<2<K?"IPAW&G*WP:<(=^3KQ3WN=O@4X4XC[@0_1;C3
-MB#M!OE/&G4;<"?*=,NXTXDZ0[Y1QIQ%W@GRGC#N-N!/D.V7<6<2=(-\9X\XB
-M[@3YSAAW%G*'?&>,.PNY0[XSQIV%W"'?&>/.0NZ0[XQQ9R%WR'?&N+.0.^0[
-M8]RU(7?(=RWCK@VY0[YK&7=MQ)WBIPAW;<2=(M^UC+LVXDZ1[UK&71MQI\AW
-M+>.NC;A3Y+N6<==&W"GR7<NXZR+N%/FN8]QU$7>*?-<Q[KJ0.^2[CG'7A=PA
-MWW6,NR[D#OFN8]QU(7?(=QWCK@NY0[[K&'==R!WR7<>XZT/ND.]ZQET?<H=\
-MUS/N^H@[PT\1[OJ(.T.^ZQEW?<2=(=_UC+L^XLZ0[WK&71]Q9\AW/>.NC[@S
-MY+N><7>,N#/DNR/C[AAQ9\AW1\;=,>0.^>[(N#N&W"'?'1EWQY`[Y+LCX^X8
-M<H=\=V3<'4/ND.^.C+MCR!WRW9%Q-X3<(=\-C+LAY`[Y;F#<#1%W+7Z*<#=$
-MW+7(=P/C;HBX:Y'O!L;=$''7(M\-C+LAXJY%OAL8=T/$78M\-S#N\K_^YG/(
-M=R/C;HRX:Y'O1L;=&'*'?#<R[L:0.^2[D7$WAMPAWXV,NS'D#OEN9-R-(7?(
-M=R/C;@RY0[X;&7=3R!WRW<2XFT+ND.\FQMT4<=?AIPAW4\1=AWPW,>ZFB+L.
-M^6YBW$T1=QWRW<2XFR+N.N2[B7$W1=QUR'<3XR[_9T@^AWPW,^[FB+L.^6YF
-MW,TA=\AW,^-N#KE#OIL9=W/('?+=S+B;0^Z0[V;&W1QRAWPW,^[FD#ODNYEQ
-MMX3<(=\MC+LEY`[Y;F'<+1%W/7Z*<+=$W/7(=POC;HFXZY'O%L;=$G'7(]\M
-MC+LEXJY'OEL8=TO$78]\MS#NUHB['OEN9=RM$7<]\MW*N%M#[I#O5L;=&G*'
-M?+<R[M:0.^2[E7&WAMPAWZV,NS7D#OEN9=RM(7?(=ROC;@NY0[[;&'=;R!WR
-MW<:XVR+NCO@IPMT6<7=$OML8=UO$W1'Y;F/<;1%W1^2[C7&W1=P=D>\VQMT6
-M<7=$OML8=WO$W1'Y;F?<[1%W1^2[G7&WA]PAW^V,NSWD#OEN9]SM(7?(=SOC
-M;@^Y0[[;&7=[R!WRW<ZXVT/ND.]VPIWD'_`YX#LY$.[D$'('?"<'PIT<(NX&
-M_!3F3L+^;@"^$];?2=C?#<!WPOH["?N[`?A.6'\G87\W`-\)Z^\D[.\&X#MA
-M_9V$_=T`?">LOY.POQN`[X3U=Q+V=P/PG;#^3L+^;@"^$];?2=C?#<!WPOH[
-M"?N[`?A.6'\G87\W`-\)Z^\D[.\&X#MA_9V$_=V`?,?Z.PG[NP'YCO5W$O9W
-M(WZ*<!?V=R/R'>OO).SO1N0[UM])V-^-R'>LOY.POQN1[UA_)V%_-R+?L?Y.
-MPOYN1+YC_9V$_=V(?,?Z.PG[NQ'YCO5W$O9W(_(=Z^\D[.]&Y#O6WTG8WXW(
-M=ZR_D["_&Y'O6'\G87\W(M^Q_D["_FY$OF/]G83]W8A\Q_H["?N["3]%N`O[
-MNPGYCO5W$O9W$_(=Z^\D[.\FY#O6WTG8WTW(=ZR_D["_FY#O6'\G87\W(=^Q
-M_D["_FY"OF/]G83]W81\Q_H["?N["?F.]7<2]G<3\AWK[R3L[R;D.];?2=C?
-M3<AWK+^3L+^;D.]8?R=A?S<AW['^3L+^;D*^8_V=A/W=C)\BW(7]W8Q\Q_H[
-M"?N[&?F.]7<2]G<S\AWK[R3L[V;D.];?2=C?S<AWK+^3L+^;D>]8?R=A?S<C
-MW['^3L+^;D:^8_V=A/W=C'S'^CL)^[L9^8[U=Q+V=S/R'>OO).SO9N0[UM])
-MV-_-R'>LOY.POYN1[UA_)V%_-R/?L?Y.POYNP4\1[L+^;D&^8_V=A/W=@GS'
-M^CL)^[L%^8[U=Q+V=POR'>OO).SO%N0[UM])V-\MR'>LOY.POUN0[UA_)V%_
-MMR#?L?Y.POYN0;YC_9V$_=V"?,?Z.PG[NP7YCO5W$O9W"_(=Z^\D[.\6Y#O6
-MWTG8WRW(=ZR_D["_6Y#O6'\G87^WXJ<(=V%_MR+?L?Y.POYN1;YC_9V$_=V*
-M?,?Z.PG[NQ7YCO5W$O9W*_(=Z^\D[.]6Y#O6WTG8WZW(=ZR_D["_6Y'O6'\G
-M87^W(M^Q_D["_FY%OF/]G83]W8I\Q_H["?N[%?F.]7<2]G<K\AWK[R3L[U;D
-M.];?2=C?K<AWK+^3L+_;\%.$N["_VY#O6'\G87^W(=^Q_D["_FY#OF/]G83]
-MW89\Q_H["?N[#?F.]7<2]G<;\AWK[R3L[S;D.];?2=C?;<AWK+^3L+_;D.]8
-M?R=A?[<AW['^3L+^;D.^8_V=A/W=AGS'^CL)^[L-^8[U=Q+V=QOR'>OO).SO
-M-N0[UM])V-_M^"G"7=C?[<AWK+^3L+_;D>]8?R=A?[<CW['^3L+^;D>^8_V=
-MA/W=CGS'^CL)^[L=^8[U=Q+V=SOR'>OO).SO=N0[UM])V-_MR'>LOY.PO]N1
-M[UA_)V%_MR/?L?Y.POYN1[YC_9V$_=V.?,?Z.\T_<'--G0.^NWD*<Z>NO\OW
-MZ365.^`[9?V=NOZN2=PUF3L[X*<P=^KZNR9QU_RSS`'?*>OOU/5WS<F=G:'[
-M[Y3U=^KZNW)V=0[X3EE_IZZ_`W/`=\KZ.W7]'9@#OE/6WZGK[_+<DSH'?*>L
-MOU/7WSW)<TV9`[Y3UM^IZ^^>).Z>5.Z`[Y3U=^KZNR>)NR>5.^`[9?V=NO[N
-MR>GB[(#OE/5WZOJ[<G9U#OA.67^GKK\#<\!WROH[=?T=F`.^4];?J>OO\MS3
-M.H=\Q_H[=?W=TSQ7N4.^8_V=NO[N:>+N:>$.W7^GK+]3U]\]3=P]+=RA^^^4
-M]7?J^KNG)W]VZ/X[9?V=NOZNG%V=0[YC_9VZ_@[,(=^Q_DY=?P?FD.]8?Z>N
-MO\MSS^H<\AWK[]3U=\_R7.$.W7^GK+]3U]\]2]P]J]PAW['^3EU_]RQQ]ZQR
-MAWS'^CMU_=VST\79(=^Q_DY=?U?.KLXAW['^3EU_!^:0[UA_IZZ_`W/(=ZR_
-M4]??Y;GG=0[YCO5WZOJ[YWFN<H=\Q_H[=?W=\\3=\\(=NO].67^GKK][GKA[
-M7KA#]]\IZ^_4]7?/3_[LT/UWROH[=?U=.;LZAWS'^CMU_1V80[YC_9VZ_@[,
-M(=^Q_DY=?Y?G7M0YY#O6WZGK[U[DN<(=NO].67^GKK][D;A[4;E#OF/]G;K^
-M[D7B[D7E#OF.]7?J^KL7IXNS0[YC_9VZ_JZ<79U#OF/]G;K^#LPAW['^3EU_
-M!^:0[UA_IZZ_RW,OZQSR'>OOU/5W+_-<Y0[YCO5WZOJ[EXF[EX4[=/^=LOY.
-M77_W,G'WLG"'[K]3UM^IZ^]>GOS9H?OOE/5WZOJ[<G9U#OF.]7?J^CLPAWS'
-M^CMU_1V80[YC_9VZ_B[/O:ISR'>LOU/7W[W*<X4[=/^=LOY.77_W*G'WJG*'
-M?,?Z.W7]W:O$W:O*'?(=Z^_4]7>O3A=GAWS'^CMU_5TYNSJ'?,?Z.W7]'9A#
-MOF/]G;K^#LPAW['^3EU_E^=>USGD.];?J>OO7N>YRAWR'>OOU/5WKQ-WKPMW
-MZ/X[9?V=NO[N=>+N=>$.W7^GK+]3U]^]/OFS0_??*>OOU/5WY>SJ'/(=Z^_4
-M]7=@#OF.]7?J^CLPAWS'^CMU_5V>>U/GD.]8?Z>NOWN3YPIWZ/X[9?V=NO[N
-M3>+N3>4.^8[U=^KZNS>)NS>5.^0[UM^IZ^_>G"[.#OF.]7?J^KMR=G4.^8[U
-M=^KZ.S"'?,?Z.W7]'9A#OF/]G;K^+L]=U3GD.];?J>OOKO)<Y0[YCO5WZOJ[
-MJ\3=5>$.W7^GK+]3U]]=)>ZN"G?H_CME_9VZ_N[JY,\.W7^GK+]3U]^5LZMS
-MR'>LOU/7WX$YY#O6WZGK[\`<\AWK[]3U=WGN;9U#OF/]G;K^[FV>*]RA^^^4
-M]7?J^KNWB;NWE3OD.];?J>OOWB;NWE;ND.]8?Z>NOWM[NC@[Y#O6WZGK[\K9
-MU3GD.];?J>OOP!SR'>OOU/5W8`[YCO5WZOJ[//>NSB'?L?Y.77_W+L]5[I#O
-M6'^GKK][E[A[5[A#]]\IZ^_4]7?O$G?O"G?H_CME_9VZ_N[=R9\=NO].67^G
-MKK\K9U?GD.]8?Z>NOP-SR'>LOU/7WX$YY#O6WZGK[_+<^SJ'?,?Z.W7]W?L\
-M5[A#]]\IZ^_4]7?O$W?O*W?(=ZR_4]??O4_<O:_<(=^Q_DY=?_?^='%VR'>L
-MOU/7WY6SJW/(=ZR_4]??@3GD.];?J>OOP!SR'>OOU/5W>>ZZSB'?L?Y.H_[.
-MT/UWROH[C?H[0_??*>OO-.KO#-U_IZR_TZB_,W3_G;+^3J/^SM#]=\KZ.XWZ
-M.T/WWRGK[S3J[PS=?Z>LOU/2WWVH<\AWK+]3U]]]R'.%.W3_G;+^3EU_]R%Q
-M]Z%RAWS'^CMU_=V'Q-V'RAWR'>OOU/5W'TX79X=\Q_H[=?U=.;LZAWS'^CMU
-M_1V80[YC_9VZ_@[,(=^Q_L[R#]S<H<X!WQGK[VY^X@%WV4^'RAWPG;'^SEQ_
-M=TA[A\(=NO_.6']GKK\[).X.A3MT_YVQ_LY<?W<X^;-#]]\9Z^_,]7?E[.H<
-M\)VQ_LY<?P?F@.^,]7?F^CLP!WQGK+\SU]_E.:ESP'?&^CMS_9WDN<(=NO_.
-M6']GKK^3]/*D<@=\9ZR_,]??2>).*G?`=\;Z.W/]G9PNS@[XSEA_9ZZ_*V=7
-MYX#OC/5WYOH[,`=\9ZR_,]??@3G@.V/]G;G^+L]IG4.^8_V=N?Y.\USE#OF.
-M]7?F^CM-W&GA#MU_9ZR_,]??:>)."W?H_CMC_9VY_DY/_NS0_7?&^CMS_5TY
-MNSJ'?,?Z.W/]'9A#OF/]G;G^#LPAW['^SEQ_E^>LSB'?L?[.7']G>:YPA^Z_
-M,];?F>OO+'%GE3OD.];?F>OO+'%GE3OD.];?F>OO['1Q=LAWK+\SU]^5LZMS
-MR'>LOS/7WX$YY#O6WYGK[\`<\AWK[\SU=WFNK7/(=ZR_,]??M7FN<H=\Q_H[
-M<_U=F[AK"W?H_CMC_9VY_JY-W+6%.W3_G;'^SEQ_UY[\V:'[[XSU=^;ZNW)V
-M=0[YCO5WYOH[,(=\Q_H[<_T=F$.^8_V=N?XNSW5U#OF.]7?F^KLNSQ7NT/UW
-MQOH[<_U=E[CK*G?(=ZR_,]??=8F[KG*'?,?Z.W/]77>Z.#OD.];?F>OORMG5
-M.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7?F^KL\U]<YY#O6WYGK[_H\5[E#OF/]
-MG;G^KD_<]84[=/^=L?[.7'_7)^[ZPAVZ_\Y8?V>NO^M/_NS0_7?&^CMS_5TY
-MNSJ'?,?Z.W/]'9A#OF/]G;G^#LPAW['^SEQ_E^>.=0[YCO5WYOJ[8YXKW*'[
-M[XSU=^;ZNV/B[EBY0[YC_9VY_NZ8N#M6[I#O6']GKK\[GB[.#OF.]7?F^KMR
-M=G4.^8[U=^;Z.S"'?,?Z.W/]'9A#OF/]G;G^+L\-=0[YCO5WYOJ[(<]5[I#O
-M6']GKK\;$G=#X0[=?V>LOS/7WPV)NZ%PA^Z_,];?F>OOAI,_.W3_G;'^SEQ_
-M5\ZNSB'?L?[.7'\'YI#O6']GKK\#<\AWK+\SU]_EN;'.(=^Q_LY<?S?FN<(=
-MNO_.6']GKK\;$W=CY0[YCO5WYOJ[,7$W5NZ0[UA_9ZZ_&T\79X=\Q_H[<_U=
-M.;LZAWS'^CMS_1V80[YC_9VY_@[,(=^Q_LY<?Y?G/M8YY#O6WYGK[S[FN<H=
-M\AWK[\SU=Q\3=Q\+=^C^.V/]G;G^[F/B[F/A#MU_9ZR_,]???3SYLT/WWQGK
-M[\SU=^7LZASR'>OOS/5W8`[YCO5WYOH[,(=\Q_H[<_U=GOM4YY#O6']GKK_[
-ME.<*=^C^.V/]G;G^[E/B[E/E#OF.]7?F^KM/B;M/E3OD.];?F>OO/ITNS@[Y
-MCO5WYOJ[<G9U#OF.]7?F^CLPAWS'^CMS_1V80[YC_9VY_B[/?:YSR'>LOS/7
-MWWW.<Y4[Y#O6WYGK[SXG[CX7[M#]=\;Z.W/]W>?$W>?"';K_SEA_9ZZ_^WSR
-M9X?NOS/6WYGK[\K9U3GD.];?F>OOP!SR'>OOS/5W8`[YCO5WYOJ[//>ESB'?
-ML?[.7'_W)<\5[M#]=\;Z.W/]W9?$W9?*'?(=Z^_,]7=?$G=?*G?(=ZR_,]??
-M?3E=G!WR'>OOS/5WY>SJ'/(=Z^_,]7=@#OF.]7?F^CLPAWS'^CMS_5V>^UKG
-MD.]8?V>NO_N:YRIWR'>LOS/7WWU-W'TMW*'[[XSU=^;ZNZ^)NZ^%.W3_G;'^
-MSEQ_]_7DSP[=?V>LOS/7WY6SJW/(=ZR_,]??@3GD.];?F>OOP!SR'>OOS/5W
-M>>Y;G4.^8_V=N?[N6YXKW*'[[XSU=^;ZNV^)NV^5.^0[UM^9Z^^^)>Z^5>Z0
-M[UA_9ZZ_^W:Z.#OD.];?F>OORMG5.>0[UM^9Z^_`'/(=Z^_,]7=@#OF.]7=M
-M_H&;^U[G@.]:UM^UKK_[GN<J=\!W-T]A[EK7WWU/W'W/W+4'_!3YOL?NS7[/
-MO?%UF4/?;[L\%<S=^^/';U=W@^B^*CK8^N^/FT\O?UZTZ+ZJ7WE]W>WYM=H<
-M)O!7_A,__GS]\,\R>'MWT!\8S*_PX5S^!>GN[@ZZC::V&W?NZ>,@]][P^9L>
-M"W_#3Z[OS:'OS?PKYX>N^_G98-<UTW0Q^+_Y]=U>]]-V3=LW[9@N<FREZ;3I
-MVC)W^UZ[Y?[K^\M?_];\_J=__,]Y[/_JV[V][F>^>?[FMW#6;.Z0#D+?[O_[
-MMWLW=_OE>_>GG>>,SCW!<[=?OM>?S*$//M?^[*F#TE=W\6M[-]<='CXUW'_J
-M_-L,:_:IF58R]]7-H6\?_RODW=X<,/?-\>8?6F]^@R?-LI]_L/;G;[[;##>?
-M)G?_:49O_U^FL3G*^?^RNQG\\:^_7__K;NS]];_?IM=W=W.`X`_^$^ST[FX.
-M&-C;S?]YD;_=YN$<^)W>KYW>^?<K<_=HIS<F6-`'_PEZ>M/=Z>%#.I\>_)3Y
-M<?\:T?MSX/<KOW)Z_>U7C?/7V`G\E?_$C]^O'_YY-]BFP4=[A3>#RR-^=ISG
-M'O&SXSSWB)\=Y[E'_>PX#S[B9\=Y[A$_.\YSC_C9<9Y[U,^.F\';?^?X2%_$
-MSW-R]V5R7YM!F\W<ZV-?CNOK>_AV[_Z=(_O2_Y,OXO@78WO$+^+GN9]_$=_^
-;Z)M]Q"_BY[E'_2+>'HXWWOOM/_VP*B?UK```
+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
+;W^PC?HB?YQ[U0[P]'&^\]]M_`$CJT>#UK```
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu
index b082a2d..87a55dd 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.qcow2.gz.uu
@@ -1,26 +1,26 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.qcow2.gz
-M'XL("+X[(U0``VEM9RTV,W@R-34M-#`Y-BUG<'0N<6-O=S(N;W5T`*V92V_4
-M,!"`[_T5+F]:6.)7DN51:$LK]=8BN'')\UB)*PK\=N+8B9/)3-PNWK6BKJSY
-M9#O?C)TT2>R',<V92IG:L[9D_6_7!)O]6#;6W5W?[.:?[LC">$)$(1U*3K@%
-MZ]+C!(5+^+J#X[C9Z"2"$V/4&A3"*7)T6QT([N1H6+KA9N0@0AX"M#CR9APT
-M/F''!R/4@>,3L<<G\?738QSL2+?')^WX8%1&X?(@3B!1>PI7!'$2B2HI7!7$
-M*22JIG!-$*>1J);`\8`J/2Y%HCB%$T%<AD1)"J>"N!R)HKSC8>_V2!3E'0][
-M5R!1E'<\[%V)1%'>\;!W%1)%><?#WM5(%.6=(+QC'M<@491W`GAW['!//*Y%
-MHBCO!/#NJ<,]FW`<BZ*\$\"[YP[WPN.0>B<H[P3P[J7#O?(XI-X)RCL!O'OM
-M<"<>A]0[07DG@'>G#O?&XY!Z)RCO!/#N[<H[CM0[07DG@7?O'"OQ.*3>2<H[
-M";SC#B<\#JEWDO).`N^DPRF/0^J=I+R3P#OM<*G'(?5.4MY)X%WF<+G'(?5.
-M4MY)X-W>X=Y['%+O).6=!-Y]<+B/'H?4.TEY)X%WGQSNS..0>B<I[Q3P[K/#
-M??$XI-XIRCL%O#MWN`N/0^J=HKQ3P+M+A_LZX006-7F7)'ASN*M5S@JDWJGT
-M@;CK-8Y^6#GD.*O\<9LC5[IC`Y@_'DCNM<J>4^)-6-L)&ZL*Y$IW=!>[Y7<"
-M#KG[".`XPB7.35C;W+4/C$W#VM8UNU(N.)\=$)`)'^]FN#KR^@WI]@B@UJPH
-M5L`?X_B&=.OSR[X;Z.W60S'0@FDUX8:YZFH^OJOK&W9[_NV[@?WTTQW2+2M8
-MQ5F1LP*.CE/3_8W9IVVZ92U<[1$G*=QT+`,X<[S(Z@T<UECWA\"IK:CII<,#
-M[JW%Z609-2];9ILH)6L+5M0$[@S@TLCF*=-=IBRK6-J8]TE5:_ZH4_.4QO(^
-M3>RV+88SUIYEW)S=>F!W?[>[M["WNU^G;GR*.R.P1G=0JZ>&RIQ3T\W\@P`Q
-M7;;$8:^1_FOU3%TN=;35VSM9L$9WD*M7V-7#%\FL'IHRW;AJ8\*-N#+NZG'[
-M"C,Q]7M]I3NZV]WR:X'*`:.-4*5M%3$[#"YB=AA<Q.PPN*C988`1L\/@(F:'
-MP47,#H.+FAT]L$GB;>(&9]PK,E8+\YRX^'_!UG;<#8^/Z^DV8FOKW]C$\9O1
-E1-S$#6YS$\\:>K+V\Q=,-N(F;G!1-W&5F>/WT3\!FKQU%1H`````
+M'XL(".1Q+ED``VEM9RTV,W@R-34M-#`Y-BUG<'0N<6-O=S(N;W5T`*V92V_<
+M(!"`[_D5I.\FS=8,8'O[2)JD62FWI&IOO?AYC-1KY?:WUQALUGC&)%MVD945
+MFD^`OQFPDR3FPYCB3*9,;EE;LOZW;<#V?LP;Z^YWMYO]3W=D8#PAHI`.*2;<
+MC'7M<$#A$K[LX#AN;W0"P<$8M02%<)(<W5H'@CLY&I9NN!FY%R$.`1H<>3,.
+M&A^8\?D1\L#Q0>SQ"7S]U!CG=Z3KXQ-F?'Y41N'R(`Z0J"V%*X(X@425%*X*
+MXB0255.X)HA32%1+X'A`E1Z7(E&<PD$0ER%1@L+)("Y'HBCO>-B[+1)%><?#
+MWA5(%.4=#WM7(E&4=SSL785$4=[QL'<U$D5Y!X1WS.$:)(KR#CSOCBWNF<.U
+M2!3E'7C>/;>X%Q..8U&4=^!Y]]+B7CD<4N^`\@X\[UY;W!N'0^H=4-Z!Y]U;
+MBSMQ.*3>`>4=>-Z=6MP[AT/J'5#>@>?=V<([CM0[H+P3GG?O+2MQ.*3>"<H[
+MX7G'+0X<#JEW@O).>-X)BY,.A]0[07DG/.^4Q:4.A]0[07DG/.\RB\L=#JEW
+M@O).>-YM+>Z#PR'U3E#>"<^[CQ;WR>&0>B<H[X3GW6>+.W<XI-X)RCOI>7=A
+M<5\<#JEWDO).>MY=6MR5PR'U3E+>2<^[:XO[.N$`BYJ\2Q*\6=S-(F<!J7<R
+M?21NM\31#RN''&>E.VYSY$IWK`#SIP/)O5::<TJ\"2LS86U5@5SICNYJ,_].
+MP"%WGP`<1SC'V0DKD[OF@;%I6-O:9E;*!F>M.R`@$S[>[.'JR.LWI-L3@$JQ
+MHE@`?XSC&]*MSR_S;J"W6PW%0`%3<L(-<U75_OAN=K?L[O+;=PW[Z:8[I%M6
+ML(JS(F>%/SI.3?<W9I\RZ;9<[1$G*-QT+/-P^GB1U2LXK+'N#X&3:U'32X='
+MW%N#4\D\:K]LZ6VB%*PM6%$3N',/ET8V3^KN,F59Q=)&OT^J6OU'G>JG-);W
+M:6*V;1C.6%N6<7UVZX'=P_WFP<#.-K].[?@DMT9@C>Z@5D\.E3FGIINY!P%B
+MNFR.PUXC_=?JZ;I<JFBKM[6R8(WN(%>O,*N'+Y)>/31ENG'5QH0;<67<U>/F
+M%6:BZ_?R2G=T=YOYUP"E!48;H4S;*F)V:%S$[-"XB-FA<5&S0P,C9H?&1<P.
+MC8N8'1H7-3MZ8)/$V\0U3KM79*P&_9PX^W_!VG;<#8^/R^DVL+;UKVSB^,UH
+E(F[B&K>ZB6<-/5GS^>M--N(FKG%1-W&9Z>/WT3]QQ=U%%1H`````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu
index d413df2..a6480b9 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.raw.gz.uu
@@ -1,15 +1,15 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.raw.gz
-M'XL("`+&'50``VEM9RTV,W@R-34M-#`Y-BUG<'0N<F%W+F]U=`"MEC]O@S`0
-MQ?=\BI>U52W;V`262JW42MW2JMW:@3]FC-2=#U\?A@2(C1KIP$)(Q_UR]_#C
-M(F4X`*,AJ\@U'>B?Q?+L=W>[@:;JVX#^]ZF$%5!X8,`U/B@U/>,<NFY<4@U9
-M(5E):#7>3SAQ.?9BAFO/6=<K'9CC1,!-[7:W`:U%55T!OZ;Z]/`Z+$P.4T+[
-MYR6,@M6PYHP;>K7-O+Z7US<<GSX^"?9]:5=[:5#[_!95!K<22:IDNS_K=@-.
-M4U:W5GO"94G</H[+**O=P,56&F>VLL(>^M^[#3@KEUG%/"MSJ#-T%:HV@7M<
-MX7+FG6<H7.<X-,@=K$+3T4V;0RF@\#8I!HB&]B66."CHFH#]Z5V<`NQ!_-Z/
-M]1DU[HC82@=2ZIEAJQ2I=@^TMS?;Q1*7<:M7D'J63;URW"RQE0XDU:N">G&1
-M2+VH9?I)M<DA$Z[F54\-4\/[PW^_KZ_I0'\4RS,`S0ADJ]!H/S;XW$$X1G<0
-MCM$=A&-U!P$9W4$X1G<0CM$=A&-UAP<ZR3?$":?"F.Q:%!HN6]67&L>7^I;M
-I.KTU^C>&>/QE.,8A3KCM(>YN;99QB!..=8@;_W]*RMT?5F[7A(@+````
+M'XL(".1Q+ED``VEM9RTV,W@R-34M-#`Y-BUG<'0N<F%W+F]U=`"MEDU/A#`0
+MAN_[*UZO&INVM"Q[,=%$$V^KT9L>^"C'3;SSX^U0D*^6N,E`0TB&>7;FI2^S
+M4H8#,!JRC%S3@>Y)+,_N<'OH::JZ#NA_GTI8`84'!ESM@U+3,\ZA;8<E59\5
+MDF4+K<;[`2>FXT;,<,V4M5GIP!PG`FYLM[T.:"W*<@/\'.O3_>NP,#G,"=H_
+M+V$4K(8U?[B^5UO/ZWM^><7Y\?V#8%]3NUKY8.7S&Y09W$HDJ9+M?J_;#3A-
+M61NU1UR6Q-W$<1EE-3NXV$KCS%Y6V$/_>[<!9^4RJYAG90Y5AK9$V21P#RM<
+MSKSS#(6K',<:N8-5J%NZ:7(H!13>)D4/T="^Q!.."KHB8'=Y$Y<`NQ<_=T-]
+M1@T[(K;2@91ZIM\J1:K=(^WMW7:QQ&7<ZA6DGF53[S1LEMA*!Y+JE4&]N$BD
+M7M0RW:C:Z)`15_&JI_JIX?WAO]_;:SK0G<7R#$`S`-DJ--J/#3YW$([1'81C
+M=`?A6-U!0$9W$([1'81C=`?A6-WA@4[R#7'"J3`FVP:%ALM6]:7&\53?LEVG
+H]T;_SA"/OPS'.,0)MS_$W;7-,@YQPK$.<>/_3TEY^`7C-"Q#B`L`````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu
index 0e9500f..3b6b603 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhd.gz.uu
@@ -1,6 +1,6 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.vhd.gz
-M'XL("#XUQ%4``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FAD+F]U=`"MF$N/TS`0
+M'XL(".5Q+ED``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FAD+F]U=`"MF$N/TS`0
M@._]%8.X+2*R'=M)+D4@+1*W!8&X["7/584HCW+80_O?F7&<)D[BB(IIK2B5
M,U_F;=="]!\`FX+MP+9@#=UG&FP!60Z`DWXH=Y7^)YSK'\>V_G-X3OSGO.MA
M4DRE0G&25REH?$D&JJ27V(;NX3Q@DI?W3W>'[T\#3GF<\B"3D52JP%:+]V0-
@@ -8,15 +8,15 @@ MY/U['.[K07USR,NH7;K4;I3J#>PZ2+O)$^F@W<5=WTR-U2B%S],PD&<@]#B"
M'\'$:.S,=T;,I"9JKCE5C,:NX>R6U"VXNYV/19\JF!@97@58"9FB>TR;P0^+
M@:GR?/I9_CZU,_U4)%7L)!CSN0WO*9\J:GC8:Z!)P2USP5%.<]Q*JOR7]VPH
M-T07G2#,,*$&\W'@^T50&4Y1,>AGI=CP>3P84?U*TD]C)90KU_C$^5T2?J_`
-MJKH-.'@PQ%T#4M7D/U>I;3M:U">)%ZXEI&T\(/M)?*N&.;Y5=QO0&"C+!?#+
-MH%_MPF%`6]`%)08V!RW!*##ZBG.VFWJJW_W[#_#P]M-G@CV.YM:NV+#5E5!;
-MZGFA=LM*&\V]K!1;3<6&`9EY>\"E4=Q^M79K*K:JW<"MC3A.;TE=UY)_B&V/
-M,R*4RJ=2J'.50E="V41P^QF.NR^W-%UA5&M:PHV$VJWEC04I`7(LD]Q!%"A4
-M$1=V7(4K`IZ/'Y-C#WN=_'KE]6NESXBU$9^(>:]U?3F/F9N-#3MB+H0X[K[<
-MYN0]P^:]PB?+VHA/1+U7]MY;=Q)Y;ZUTKZM:DKP(<16O]Z1;-;`^L'\OK_&)
-M\T,2?GN@\LL0V[JF?"-ETU![()N&VM<OHX:RW0SFK5&V7D,VDRW^26#5,&MR
-MSAY(.,8>2#C&'D@XUAY(0,8>2#C&'D@XQAY(.-8>F#6%2V:FK1KA*/=D`5)#
-ME]&&+5`CNND:]=M/S2WZO]"Q#=[&5FTU&(5@W*H1;G.K5G6W&LNX52,<ZU8M
-L]WV/Z;2%<(RG+81C/&TA'.-I"^$83UL(QWC:0CCN5,&MR^XO,$6$MJ(3````
+MJKH-.'@PQ%T#4M7D/U>I;3M:U">)%\9'TC8>D/TDOE7#'-^JNPUH#)3E`OAE
+MT*]VX3"@+>B"$@.;@Y9@%!A]Q3G;33W5[_[]!WAX^^DSP1Y'<VM7;-CJ2J@M
+M];Q0NV6EC>9>5HJMIF);>GO`I5'<?K5V:RJVJMW`K8TX3F])7=>2?XAMCS,B
+ME,JG4JASE4)70ME$</L9CKLOMS1=851K6L*-A-JMY8T%*0%R+)/<010H5!$7
+M=ER%*P*>CQ^38P][G?QZY?5KI<^(M1&?B'FO=7TYCYF;C0T[8BZ$..Z^W.;D
+M/</FO<(GR]J(3T2]5_;>6W<2>6^M=*^K6I*\"'$5K_>D6S6P/K!_+Z_QB?-#
+M$GY[H/++$-NZIGPC9=-0>R";AMK7+Z.&LMT,YJU1MEY#-I,M_DE@U3!K<LX>
+M2#C&'D@XQAY(.-8>2$#&'D@XQAY(.,8>2#C6'I@UA4MFIJT:X2CW9`%20Y?1
+MABU0([KI&O7;3\TM^K_0L0W>QE9M-1B%8-RJ$6YSJU9UMQK+N%4C'.M6+?=]
+JC^FTA7",IRV$8SQM(1SC:0OA&$];",=XVD(X[E3!K<ON+T20T[RB$P``
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu
index b446783..ab4de34 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vhdf.gz.uu
@@ -1,18 +1,19 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.vhdf.gz
-M'XL("+4EAE4``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FAD9BYO=70`K9?-K],P
-M#,#O^RN,N#U$E.]F%P9(#XG;`X&X<.GGTX080G#@L#\>.^E>DRZI&,IJ59U<
-M_VH[=MQR'GX`6@)O,^>RXOR6I<=Y=[?S--'=!L3GDPLK($-@P/6HY)+N&4>8
-MIEFX\%;!&$7SY=KCV/)[S2+<$%NMI*R(<2S@+N%.MP&-@;:]`GZ^^"?]<AC0
-M%O0>)-Z/L0DP$HQ^POG831_[=__N/3R\^?B)8%^7<*5`92>@L]`::-3*.[$1
-M[J\TW(!#ARC[:LH&JXJXPSI[`:<(-VS@<E+&Z2VK4$/_MK8!9WAJY6(K-4*G
-M8&JA'0JX5RN<K5QYFM2XL$T/=@0CH)_H8K`@!(##-G$>(D&BBWMH!,B.@.?3
-M!W8*L)?LYXO9/RWFBLA)65'*GJ92X:X4;D.UO1DNI#A5.WN.LF>J96\_%TM.
-MRHIB]MJ0O7R2*'NYUD7<G#7V+,5U=;,G_-3`_L#]^_I<5IP?6'H$H)Z!U3QL
-MIJFOV!V$J]@=A*O8'82KVAT$K-@=A*O8'82KV!V$J]H="!QYO2%..*J]?@\]
-MYKR#+JV:\CA>_#LDX8YR:_1O#/'\8HP5ASCA-H?X--X:;,4A3KBJ0]S-K]]6
-M@?7]90U=-QHLMI2+@7*I&0_L?YS&_O?Q3YP]YW=F6%Z25T+V4E%A6FR1EAYB
-M![J._'M^_WAW_/YXP<DYJDL"34-62H+MKL)U:;A?CO+;VKO,-N62[(FK<EYM
-M`X<8IY^"Q4\#W&*X7B3YDRBRA4PX7RKQS?^[M@%7NU3PTV#W%T[=6[ZS#0``
+M'XL(".5Q+ED``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FAD9BYO=70`K9=+B]PP
+M#(#O\RM4>MO2X'<\EPXM[$)OV]+2RU[R7(9EIY3=PQ[FQU>RDTF<V*%3G)C@
+MH.B+)$M6PI@_`)0`5D6N:<'Y2Q&>Y]W-SM%X?1T0WT\F+(`%`CVN02$3]$S7
+M0=\/@W&GY97Q7O;#?,05TW$H9KCVHK4>:<$<5WC<Z&Y_'5!KJ*H5\.=HGW#+
+MH4$94'L0^#P#Q4$+T.J"<[[K9F[?[=U7N/_\_0?!'B9W!4=AS:$V4&DHY<(Z
+MON'N2^BNQZ%!D6B/.)G$'9;1\SA)N'8#%QMIG-K2\CGT;VOK<9J%6G:N)3NH
+M)?055&T"]VF!,YDS3Y$8%[9LP'2@.30]35H#G`-8+!/K(`($FKB'DH.H"7@^
+M?2M.'O:Q^/-AL$_Q(2-B(RU(14]1JC";<K>DW-YT%T*<S!T]2]'3V:*W'Y(E
+M-M*"9/0J'[UXD"AZL=)%W!"UXEV(J_-&C[NN@?6!^_?ZFA:<[XOP]$`U`+-9
+M6/9]D[$Z")>Q.@B7L3H(E[4Z")BQ.@B7L3H(E[$Z")>U.A#8L7Q-G'"4>\T>
+M&HQY#768->EV/-EW"-SMQ%;KWVCB\<7H,C9QPFTV\;Z[UMF,39QP69NX'3Z_
+MC03CZLMHFI<*#):4G0/%E#,.V/P^=<WK\6T>/>MV9I@^DA>#](6DQ#18(A6]
+MQ+0TG]GW_O;QYOC\..+$X-480%V2EA1@ZI6[-G3WUU$\+:V+;%,VB!Y?I?-B
+M&SC,<>KB+/X:X!;#U#2"FT`0363"N529/_R_:^MQN5,%?PUV?P&M?`V+LPT`
+!````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu
index 8292403..171a519 100644
--- a/usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-4096-gpt.vmdk.gz.uu
@@ -1,88 +1,88 @@
# $FreeBSD$
begin 644 img-63x255-4096-gpt.vmdk.gz
-M'XL("`/&'50``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FUD:RYO=70`K5Q=C]S&
+M'XL(".5Q+ED``VEM9RTV,W@R-34M-#`Y-BUG<'0N=FUD:RYO=70`K5Q=C]S&
M$7SWKYB<'QPDR(*U_%H^*(B=LP,C"*#(3O*2ARR_XD-L23D=C`C8'Q\..357
-MO+LY4KX^\;3;VN[:Z9YE<U5=8)8M/\X5K2L*5_2NK%P&-_W3<K@LOS>FXWCB
-M"Y<_7__E[P?^_/IPN'RV@,%'20@RA1-C]3Z7PX,?PAV?BUJ],!W'3;C<1[6/
-M`@/<,?%"$JZ87CP^%<+5G>>7>_]$X%P$<BNX\HF<DLD^M[K??!:*Y]>7^S5,
-MVULUKLY=U0;35>5LYZX^SJ]EKIZ<Q@GP<W=]\^$_[GKXT-W>O+][%]9W]'L[
-M.1>5]Z\ZCS`E5E?^B7_!PS4>HAI<WKL<_F5WN?WFYL?A\/-P^^'FW=M78+I'
-MO[=%[HK&+\?[9_?'RO!ODKD*_CW<Y8_?7K\*G]SL\/Y\2S@?-2UD>N\I#\6M
-M*N=_'Q_SZH:W=QYQ##]Q=7YO0W'*^;T+_Z0L7-VX>3FEQSY.+_<AY;EVW>UP
-MOAN^__A^>'7UT[NWL79^;WW)FAGH-!<J=V7NH4)JOGRE1_0?FWG7W.7'F[L?
-M;KKOIC0_#%>'SQWA*E^[:0-/85U+UE-(E=S9:=F7K_]W-^7K^K"S-X2;%S$G
-M,;UW>71E[;&F#9RWXNCRPC^;_FE:\)1)`>_D+N_>'M[\8SK%?;&^>_WE&\*=
-MIJC)<UK@%#(EM,JI7/(O'WXLW>6[K]V53_+['X;Y$TBX9CG-O/.R#YC-HW\2
-MJK;`^R96^!?FG777Y[NS^^K\83A\?GW]5=S9LT^VF(]I:8-'J19H__F>RSD5
-M;MGI9:/GK>C[]G#NS^_OAEN_O7$K6E^B/F3JM[6XW\;U^]3S3HW^$^,NK]S5
-M33_MJ8?]]_#N)\)UR\=X6H?_2#1S8.Z?3)^>&7X([[!\8OPV>;CA[O;CH?OX
-MX\W;?CK1W"O"]4OMIN7D65A47-/#1<6WG6IWE=TO;<(FW.!+M"SJ%$Z,"6M9
-MQWT5_">F]$>HPN7CX8?AW$_+<E?'LKR*6S$^W`HMT8,J+!L]U6+9BK"PCX</
-M0Q?@\BQLX+@JSK(FEU<NS\.*U@WT[MWMO+0JO])^G#^\EKVT'Q>/+JGU+P1<
-MX*S75V4/KF>YQA5BE"M`?Q7+IM\_3+^O[]=7^?55XEEKU$F,9@7WKPGB_>-T
-M*_\1.XMGJU&=&/V>ZE6^M0WB.3ZL'K]J0)ZGX?A=@)ZY1A5BE"NX5.W*4#MZ
-MUAIU$J-9P:5J5X7:T;/5J$Z,?E>R=:@=/4>-\@_\*H5LQ]>RZA1J1\]<HPHQ
-MRA5<JG9-J!T]:XTZB=&LX%*U.X?:T;/5J$Z,?E>R;:@=/4>-\@]L$)#G:;@N
-MU(Z>N4858I0KN%3M^E`[>M8:=1*C6<&E:C>$VM&SU:A.C'Y7LF.H'3U'C?(/
-MA=2NV(*KLU`[>N8:58A1KN`2M:O9[^A9:]1)C&8%EZA=S7Y'SU:C.C'Z7<FR
-MW]%SU"C_4$KMRDTX]CMZYAI5B%&NX%*U8[^C9ZU1)S&:%5RJ=NQW]&PUJA.C
-MWY4L^QT]1XWR#Y74KMJ$8[^C9ZY1A1CE"BY5._8[>M8:=1*C6<&E:L=^1\]6
-MHSHQ^EW)LM_1<]0H_\`O09#G:3CV.WKF&E6(4:[@4K5COZ-GK5$G,9H57*IV
-M['?T;#6J$Z/?E2S['3U'C?(/)&0@SY-PIRS4CIZY1A5BE"NX1.U.['?TK#7J
-M)$:S@DO4[L1^1\]6HSHQ^EW)LM_1<]0H_]!([9I-./8[>N8:58A1KN!2M6._
-MHV>M42<QFA5<JG;L=_1L-:H3H]^5+/L=/4>-\@_\+Q3D>1J._8Z>N4858I0K
-MN%3MV._H66O428QF!9>J'?L=/5N-ZL3H=R7+?D?/4:/\`_E'R/,T'/L=/7.-
-M*L0H5W"IVK'?T;/6J),8S0HN53OV.WJV&M6)T>]*EOV.GJ-&^8=.:M=MP359
-MJ!T]<XTJQ"A7<(G:->QW]*PUZB1&LX)+U*YAOZ-GJU&=&/VN9-GOZ#EJE'_H
-MI7;])AS['3USC2K$*%=PJ=JQW]&SUJB3&,T*+E4[]CMZMAK5B='O2I;]CIZC
-M1OF'06HW;,*QW]$SUZA"C'(%EZH=^QT]:XTZB=&LX%*U8[^C9ZM1G1C]KF39
-M[^@Y:I1_&*5VXR8<^QT]<XTJQ"A7<*G:L=_1L]:HDQC-"BY5._8[>K8:U8G1
-M[TJ6_8Z>HT9E,CV#/$_"G;.E=M$SUZA"C'(%EZC=.?2[Z%EKU$F,9@67J-TY
-M]+OHV6I4)T:_*]G0[Z+GJ%&^9,+?89/2.H=^!^'OH/P=A+_#)G]W#OT.PM]!
-M^3L(?X=-_NX<^AV$OX/R=Q#^;D>RH=]!^#LH?P?A[[!):9U#OX/P=U#^#L+?
-M89._.X=^!^'OH/P=A+_#)G]W#OT.PM]!^3L(?[<CV=#O(/P=E+^#\'?8I+3.
-MH=]!^#LH?P?A[[#)WYU#OX/P=U#^#L+?89._.X=^!^'OH/P=A+_;D6SH=Q#^
-M#LK?0?@[;%):;19J)_P=E+^#\'?8Y.]:]COA[Z#\'82_PR9_U[+?"7\'Y>\@
-M_-V.9-GOA+^#\G<0_@Z;E%;+?B?\'92_@_!WV.3O6O8[X>^@_!V$O\,F?]>R
-MWPE_!^7O(/S=CF39[X2_@_)W$/X.FY16RWXG_!V4OX/P=]CD[UKV.^'OH/P=
-MA+_#)G_7LM\)?P?E[R#\W8YDV>^$OX/R=Q#^#IN45LM^)_P=E+^#\'?8Y.]:
-M]COA[Z#\'82_PR9_U[+?"7\'Y>\@_-V.9-GOA+^#\G<0_@Z;E%:7A=H)?P?E
-M[R#\'3;YNX[]3O@[*'\'X>^PR=]U['?"WT'Y.PA_MR-9]COA[Z#\'82_PR:E
-MU;'?"7\'Y>\@_!TV^;N._4[X.RA_!^'OL,G?=>QWPM]!^3L(?[<C6?8[X>^@
-M_!V$O\,FI=6QWPE_!^7O(/P=-OF[COU.^#LH?P?A[[#)WW7L=\+?0?D["'^W
-M(UGV.^'OH/P=A+_#)J75L=\)?P?E[R#\'3;YNX[]3O@[*'\'X>^PR=]U['?"
-MWT'Y.PA_MR-9]COA[Z#\'82_PR:EU6>A=L+?0?D["'^'3?ZN9[\3_@[*WT'X
-M.VSR=SW[G?!W4/X.PM_M2);]3O@[*'\'X>^P26GU['?"WT'Y.PA_ATW^KF>_
-M$_X.RM]!^#ML\G<]^YWP=U#^#L+?[4B6_4[X.RA_!^'OL$EI]>QWPM]!^3L(
-M?X=-_JYGOQ/^#LK?0?@[;/)W/?N=\'=0_@["W^U(EOU.^#LH?P?A[[!):?7L
-M=\+?0?D["'^'3?ZN9[\3_@[*WT'X.VSR=SW[G?!W4/X.PM_M2);]3O@[*'\7
-MQ720YP+GEM\`-V1+[9Z4E#_Q3[%V[LG5#=;ZP''<"Y@_G:[?XY@NLF>7\>GK
-MPZQ?C#./I>J_#'"!,ZX?XOQ=RG0?]ZGZ2L3Y.X\7Z2L1Y^\\7J2O1)R_\WB1
-MOA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[
-MB;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3Y
-MNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$
-M^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$IR_V^@KP?F[C;X2G+_;Z"O!
-M^;N-OA*<O]OH*\'YNXV^$IR_V^@KP?F[C;X2G+_;Z"O!^;N-OA*<O]OH*\'Y
-MNXV^$IR_V^@KP?F[C;X2G+_;Z"O!^;N-OA*<O]OH*\'YNXV^$IR_V^@KP?F[
-MC;X2G+_;Z"O!^;N-OA*<O]OH*\'YNXV^$IR_V^@KP?F[C;X2G+_;Z"O!^;N-
-MOA*<O]OH*\'YNXV^$IR_V^@KP?F[C;X2<?Y.SQ?I*Q'G[_1\D;X2<?Y.SQ?I
-M*Q'G[_1\D;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G
-M[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1
-MY^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K
-M$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA*<O]OH*S&8ZBLQ
-MF.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8
-MZBLQF.HK,9CJ*S%FF:&^$J.IOA*CJ;X2HZF^$J.IOA*CJ;X2HZF^$J.IOA*C
-MJ;X2HZF^$J.IOA*CJ;X2HZF^$J.IOA*CJ;X2HZF^\IAEF:&^\OCH7L<[X1XG
-MN^@#CS#55QZ/SR[CT]=7S/5;[J[Z^._T"Y>O#NL_$1#MIP%RA6LX)ES`GQN+
-MUFL8W#B&8U'.W6<8[V+]1,*_/@A<;UR__?N['&7ISN='@'_C^N;]+4I_/^:B
-MF6_.RSOSED6$FW,O.UW?U]]\ZUY_^>9[#_;/^W3GVSMWN2?;BMJCK%>'=+I_
-M>O/X["CFVSM/U3_63R:;)^&^>.ID*^;;.X_],W!/'6FXXKFH3[T3>#'?WEFC
-M5'WK\L&UN1O/[MPGX'[_`*XR_N3-=YYM*U=W_O[!)5PWW^RYKSPM[4[3:;*<
-M$T=W[+T2H88[^CLR'RYO_WIXNX#][O#?WX;U+7>>Q=-'^H54]8KY+N^G5+IU
-MHF&OV[S`Y=;5\]]7VM*L>DWXL#QUI%](5N^\5"]Q59NJ]]2I.\'QJO:K-5QK
-M6[UROFHLPI/'?Z=?N+P^K/\L@$4`-%MAX6\I:'=V>#C#L\/#&9X='L[T[/"`
-MAF>'AS,\.SR<X=GAX4S/CL+?,-+N(N[AL'QCKBLWUOX+Q&H9R<OQY?#S]+W"
-M_WRQ2G?F').7_F<NXD]OQF!X$?=PSU[$QR&9+'\>)&MX$?=PIA?QPM^],_OL
-)_ZT-&`6T90``
+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
+'I$_:M&4`````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu
index 4753ee6..36b9189 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow.gz.uu
@@ -1,6 +1,6 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.qcow.gz
-M'XL("+HS(E0``VEM9RTV,W@R-34M-3$R+6=P="YQ8V]W+F]U=`"MG<MN7-F1
+M'XL("-EQ+ED``VEM9RTV,W@R-34M-3$R+6=P="YQ8V]W+F]U=`"MG<MN7-F1
M1>?U%5=OB9*HC(C[U-MNM`'/RH9[UH.ZKQQU&]ES?7PSR?,@(_=6V!!51$$%
MX6YD'BTNJE2KC@Z'NV]-TTG3]DT[-<>EN?GG]"'-O7]X^-'\^-M?_GI]_]N/
MW^[&Y/"3I]P_M]I(FGNP]><ZI^>GUN8P_0MS-Q]P[MZKLW_CU=U[LY=S5[_=
@@ -117,16 +117,16 @@ M_LY<?_<MSQ7NT/UWQOH[<_W=M\3=M\H=\AWK[\SU=]\2=]\J=\AWK+\SU]]]
M.UV<'?(=Z^_,]7?E[.H<\AWK[\SU=V`.^8[U=^;Z.S"'?,?ZNS9_Q\U]KW/`
M=RWK[UK7WWW/<Y4[X+N;IS!WK>OOOB?NOF?NV@-^BORYQ^[-?L^]\7690W_>
M=GDJF+OW[<=O5W>#Z+ZJMF2`T>O[P[\^=%_5K[R^[O;\6FT.,_@[_X$??[Y^
-M^%<9O+T[Z-\8S*_PX5Q^P]W=W4&WT=1^X\YC^CC(_3<\UNOTP!M^<GUO#OW9
+M^%<9O+T[Z-\8S*_PX5Q^P]W=W4&WT=1^X\YC^CC(_3<\U.OTP!M^<GUO#OW9
MS+]R?NBZGY\-=ETSSQ>#_Y5?W^UU/VW7M'W33NDBQU::3INN+7.W[[5;[[^^
-M__S+7YO?__3W?YS'_KN^W=OK?G9MAO7V#Q_8W*L3^G9_^+=[-W?[Y7OPIYWG
-MC,X]P7.W7[Z[G\RA#S[7_NRI@])7=_%S>S?7'1X^-=Y_:NR:49O^YM^&9CKW
-M/P_FT!\?_RODW=X<L/3GG]O^YA=XTJS'\W>V_OR'[S;CS:?)W7^:T=O_EVEJ
-M!CG_7W;GG]M__NWZGW=C[Z__[VUZ?7<W!PC^X#_`3N_NY@!&Q"%GB_SM-@_G
-MP*_T?NWTSK]>6;I'.[TIP8(^^`_0TYOO3@\?TOE%P4^9'_>O$;T_!WZ]\DNG
-M=_M_-9Z_QL[@[_P'?OQ^_?"ON\$V#3[:*VP/_?J(GQWGN4?\[#C//>)GQWGN
-M43\[SH./^-EQGGO$SX[SW"-^=ISG'O6SXV;P]O<<'^F+^'GNS%YKS;PVZ]#T
-M_HLX^W+\XS^NK_\7O-V[WW-D7_I_\D4<_V3LC_A%_#SW\R_B/?VYS=_<FWW$
-7+^+GN4?](MX>AAN9_O;_@'C+'O6L````
+M__S+7YO?__3W?YS'_KN^W=OK?G9MAO7V#Q_8W*L3^G9_^+=[-W?[Y?OBM/.<
+MT;DG>.[VRW?WDSGTP>?:GSUU4/KJ+GYN[^:ZP\.GQOM/C5TS:M/?_-O03.?^
+MY\$<^N/C?X6\VYL#EO[\<]O?_`)/FO5X_L[6G__PW6:\^32Y^T\S>OO_,DW-
+M(.?_R^[\<_O/OUW_\V[L_?7_O4VO[^[F`,$?_`?8Z=W=',"(..1LD;_=YN$<
+M^)7>KYW>^=<K2_=HIS<E6-`'_P%Z>O/=Z>%#.K\H^"GSX_XUHO?GP*]7?NGT
+M;O^OQO/7V!G\G?_`C]^O'_YU-]BFP4=[A>VA7Q_QL^,\]XB?'>>Y1_SL.,\]
+MZF?'>?`1/SO.<X_XV7&>>\3/CO/<HWYVW`S>_I[C(WT1/\^=V6NMF==F'9K>
+M?Q%G7XY__,?U]?^"MWOW>X[L2_]/OHCCGXS]$;^(G^=^_D6\IS^W^9M[LX_X
+71?P\]ZA?Q-O#<"/3W_X?EY=\._6L````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu
index 26ffd0b..571ea18 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.qcow2.gz.uu
@@ -1,26 +1,26 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.qcow2.gz
-M'XL("+`[(U0``VEM9RTV,W@R-34M-3$R+6=P="YQ8V]W,BYO=70`K9A+;YPP
-M$(#O^15.WTT:BL<VC[Z3-"OE4B55>VL/+(]3%:EWVM]>C`T&,P/)UKMHE<B:
-M3V/SS=@0Q^;#F.),)DSFK-FS[G][`9O\,[]8>[N[CJ:?]LC`>$Q$(0-2C+@9
-MZ]+A@,+%?#G`<=PD.X'@8(A:@K9PDLQN;0#!G1SU2]??C,R+$(<`#8Z\&0?E
-M!R8_/T(>F!^$SD_@ZZ>&.'\@6<]/F/S\J)3"99LX0*)R"E=LX@02M:=PY29.
-M(E$5A:LW<0J):@@<WU"EPR5(%*=PL(E+D2A!X>0F+D.B*._XMG<Y$D5YQ[>]
-M*Y`HRCN^[=T>B:*\X]O>E4@4Y1W?]JY"HBCO@/"..5R-1%'>@>?=L<4]<K@&
-MB:*\`\^[QQ;W9,1Q+(KR#CSOGEK<,X=#^AU0WH'GW7.+>^%P2+\#RCOPO'MI
-M<2<.A_0[H+P#S[M3BWOE<$B_`\H[\+P[6WC'D7X'E'?"\^ZU9<4.A_0[07DG
-M/.^XQ8'#(?U.4-X)SSMA<=+AD'XG*.^$YYVRN,3AD'XG*.^$YUUJ<9G#(?U.
-M4-X)S[O<XMXX'-+O!.6=\+Q[:W'O'`[I=X+R3GC>O;>X#PZ']#M!>2<][SY:
-MW">'0_J=I+R3GG?G%G?A<$B_DY1WTO/NTN(^CSC`HD;OXAB_+.YJ4;.`]#N9
-MW!.W6^+HAY5#CK/2';<Y\DL/K`"SAP/)O5::<TJX"2LS86U5@?S2`^U%-/^.
-MP+YV'P`<,ISC[(25J5WSP%C7K&GL95;*!F>3`P(RX>-H@JL"KU]?;@\`*L6*
-M8@'\/N37EUM77^;=0&>WZIN!`J;DB.OGJLII?E>[:W9S_O6;AOUPT^W+3>-J
-M_;!4)%YVG)KNU1?$/F7*+6W\U1YP@L*-QS(/IX\7:;6"PR[6_B%P<BUJ?.EP
-MCWMK<"J>1TW;%LL4RX`E):L*$O=KADL"FR?U\#YA:<F26K]/*AO]1Y7HIS26
-M=65BMFWHSU@Y2[D^NW7`]NXVNC.PL^CWJ<U/<FL$=M$#U.I)6#-")[4Q73;'
-M8:^1_FOU=%_>JV"KEUM9L(L>(%>O,*N'+Y)."BV9=EBUH>`&W#[PZB5ZN*N/
-MKG\O?^F!]B::?PU06F"P#&72E`&K0^,"5H?&!:P.C0M:'1H8L#HT+F!U:%S`
-MZM"XH-71`>LXW":N<=J]/&.J8KED335/@]R.V^@G.MT:UK;^E4T<OQEUP$U<
-BXU8W\;0F)VL_?[W)!MS$-2[H)BY3??P^^@=.=Z`2%1H`````
+M'XL("-IQ+ED``VEM9RTV,W@R-34M-3$R+6=P="YQ8V]W,BYO=70`K9A+;YPP
+M$(#O^15.WTT:BL<VC[Z3-"OE4B55>VL/[`*G*E+OM+^]&!N\F!F<;+V+5HFL
+M^30VWXP-:6H^C"G.9,9DR=HMZ_^W%["]?^87ZVXWU\G^ISLR,)X24<B`%!-N
+MQKIT.*!P*5\.<!RWEYU`<#!&+4$AG"2S6QM`<"='P](--Z/P(L0A0(,C;\9!
+M^8')SX^0!^8'L?,3^/JI,<X?R-;S$R8_/RJG<$40!TA42>&J($X@45L*MPOB
+M)!)54[@FB%-(5$O@>$"5'I<A49S"01"7(U&"PLD@KD"B*.]XV+L2B:*\XV'O
+M*B2*\HZ'O=LB491W/.S=#HFBO.-A[VHDBO(.".^8PS5(%.4=>-X=6]PCAVN1
+M*,H[\+Q[;'%/)AS'HBCOP//NJ<4]<SBDWP'E'7C>/;>X%PZ']#N@O`//NY<6
+M=^)P2+\#RCOPO#NUN%<.A_0[H+P#S[NSA7<<Z7=`>2<\[UY;5NIP2+\3E'?"
+M\XY;'#@<TN\$Y9WPO!,6)QT.Z7>"\DYXWBF+RQP.Z7>"\DYXWN465S@<TN\$
+MY9WPO"LM[HW#(?U.4-X)S[NW%O?.X9!^)RCOA.?=>XO[X'!(OQ.4=]+S[J/%
+M?7(XI-])RCOI>7=N<1<.A_0[27DG/>\N+>[SA`,L:O(N3?'+XJX6-0M(OY/9
+M/7&;)8Y^6#GD."O=<9LCO_3`"K!X.)#<:Z4YI\2;L#(3UE95R"\]T%TD\^\$
+M'&KW`<`QPSG.3EB9VC4/C$W#VM9>9J5L<-ZZ`P(RX>-D#U='7K^AW!X`5(I5
+MU0+X?<QO*+>^OLR[@=YN-30#!4S)"3?,5>WV\[O:7+.;\Z_?-.R'F^Y0;AK7
+MZ(>E*O.RX]1TK[X@]BE3;LO5'G&"PDW',@^GCQ=YO8+#+M;](7!R+6IZZ7"/
+M>VMP*IU'[;<M5BA6`,MVK*Y(W*\9+HMLGM3#VXSE.Y8U^GW2KM5_U)E^2F-%
+M7R9FVX;AC%6RG.NS6P_L[FZ3.P,[2WZ?VOPDMT9@%SU`K9Z$-2-T4H'ILCD.
+M>XWT7ZNG^_)615N]TLJ"7?0`N7J563U\D712:,ETXZJ-!3?BMI%7+]/#?7WT
+M_7OY2P]T-\G\:X#2`J-E*+-V%[$Z-"YB=6A<Q.K0N*C5H8$1JT/C(E:'QD6L
+M#HV+6AT]L$GC;>(:I]TK"Z9J5DK6UO,TR.VX2WZBTVU@;>M?V<3QF]%$W,0U
+A;G43SQMRLO;SUYMLQ$U<XZ)NXC+7Q^^C?SXHP2(5&@``
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu
index 2a259cb..34c7c72 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.raw.gz.uu
@@ -1,15 +1,15 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.raw.gz
-M'XL("/G%'50``VEM9RTV,W@R-34M-3$R+6=P="YR87<N;W5T`*V534_#,`R&
-M[_L5WA5$E*1)FIWXD$#B-A#<N/1C/:%)W,M_)VX:UG9Q89+3J*KD^JGM^*VE
-MC`O`:)!5YDX;^@<QO_K-U6:@J?HR8/@^AK``B@",N"88I<9W#@?HNG%+-7A%
-M9VE!J_0\XL1I;<4$UYZ\SC9MF.)$Q*5TN\N`UD)5G0'?4WQZ.`X+QH'9@0[O
-M2S`*K`9K?G%#KK:9QO?X]`S[^]<WA'V<TM4J&%4#1D)30MLMHE-DNG?+="-.
-MHY=95COA"A*WS>.*>+8T+K=IG%GSBCWTO[.-."OG7G[JY2UX#:Z!MB)QGS.<
-M8^X\@^;:0=F`.X!5T'3XT#I0*L079.('2*AO"W('I0)=([`_OHACA-V(K^LQ
-M/J/&CLAMVD!5S^BUCL"@_D@7YKB"NWH>JV?9JK<;FR6W:0-9O2I6+U\D4C)]
-MJEI22,+5S-5S:`[Z"/_O\SMMZ/=B?D6@&8%L$8;F<XSJ0!RC.A#'J`[$L:H#
-M@8SJ0!RC.A#'J`[$L:HC`+WD&^*(&X:X@;*%MH!B.<2I<=R+;W&;2=?KM=&_
-F,L3SA^$9ASCBUH=X02:;UB)9QB&..-8A'H"5E)L?B^NWCH@+````
+M'XL("-IQ+ED``VEM9RTV,W@R-34M-3$R+6=P="YR87<N;W5T`*V52T_#,`S'
+M[_L4WA5$E*1)EIUX2"!Q&PAN7/I83V@2]_+=B9N&]1$7)CF-JDJN?[4=_VLI
+MXP(P&F29N=.&[D%,KVYSM>EIJKH,&+Z/(<R`(@`CK@Y&J?&=XQ':=MA2]5[1
+M61K0*CT/.'%>6S'"-6>OQ:8-8YR(N)1N>QG06BC+!?`]Q:?[X[!@')@]Z/"^
+M!*/`:K#F%]?G:NMQ?(]/SW"X?WU#V,<Y7:V"4=5@)-0[:-I9=(I,]VZ>;L1I
+M]%I4.^$*$K?-XXIXMC0NMVF<6?.*/?2_LXTX*Z=>?NSE+7@-KH:F)'&?$YQC
+M[CR#YLK!K@9W!*N@;O&A<:!4B"_(Q/>04-\&Y!YV"G2%P.[T(DX1=B.^KH?X
+MC!HZ(K=I`U4]H]<Z`H/Z(UV8X@KNZGFLGF6KWGYHEMRF#63UREB]?)%(R72I
+M:DDA"5<Q5\^A.>@C_+^7=]K0'<3TBD`S`-DB#,WG&-6!.$9U((Y1'8AC50<"
+M&=6!.$9U((Y1'8AC54<`>LDWQ!'7#W$#NP::`HKY$*?&<2>^Q6TF7:_71O_*
+F$,\?AF<<XHA;'^(%F6Q:LV09ASCB6(=X`)92;GX`")Q24X@+````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu
index b496241..833f43b 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.vhd.gz.uu
@@ -1,23 +1,23 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.vhd.gz
-M'XL(""4UQ%4``VEM9RTV,W@R-34M-3$R+6=P="YV:&0N;W5T`*V82X_3,!#'
-M[_LI!B%Q6$3D.+:37(I`6B1N"P+MA4OL)*L**(]R6(GL=\?C.`\G<:!B6BMJ
-MY<XO_WEX[(:Q_@6@,E`MJ`:4Q,^Y`%5"7@#823^XNZ;^*W3FVZDQOXX/B7]U
-M5STL97.KT!SM>0;"WB0'7N%-5(V?H1LPR=.;^^OCU_L!QSV.>Y#,T2KCH/3J
-M/GD-17\?A[L[\L\.^3BIR];J)JO>P;:%K)W](AO4/;KKR[FSPEK9W^.04.3`
-MQ#2"+\'$Y.PB=I(MK&8RMX+*)F>W<&K/ZA+<]97/15\JMC!R>V6@4L@Y?K9E
-M,\1A-6RI/)R_5S_/S4(?CY2*FB5C.;<3/>Y+A0\_]@H$"MQS%QSEO,1ME,I_
-M14^%=D-V;1"8'";XX+X=]OXL6!E.*!OTJ93MQ#R>C*B^"O4)NQ*JC6M\HGN=
-MA.\1J/5EP"&"(6Y,B#88/[=2FV;RJ"\2;VQ2R)IX0@ZS_.J:.+^ZO0PH)535
-M"OAQT&=<.B0(!:+$PK#-0:0@.4@QXISOTLSUW;QY"[>OWG]`V*?)78/E8MNF
-MK36E(-<+=>N5YG$\:7]O+#:#B\TF9!'M`9=%HW?87+L&%YMN=G!;(XX3>U;C
-M7O(/N>UQDH56Q=RJD+A_*`-U%<5]"7#4?;G!:6VS:G`+ERD8MY?7"M+4ZK/+
-MI'`0#KP&9C=VNPMK!':G=\FIA[U(?CSW^IK45\36B$_$HM?PO8I`47]Q%T(<
-M=5]N"HR>)(M>Z8ME:\0GHM&K^NAM!PE%;2W=<5=+DB<A3M-&+W7'1[L^;/]>
-M7^,3W6T2OGL@]]L0V;[&?2,E4R@\D$RA\.N74&$J=I-Y:9:55TCFLO)E0Z8P
-MKPO*'H@XPAZ(.,(>B#C2'HA`PAZ(.,(>B#C"'H@XTAZ8UZ4K9J*C&N*P]KB"
-M4N._W<*$,J*'KNY9<M<+.\S=+?N_T+$#WLY1;3,9)2,\JB%N]ZBFVYBS(V?A
-M+.%1#7&D1[7"]SVBIRV((WS:@CC"IRV((WS:@CC"IRV((WS:@CCJ4K%'EZL_
-(<L>MI:(3````
+M'XL("-IQ+ED``VEM9RTV,W@R-34M-3$R+6=P="YV:&0N;W5T`*V8S8^4,!3`
+M[_M7/&/B88VDE+;`98PF:^)M-9J]>*%\;";J^#$>-I']W^TK+5"@Z,0WTQ`F
+MY?UXW^V4L>$#H#)0':@6E,3[7(`J(2\`S*0;W%Y3]Q/Z^MNIK7\='Q+WZ:\&
+M6,KF4J$XRO,,A'E)#KS"EZ@&[Z'WF.3IS?WU\>N]QW&'XPXD<Y3*."B]>D_>
+M0#&\Q^+NCORS13Y.VF5K[2:IP<"N@ZR;/9%Y[1[M]>7<6&&DS/,X)!0Y,#&-
+MX$<P,1F[\)UD"ZF9FEM.99.Q6SBU)W4)[OK*Q6)(%9,8N;DR4"GD'.]-VG@_
+MK(9)E8?S]^KGN5WHQR.IHF;!6,[M>(^[5.'^8:>!0`7WS`5+.2]Q&ZGR7]Y3
+MH9R/KG$"DWZ">_/-,.]G065819G73Z5LQ^?Q8$3UJU`_82JAVKC&)_K72?@=
+M@5I?!O0>#'%C0'2-_K.5VK:314.2.&'S2-;&`W*8Q5<WQ/'5W65`*:&J5L"/
+M7K_:AD."4"!*3`S3'$0*DH,4(\[:+NNY?C=OWL+MJ_<?$/9I,K?&=#%MT^2:
+M4I#KA7;K2G,XGG2_-XJMQF);>]OCLJCW#INU6V.QZ78'MS7B.+$G-:XE_Q#;
+M`2=9*%7,I0J)ZX>JH:FBN"\!CKHOMSBM351K7,)E"K5=RQL%:6KT,V526`@'
+MW@`S"[M9A34"^].[Y#3`7B0_GCO]VM1EQ-:(3\2\U_*]C$"E_F(NA#CJOMP6
+MZ#U)YKW2)<O6B$]$O5<-WMMV$BJU5;KCJI8D3T*<IO5>:K>/ICY,_UY?XQ/]
+M;1)^!R!WRQ#9NL9=(R734#@@F8;"U2^AAJG8#>:E459.0S*3E4L;,@WSIJ#L
+M@8@C[(&((^R!B"/M@0@D[(&((^R!B"/L@8@C[8%Y4]ID)MJJ(0YSCRLH-?[;
+M+>I0C>BFJW^6W`V*'>;FEL-?Z-@&;V>KMAF,DA%NU1"WNU737<S8D;,PEG"K
+MACC2K5KA^A[1:0OB"$];$$=XVH(XPM,6Q!&>MB".\+0%<=2I8K8N5W\`!A+Z
+%KZ(3````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu
index 40aef66..40937fd 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.vhdf.gz.uu
@@ -1,19 +1,19 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.vhdf.gz
-M'XL(")<EAE4``VEM9RTV,W@R-34M-3$R+6=P="YV:&1F+F]U=`"ME\V.U#`,
-M@._S%$;<%A$E:9*FIP&D!7%;$(@+E_ZDJQ$P"`DD#GUX[*;=23I)85%:J\K(
-M]5?;M>,IY_X`4!)XF[CF%=,K%I_3X>8PTT3W."`^GUS8`!D"/:Y')9=TCW,P
-MCHMP,5MY8Q3%+^L9QR['"Q;@AM!J(WE%B&,>MX8[/@ZH-;3M%?#CZI^<7X<&
-M94`U(/%^C$V`EJ#5`VZ.7?>A?[>OW\+=R_<?"/;Y$JX4J+0.J@:XAEIOO!/9
-M<!OV*P[7X]`ARGXU)H.MLKCC-GL>5Q%NV,&E)(]3>U:^AO[MW7J<YK&5#:VL
-M!BO!]#"T6=S7"&<*5YXB=6>@[L$XT`+ZD1:#`2'0/VP3.T,DR`%X`[4`V1%P
-M.K]C9P][SGX\6_Q38JF(E.05N>PIN5<1Y-1?PH485Y7.GJ7LZ6+9:Y9B24E>
-MD<U>Z[.73A(YE6I=Q"U98T]B7%<X>X;4V!^X?U]?\XKICL6G!ZH%6,S#>AS[
-M@MU!N(+=0;B"W4&XHMU!P(+=0;B"W4&X@MU!N*+=@4#'RPUQPE'MC<BJH>V@
-M<[$;V7$\L3>+8\<H7"?W1O_.$$^_#%=PB!-N=XB/+AOL>FR"+3C$"5=TB-OE
-M[[>IP,S]932M:P4&6\J&0'FIF1G8?S^[_N?I=Y@]P@E?$4DA>UE189H:9$L/
-M,0.M`_^>WM[?G+[=KSBY1+4F4-=D56'.NJMP;1SNIY/\LO4NL4W9*'OBJIPW
-MV\`QQ*F'8/'3`+<8KBX2_8@4R4(FW%PJX<W_^VX]KG2IX*?!X0]&S!$YLPT`
+M'XL("-IQ+ED``VEM9RTV,W@R-34M-3$R+6=P="YV:&1F+F]U=`"MET^/U2`0
+MP._O4XSQMD8"%"@]O:S):KRM1N-E+_T#FY?59TPT\=`/+U/H>Z6%ZAI:TM!,
+MY]>9889I*?4'@.!`V\0U+QC?D/@<#S>'B<:ZYP'=^]&$%9`XH,?U3D@Y/F,,
+M6!L&99.65W;WE0WS&4>NQY$L<,-%:SOR@B6.>-SLKGT>4$IHVPWP\VP?GY9#
+M@E`@&N#N>0J"@>0@Q04W^2[[I7UW;]_#_>W'3PA[N+K+F1-J`U4#5$(M5]:Q
+MK+L-^16[ZW'.H$2T9UR5Q1W7T?.X"G'##BXU\CBQI^5SZ-_6UN,DC;7T4DM+
+MT!Q4#T.;Q7V-<*IPY@D4=PKJ'I0!R:"W.!D4,.;L<V6B)P@'/@!MH&;`.P2.
+MYP_D[&&OR8]7P3[!0D:D1EZ0BY[@>QF!1OW%78AQ5>GH:8R>+!:])B1+:N0%
+MV>BU/GKI(*%1J=)UN!`U\B+&=86CIU#LZL/MW]MK7C#>D_CT0!&`Q2RLK>T+
+M5@?B"E8'X@I6!^**5@<""U8'X@I6!^(*5@?BBE:'`QI:KHDC#G//.E8-;0>=
+MB<W(MN.1O`N&'2-W#=]K_3M-/+T8IF`31]QN$[<FZ^Q\K)PMV,015[2)Z_#Y
+MK2I04WTIB?-:@'(EI9=`?LV9"=A_/YO^Y^GW,GJ(8SXCD@/U>86)J6K@+;Y$
+M#3A?V/?R[O'F].UQQO'@U1Q`6:-6Y6+6;=S5L;M?3OQI;5UBF])1]-@FG5?;
+MP'&)$Q=GW:^!VV*HN([H)A(D$QEQ4ZHL'_[?M?6XTJGB?@T.?P"E;4<,LPT`
!````
`
end
diff --git a/usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu b/usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu
index ea3a546..3ff70e9 100644
--- a/usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu
+++ b/usr.bin/mkimg/tests/img-63x255-512-gpt.vmdk.gz.uu
@@ -1,88 +1,88 @@
# $FreeBSD$
begin 644 img-63x255-512-gpt.vmdk.gz
-M'XL("/K%'50``VEM9RTV,W@R-34M-3$R+6=P="YV;61K+F]U=`"M7%UOW-81
-M?<^ON%4>$K3H@F?Y_6"@294`01'`C=WFI0]=?C5"'=F5A:(&]L>7E[SGZE!:
-MBG0T"NW=,6?.WIE+SBIG#I@D\X]S6>.RS&6=RPN7P(W_-!\N21^,\3A6/''^
-MR_6/?S_PY^O#X?S%#`8?)2%(%$Z,Q>><#X]^"'=\+FIQ8CR.FW"ICVJ>!`:X
-MX\J)5;AL/'F\%,+5G:;3G7\C<"X"N05<?B&GU62?6]WOOPC%\^M+_1K&[2UJ
-M5Z:N:(+IBGRR4U<>IW.)*T>G803\TEW??/RWN^X_MG<W'^[?A_4=_=Z.SEGA
-M_8O6(XR)E85_XT]XN-I#%+U+.Y?"GW;GN^]OWO6'__9W'V_>W[X"TSWZO<U2
-ME]5^.=X_>3@6AO^0Q!7PG^'.?_[A^E6X<I/#A],=X7S4N)#QL\<\%+<HG/_S
-M])A6U]_>>\0A_,35^;T-Q<FGS\[\FSQS9>VFY>0>^SB>[D+*4^W:N_YTW[_]
-M]*%_=?7K^]M8.[^WOF3U!%1-A4I=GGJHD)HO7^X1_64S[9H[O[NY_^6F?3.F
-M^;&_.GSI"%?XVHT;6(5US5F/(<7JSH[+/G_WO_LQ7]>%G;TAW+2(*8GQL_.C
-MRTN/-6[@M!5'EV;^W?A/XX+'3#)X)W=^?WOXZ>?Q%O?%>O/ZFY\(5XU1H^>X
-MP#%D3&B14S[GGS^^+-WYS7?NRB?Y]I=^N@()5\^WF7>>]P&3>?1O0M5F>-_$
-M,G]BVEEW?;H_N6]/'_O#E]?7W\:=/?EDL^D8E]9[E&*&]M?W5,ZQ</-.SQL]
-M;477-8=3=_IPW]_Y[8U;T?@2=2%3OZW9PS8N/Z><=FKP5XP[OW)7-]VXIQ[V
-M7_W[7PG7SI?QN`Y_2=138.K?C%?/!-^'3YBO&+]-'JZ_O_MT:#^]N[GMQAO-
-MO2)<-]=N7$Z:A$7%-3U>5/S8L797R</21FS"];Y$\Z*J<&.,6/,Z'JK@KYC<
-M'Z$*YT^'7_I3-R[+71WS_"INQ?!X*[1$CZHP;_18BWDKPL(^'3[V;8!+D["!
-MPZ(X\YI<6K@T#2M:-M#[]W?3THKT2OMQ^OB[[*7].'ORE5K^1L`9SGI]1?+H
-M^RS5N$R,?`'HO\62\<^?QC^O']97^/45XEEJ5"5&O8#[YPCQX6FZA;_$3N+9
-M:%0K1K>G>H5O;;UX#H^KQU\U(._7X?B[`#U3C<K$R!=P:[7+0^WH66I4)4:]
-M@%NK71%J1\]&HUHQNEW)EJ%V]!PTRK_P5RDD.WXM*ZI0.WJF&I6)D2_@UFI7
-MA]K1L]2H2HQZ`;=6NU.H'3T;C6K%Z'8EVX3:T7/0*/_"!@%YOP[7AMK1,]6H
-M3(Q\`;=6NR[4CIZE1E5BU`NXM=KUH7;T;#2J%:/;E>P0:D?/0:/\2R:UR[;@
-MRB34CIZI1F5BY`NXE=J5['?T+#6J$J->P*W4KF2_HV>C4:T8W:YDV>_H.6B4
-M?\FE=ODF'/L=/5.-RL3(%W!KM6._HV>I4948]0)NK7;L=_1L-*H5H]N5+/L=
-M/0>-\B^%U*[8A&._HV>J49D8^0)NK7;L=_0L-:H2HU[`K=6._8Z>C4:U8G2[
-MDF6_H^>@4?Z%OP1!WJ_#L=_1,]6H3(Q\`;=6._8[>I8:58E1+^#6:L=^1\]&
-MHUHQNEW)LM_1<]`H_T)"!O)^%:Y*0NWHF6I4)D:^@%NI7<5^1\]2HRHQZ@7<
-M2NTJ]CMZ-AK5BM'M2I;]CIZ#1OF76FI7;\*QW]$SU:A,C'P!MU8[]CMZEAI5
-MB5$OX-9JQWY'ST:C6C&Z7<FRW]%ST"C_PO^%@KQ?AV._HV>J49D8^0)NK7;L
-M=_0L-:H2HU[`K=6._8Z>C4:U8G2[DF6_H^>@4?Z%_"/D_3H<^QT]4XW*Q,@7
-M<&NU8[^C9ZE1E1CU`FZM=NQW]&PTJA6CVY4L^QT]!XWR+ZW4KMV"JY-0.WJF
-M&I6)D2_@5FI7L]_1L]2H2HQZ`;=2NYK]CIZ-1K5B=+N29;^CYZ!1_J63VG6;
-M<.QW]$PU*A,C7\"MU8[]CIZE1E5BU`NXM=JQW]&ST:A6C&Y7LNQW]!PTRK_T
-M4KM^$X[]CIZI1F5BY`NXM=JQW]&SU*A*C'H!MU8[]CMZ-AK5BM'M2I;]CIZ#
-M1OF706HW;,*QW]$SU:A,C'P!MU8[]CMZEAI5B5$OX-9JQWY'ST:C6C&Z7<FR
-MW]%ST*A$IF>0]ZMPIV2N7?1,-2H3(U_`K=3N%/I=]"PUJA*C7L"MU.X4^EWT
-M;#2J%:/;E6SH=]%ST"A?,N'OL$EIG4*_@_!W4/X.PM]AD[\[A7X'X>^@_!V$
-MO\,F?W<*_0["WT'Y.PA_MR/9T.\@_!V4OX/P=]BDM$ZAWT'X.RA_!^'OL,G?
-MG4*_@_!W4/X.PM]AD[\[A7X'X>^@_!V$O]N1;.AW$/X.RM]!^#ML4EJGT.\@
-M_!V4OX/P=]CD[TZAWT'X.RA_!^'OL,G?G4*_@_!W4/X.PM_M2#;T.PA_!^7O
-M(/P=-BFM)@FU$_X.RM]!^#ML\G<-^YWP=U#^#L+?89._:]COA+^#\G<0_FY'
-MLNQWPM]!^3L(?X=-2JMAOQ/^#LK?0?@[;/)W#?N=\'=0_@["WV&3OVO8[X2_
-M@_)W$/YN1[+L=\+?0?D["'^'34JK8;\3_@[*WT'X.VSR=PW[G?!W4/X.PM]A
-MD[]KV.^$OX/R=Q#^;D>R['?"WT'Y.PA_ATU*JV&_$_X.RM]!^#ML\G<-^YWP
-M=U#^#L+?89._:]COA+^#\G<0_FY'LNQWPM]!^3L(?X=-2JM-0NV$OX/R=Q#^
-M#IO\7<M^)_P=E+^#\'?8Y.]:]COA[Z#\'82_VY$L^YWP=U#^#L+?89/2:MGO
-MA+^#\G<0_@Z;_%W+?B?\'92_@_!WV.3O6O8[X>^@_!V$O]N1+/N=\'=0_@["
-MWV&3TFK9[X2_@_)W$/X.F_Q=RWXG_!V4OX/P=]CD[UKV.^'OH/P=A+_;D2S[
-MG?!W4/X.PM]AD])JV>^$OX/R=Q#^#IO\7<M^)_P=E+^#\'?8Y.]:]COA[Z#\
-M'82_VY$L^YWP=U#^#L+?89/2ZI)0.^'OH/P=A+_#)G_7L=\)?P?E[R#\'3;Y
-MNX[]3O@[*'\'X>]V),M^)_P=E+^#\'?8I+0Z]COA[Z#\'82_PR9_U['?"7\'
-MY>\@_!TV^;N._4[X.RA_!^'O=B3+?B?\'92_@_!WV*2T.O8[X>^@_!V$O\,F
-M?]>QWPE_!^7O(/P=-OF[COU.^#LH?P?A[W8DRWXG_!V4OX/P=]BDM#KV.^'O
-MH/P=A+_#)G_7L=\)?P?E[R#\'3;YNX[]3O@[*'\'X>]V),M^)_P=E+^+8CK(
-M>X%S\Y\`UR=S[2Y*RB_\4ZR=N[BZWEH?.`Q[`=/+Z?H]CNDB>789G[\^3/K%
-M./.8J_[;`&<XX_HASM^E3`]QGZNO1)R_\WB1OA)Q_L[C1?I*Q/D[CQ?I*Q'G
-M[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1
-MY^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K
-M$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH
-M*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@KP?F[C;X2G+_;Z"O!^;N-OA*<O]OH
-M*\'YNXV^$IR_V^@KP?F[C;X2G+_;Z"O!^;N-OA*<O]OH*\'YNXV^$IR_V^@K
-MP?F[C;X2G+_;Z"O!^;N-OA*<O]OH*\'YNXV^$IR_V^@KP?F[C;X2G+_;Z"O!
-M^;N-OA*<O]OH*\'YNXV^$IR_V^@KP?F[C;X2G+_;Z"O!^;N-OA*<O]OH*\'Y
-MNXV^$IR_V^@KP?F[C;X2G+_;Z"L1Y^_T?)&^$G'^3L\7Z2L1Y^_T?)&^$G'^
-M3L\7Z2L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O
-M1)R_F^@K$>?O)OI*Q/F[B;X2<?YNHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZB
-MKT2<OYOH*Q'G[R;Z2L3YNXF^$G'^;J*O1)R_F^@K$>?O)OI*Q/F[B;X2<?YN
-MHJ]$G+^;Z"L1Y^\F^DK$^;N)OA)Q_FZBKT2<OYOH*\'YNXV^$KVIOA*]J;X2
-MO:F^$KVIOA*]J;X2O:F^$KVIOA*]J;X2O:F^$KVIOA*]J;X2O:F^$KVIOA*]
-MJ;X2O:F^$D.2&.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8ZBLQ
-MF.HK,9CJ*S&8ZBLQF.HK,9CJ*S&8ZBLQF.HKCTF2&.HKCT^>=;P3[FFRLS[P
-M"%-]Y?'X[#(^?WW95+_YZ:I/_UX_<?[VL/PO`J+Y/$"N<`G'A#/X>V/6>O6]
-M&X9PS,JYAPSC4ZPO)/SU0>`ZX_KMW]_YR'-W.CT!_!O7-^UOEOOG,6?U]'!>
-M/IDWSR+<E'O>ZOJ^^_X']_J;G]YZL'\\I#L]WGEH7=VYOO00R]7AF73?/KT[
-MLNGQSF/UC^7%9--5N*\NW6S9]'CGH7L&[M*Q#I<]%_6Y3P+/IL<[:Y2J;UV5
-MN^KHG]_;/7[R[`/0NP5<87SE34^>;0I7MO[YP3E<.SWLN2L\+>VJ\3:9[XFC
-M.W9>B5#"'?T3F0_GV[\>;F>P/Q[^\X>POOG)L[A\K)]8JUYV?.Z*\(O:2-<M
-MX5+KZOG?5YK<K'IUN%@N'>LG5JMWFJNW\JTV+NK2K3O"\5OM=TNXQKAZDRI_
-M%IX\_7O]Q/GU8?G?#)@%0+,59OZ1@G9WAX<SO#L\G.'=X>%,[PX/:'AW>#C#
-MN\/#&=X='L[T[LC\`R/MOL0]G+_VNK'FM7^&?[Z\:M:_CL?U_?QF6MA7BW0G
-MSG'UJ_^9+_'+F]$;?HE[N&>_Q(=^/=GP\RA9PR]Q#V?Z)9[YIW<F7_P?K`W?
-%E+1E````
+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
+$M&4`````
`
end
diff --git a/usr.bin/mkimg/uuid.c b/usr.bin/mkimg/uuid.c
new file mode 100644
index 0000000..437675d
--- /dev/null
+++ b/usr.bin/mkimg/uuid.c
@@ -0,0 +1,125 @@
+/*-
+ * Copyright (c) 2016 Marcel Moolenaar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "endian.h"
+#include "image.h"
+#include "mkimg.h"
+
+static void osdep_uuidgen(mkimg_uuid_t *);
+
+#ifdef __APPLE__
+#include <uuid/uuid.h>
+
+static void
+osdep_uuidgen(mkimg_uuid_t *uuid)
+{
+
+ uuid_generate_time((void *)uuid);
+}
+#endif /* __APPLE__ */
+
+#ifdef __FreeBSD__
+#include <sys/uuid.h>
+
+static void
+osdep_uuidgen(mkimg_uuid_t *uuid)
+{
+
+ uuidgen((void *)uuid, 1);
+}
+#endif /* __FreeBSD__ */
+
+#ifdef __linux__
+#include <stdlib.h>
+#include <time.h>
+
+static void
+osdep_uuidgen(mkimg_uuid_t *uuid)
+{
+ struct timespec tp;
+ uint64_t time = 0x01B21DD213814000LL;
+ u_int i;
+ uint16_t seq;
+
+ if (clock_gettime(CLOCK_REALTIME, &tp) == -1)
+ abort();
+
+ time += (uint64_t)tp.tv_sec * 10000000LL;
+ time += tp.tv_nsec / 100;
+
+ uuid->time_low = (uint32_t)time;
+ uuid->time_mid = (uint16_t)(time >> 32);
+ uuid->time_hi_and_version = (uint16_t)(time >> 48) & 0xfff;
+ uuid->time_hi_and_version |= 1 << 12;
+
+ seq = random();
+
+ uuid->clock_seq_hi_and_reserved = (uint8_t)(seq >> 8) & 0x3f;
+ uuid->clock_seq_low = (uint8_t)seq;
+
+ for (i = 0; i < 6; i++)
+ uuid->node[i] = (uint8_t)random();
+ uuid->node[0] |= 0x01;
+}
+#endif /* __linux__ */
+
+void
+mkimg_uuid(mkimg_uuid_t *uuid)
+{
+ static uint8_t gen[sizeof(mkimg_uuid_t)];
+ u_int i;
+
+ if (!unit_testing) {
+ osdep_uuidgen(uuid);
+ return;
+ }
+
+ for (i = 0; i < sizeof(gen); i++)
+ gen[i]++;
+ memcpy(uuid, gen, sizeof(*uuid));
+}
+
+void
+mkimg_uuid_enc(void *buf, const mkimg_uuid_t *uuid)
+{
+ uint8_t *p = buf;
+ u_int i;
+
+ le32enc(p, uuid->time_low);
+ le16enc(p + 4, uuid->time_mid);
+ le16enc(p + 6, uuid->time_hi_and_version);
+ p[8] = uuid->clock_seq_hi_and_reserved;
+ p[9] = uuid->clock_seq_low;
+ for (i = 0; i < 6; i++)
+ p[10 + i] = uuid->node[i];
+}
diff --git a/usr.bin/mkimg/vhd.c b/usr.bin/mkimg/vhd.c
index c4c1d1d..31a527a 100644
--- a/usr.bin/mkimg/vhd.c
+++ b/usr.bin/mkimg/vhd.c
@@ -27,15 +27,14 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/endian.h>
#include <sys/errno.h>
+#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
-#include <uuid.h>
+#include "endian.h"
#include "image.h"
#include "format.h"
#include "mkimg.h"
@@ -92,7 +91,7 @@ struct vhd_footer {
#define VHD_DISK_TYPE_DYNAMIC 3
#define VHD_DISK_TYPE_DIFF 4
uint32_t checksum;
- uuid_t id;
+ mkimg_uuid_t id;
uint8_t saved_state;
uint8_t _reserved[427];
};
@@ -201,25 +200,10 @@ vhd_timestamp(void)
}
static void
-vhd_uuid_enc(void *buf, const uuid_t *uuid)
-{
- uint8_t *p = buf;
- int i;
-
- be32enc(p, uuid->time_low);
- be16enc(p + 4, uuid->time_mid);
- be16enc(p + 6, uuid->time_hi_and_version);
- p[8] = uuid->clock_seq_hi_and_reserved;
- p[9] = uuid->clock_seq_low;
- for (i = 0; i < _UUID_NODE_LEN; i++)
- p[10 + i] = uuid->node[i];
-}
-
-static void
vhd_make_footer(struct vhd_footer *footer, uint64_t image_size,
uint32_t disk_type, uint64_t data_offset)
{
- uuid_t id;
+ mkimg_uuid_t id;
memset(footer, 0, sizeof(*footer));
be64enc(&footer->cookie, VHD_FOOTER_COOKIE);
@@ -236,7 +220,7 @@ vhd_make_footer(struct vhd_footer *footer, uint64_t image_size,
be16enc(&footer->geometry.cylinders, footer->geometry.cylinders);
be32enc(&footer->disk_type, disk_type);
mkimg_uuid(&id);
- vhd_uuid_enc(&footer->id, &id);
+ mkimg_uuid_enc(&footer->id, &id);
be32enc(&footer->checksum, vhd_checksum(footer, sizeof(*footer)));
}
@@ -261,7 +245,7 @@ struct vhd_dyn_header {
uint32_t max_entries;
uint32_t block_size;
uint32_t checksum;
- uuid_t parent_id;
+ mkimg_uuid_t parent_id;
uint32_t parent_timestamp;
char _reserved1[4];
uint16_t parent_name[256]; /* UTF-16 */
diff --git a/usr.bin/mkimg/vmdk.c b/usr.bin/mkimg/vmdk.c
index 743418b..ce0d7b3 100644
--- a/usr.bin/mkimg/vmdk.c
+++ b/usr.bin/mkimg/vmdk.c
@@ -27,8 +27,6 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/endian.h>
#include <sys/errno.h>
#include <stdint.h>
#include <stdio.h>
@@ -36,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#include <unistd.h>
+#include "endian.h"
#include "image.h"
#include "format.h"
#include "mkimg.h"
diff --git a/usr.bin/mkimg/vtoc8.c b/usr.bin/mkimg/vtoc8.c
index 2f5cf0f..650f339 100644
--- a/usr.bin/mkimg/vtoc8.c
+++ b/usr.bin/mkimg/vtoc8.c
@@ -27,23 +27,20 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#include <sys/types.h>
-#include <sys/endian.h>
#include <sys/errno.h>
-#include <sys/vtoc.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/vtoc.h>
+
+#include "endian.h"
#include "image.h"
#include "mkimg.h"
#include "scheme.h"
-#ifndef VTOC_TAG_FREEBSD_NANDFS
-#define VTOC_TAG_FREEBSD_NANDFS 0x0905
-#endif
-
static struct mkimg_alias vtoc8_aliases[] = {
{ ALIAS_FREEBSD_NANDFS, ALIAS_INT2TYPE(VTOC_TAG_FREEBSD_NANDFS) },
{ ALIAS_FREEBSD_SWAP, ALIAS_INT2TYPE(VTOC_TAG_FREEBSD_SWAP) },
@@ -87,7 +84,7 @@ vtoc8_write(lba_t imgsz, void *bootcode __unused)
be16enc(&vtoc8.magic, VTOC_MAGIC);
be32enc(&vtoc8.map[VTOC_RAW_PART].nblks, imgsz);
- STAILQ_FOREACH(part, &partlist, link) {
+ TAILQ_FOREACH(part, &partlist, link) {
n = part->index + ((part->index >= VTOC_RAW_PART) ? 1 : 0);
be16enc(&vtoc8.part[n].tag, ALIAS_TYPE2INT(part->type));
be32enc(&vtoc8.map[n].cyl, part->block / (nsecs * nheads));
OpenPOWER on IntegriCloud