summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2007-09-21 16:24:01 +0000
committermarcel <marcel@FreeBSD.org>2007-09-21 16:24:01 +0000
commit51f2b5019d115cce69972a26afcee111daf241fd (patch)
tree053bf4eb9e26f1ca9ea864b0c815338cfa08e15d
parent876d6af999211941c63831d81fd9ac59593cf60b (diff)
downloadFreeBSD-src-51f2b5019d115cce69972a26afcee111daf241fd.zip
FreeBSD-src-51f2b5019d115cce69972a26afcee111daf241fd.tar.gz
Translate partitions of type "PART" to chunks of the same type
as they would have been translated from partitions of type "GPT". This fixes sysinstall, now that geom_part has taken over from geom_gpt. Approved by: re (kensmith)
-rw-r--r--lib/libdisk/open_ia64_disk.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/libdisk/open_ia64_disk.c b/lib/libdisk/open_ia64_disk.c
index 8fc9f64..bd28c7a 100644
--- a/lib/libdisk/open_ia64_disk.c
+++ b/lib/libdisk/open_ia64_disk.c
@@ -206,9 +206,19 @@ Int_Open_Disk(const char *name, char *conftxt)
r = strsep(&p, " ");
i = strtoimax(r, &s, 0);
if (*s) {
- uuid_from_string(r, &uuid, &status);
- if (status != uuid_s_ok)
- abort();
+ status = uuid_s_ok;
+ if (!strcmp(r, "efi"))
+ uuid = _efi;
+ else if (!strcmp(r, "mbr"))
+ uuid = _mbr;
+ else if (!strcmp(r, "freebsd"))
+ uuid = _fbsd;
+ else if (!strcmp(r, "freebsd-swap"))
+ uuid = _swap;
+ else if (!strcmp(r, "freebsd-ufs"))
+ uuid = _ufs;
+ else
+ uuid_from_string(r, &uuid, &status);
} else
status = uuid_s_invalid_string_uuid;
if (!strcmp(q, "o"))
@@ -241,7 +251,8 @@ Int_Open_Disk(const char *name, char *conftxt)
}
} else if (strcmp(type, "BSD") == 0) {
chunk.type = part;
- } else if (strcmp(type, "GPT") == 0) {
+ } else if (strcmp(type, "GPT") == 0 ||
+ strcmp(type, "PART") == 0) {
chunk.subtype = 0;
if (status != uuid_s_ok)
abort();
OpenPOWER on IntegriCloud