summaryrefslogtreecommitdiffstats
path: root/lib/libdisk
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-10-31 01:28:59 +0000
committermarcel <marcel@FreeBSD.org>2004-10-31 01:28:59 +0000
commite0e7753e228f99241dffacc3ea1edcdfeedf7da6 (patch)
tree1ecd0db40f26bdb02f9266011e0bea29042af444 /lib/libdisk
parent17432a99e56e3aac0424524d9bdd13da99487254 (diff)
downloadFreeBSD-src-e0e7753e228f99241dffacc3ea1edcdfeedf7da6.zip
FreeBSD-src-e0e7753e228f99241dffacc3ea1edcdfeedf7da6.tar.gz
Don't barf when we encounter an UUID for GPT partitions. Instead, add
the GPT partition on i386 and adm64 as type=gpt, subtype=0 and with the sname set to the UUID. This prevents sysinstall from bombing out. This also makes sure the GPT partition shows up in sysinstall so as to avoid accidental "clobberage". PR: bin/72896
Diffstat (limited to 'lib/libdisk')
-rw-r--r--lib/libdisk/chunk.c1
-rw-r--r--lib/libdisk/open_disk.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/libdisk/chunk.c b/lib/libdisk/chunk.c
index ef63ccc..fb43ef5 100644
--- a/lib/libdisk/chunk.c
+++ b/lib/libdisk/chunk.c
@@ -252,6 +252,7 @@ Add_Chunk(struct disk *d, daddr_t offset, daddr_t size, const char *name,
case p_amd64:
switch (type) {
case fat:
+ case gpt:
case mbr:
case extended:
case freebsd:
diff --git a/lib/libdisk/open_disk.c b/lib/libdisk/open_disk.c
index 8a8229b4..9e487a9 100644
--- a/lib/libdisk/open_disk.c
+++ b/lib/libdisk/open_disk.c
@@ -167,7 +167,7 @@ Int_Open_Disk(const char *name, char *conftxt)
b = strsep(&p, " ");
o = strtoimax(b, &r, 0);
/* APPLE have ty as a string */
- if ((*r) && strcmp(t, "APPLE")) {
+ if ((*r) && (strcmp(t, "APPLE") && strcmp(t, "GPT"))) {
printf("BARF %d <%d>\n", __LINE__, *r);
exit (0);
}
@@ -256,7 +256,7 @@ Int_Open_Disk(const char *name, char *conftxt)
break;
}
} else if (!strcmp(t, "GPT"))
- i = Add_Chunk(d, off, len, n, ty, 0, 0, 0);
+ i = Add_Chunk(d, off, len, n, gpt, 0, 0, b);
else if (!strcmp(t, "APPLE"))
i = Add_Chunk(d, off, len, n, apple, 0, 0, sn);
else
OpenPOWER on IntegriCloud