diff --git a/sys/geom/part/g_part.c b/sys/geom/part/g_part.c index f47ac08ffe3a..a7eebc69e37c 100644 --- a/sys/geom/part/g_part.c +++ b/sys/geom/part/g_part.c @@ -91,6 +91,7 @@ struct g_part_alias_list { { "ms-ldm-data", G_PART_ALIAS_MS_LDM_DATA }, { "ms-ldm-metadata", G_PART_ALIAS_MS_LDM_METADATA }, { "ms-reserved", G_PART_ALIAS_MS_RESERVED }, + { "ntfs", G_PART_ALIAS_MS_NTFS }, { "netbsd-ccd", G_PART_ALIAS_NETBSD_CCD }, { "netbsd-cgd", G_PART_ALIAS_NETBSD_CGD }, { "netbsd-ffs", G_PART_ALIAS_NETBSD_FFS }, diff --git a/sys/geom/part/g_part.h b/sys/geom/part/g_part.h index e146cba61162..63cb06925568 100644 --- a/sys/geom/part/g_part.h +++ b/sys/geom/part/g_part.h @@ -59,6 +59,7 @@ enum g_part_alias { G_PART_ALIAS_MS_LDM_DATA, /* A Microsoft LDM Data part. entry. */ G_PART_ALIAS_MS_LDM_METADATA, /* A Microsoft LDM Metadata entry. */ G_PART_ALIAS_MS_RESERVED, /* A Microsoft Reserved part. entry. */ + G_PART_ALIAS_MS_NTFS, /* A Microsoft NTFS partition entry */ G_PART_ALIAS_NETBSD_CCD, /* A NetBSD CCD partition entry. */ G_PART_ALIAS_NETBSD_CGD, /* A NetBSD CGD partition entry. */ G_PART_ALIAS_NETBSD_FFS, /* A NetBSD FFS partition entry. */ diff --git a/sys/geom/part/g_part_mbr.c b/sys/geom/part/g_part_mbr.c index 8b5ba2779a63..6cc6245ca744 100644 --- a/sys/geom/part/g_part_mbr.c +++ b/sys/geom/part/g_part_mbr.c @@ -127,6 +127,11 @@ mbr_parse_type(const char *type, u_char *dp_typ) *dp_typ = DOSPTYP_386BSD; return (0); } + alias = g_part_alias_name(G_PART_ALIAS_MS_NTFS); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_NTFS; + return (0); + } return (EINVAL); } @@ -509,9 +514,14 @@ g_part_mbr_type(struct g_part_table *basetable, struct g_part_entry *baseentry, entry = (struct g_part_mbr_entry *)baseentry; type = entry->ent.dp_typ; - if (type == DOSPTYP_386BSD) + switch (type) { + case DOSPTYP_386BSD: return (g_part_alias_name(G_PART_ALIAS_FREEBSD)); - snprintf(buf, bufsz, "!%d", type); + case DOSPTYP_NTFS: + return (g_part_alias_name(G_PART_ALIAS_MS_NTFS)); + default: + snprintf(buf, bufsz, "!%d", type); + } return (buf); } diff --git a/sys/sys/diskmbr.h b/sys/sys/diskmbr.h index 932d4f4d148c..8ca742f7ba22 100644 --- a/sys/sys/diskmbr.h +++ b/sys/sys/diskmbr.h @@ -49,6 +49,7 @@ #define DOSPTYP_PMBR 0xee /* GPT Protective MBR */ #define DOSPTYP_EXT 5 /* DOS extended partition */ #define DOSPTYP_EXTLBA 15 /* DOS extended partition */ +#define DOSPTYP_NTFS 0x07 /* NTFS partition */ struct dos_partition { unsigned char dp_flag; /* bootstrap flags */