Date: Mon, 07 Jun 2010 20:12:55 +0200 From: Bapt <baptiste.daroussin@gmail.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/147664: [patch] Add the ability to create linux and fat32 partitions gpart Message-ID: <cf167@azathoth.lan> Resent-Message-ID: <201006071820.o57IK4Xi083660@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 147664 >Category: kern >Synopsis: [patch] Add the ability to create linux and fat32 partitions gpart >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jun 07 18:20:04 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Bapt >Release: FreeBSD 8.1-PRERELEASE amd64 >Organization: >Environment: System: FreeBSD azathoth.lan 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #4 r208894M: Mon Jun 7 19:26:29 CEST 2010 root@azathoth.lan:/usr/obj/usr/src/sys/AZATHOTH amd64 >Description: This patch add the ability to create FAT32 partition (only on MBR scheme) while here I added the ability to create linux, linux-swap and linux-lvm partitions gpart add -t win95-fat32 da0 to to do it I can't test on current but it seems to be the same files as on 8-stable, so the patch should also work on current >How-To-Repeat: >Fix: --- gpart-2.patch begins here --- Index: sys/geom/part/g_part.h =================================================================== --- sys/geom/part/g_part.h (révision 208894) +++ sys/geom/part/g_part.h (copie de travail) @@ -51,6 +51,7 @@ G_PART_ALIAS_FREEBSD_VINUM, /* A Vinum partition entry. */ G_PART_ALIAS_FREEBSD_ZFS, /* A ZFS file system entry. */ G_PART_ALIAS_MBR, /* A MBR (extended) partition entry. */ + G_PART_ALIAS_WIN95_FAT32, /* Win95 FAT32 entry */ G_PART_ALIAS_LINUX_DATA, /* A Linux data partition entry. */ G_PART_ALIAS_LINUX_LVM, /* A Linux LVM partition entry. */ G_PART_ALIAS_LINUX_RAID, /* A Linux RAID partition entry. */ Index: sys/geom/part/g_part.c =================================================================== --- sys/geom/part/g_part.c (révision 208894) +++ sys/geom/part/g_part.c (copie de travail) @@ -83,6 +83,7 @@ { "freebsd-ufs", G_PART_ALIAS_FREEBSD_UFS }, { "freebsd-vinum", G_PART_ALIAS_FREEBSD_VINUM }, { "freebsd-zfs", G_PART_ALIAS_FREEBSD_ZFS }, + { "win95-fat32", G_PART_ALIAS_WIN95_FAT32 }, { "linux-data", G_PART_ALIAS_LINUX_DATA }, { "linux-lvm", G_PART_ALIAS_LINUX_LVM }, { "linux-raid", G_PART_ALIAS_LINUX_RAID }, Index: sys/geom/part/g_part_mbr.c =================================================================== --- sys/geom/part/g_part_mbr.c (révision 208894) +++ sys/geom/part/g_part_mbr.c (copie de travail) @@ -124,6 +124,30 @@ *dp_typ = DOSPTYP_386BSD; return (0); } + + alias = g_part_alias_name(G_PART_ALIAS_WIN95_FAT32); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_WIN95_FAT32; + return (0); + } + + alias = g_part_alias_name(G_PART_ALIAS_LINUX_DATA); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_LINUX; + return (0); + } + + alias = g_part_alias_name(G_PART_ALIAS_LINUX_SWAP); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_LINSWP; + return (0); + } + + alias = g_part_alias_name(G_PART_ALIAS_LINUX_LVM); + if (!strcasecmp(type, alias)) { + *dp_typ = DOSPTYP_LINLVM; + return (0); + } return (EINVAL); } @@ -483,6 +507,19 @@ type = entry->ent.dp_typ; if (type == DOSPTYP_386BSD) return (g_part_alias_name(G_PART_ALIAS_FREEBSD)); + + if (type == DOSPTYP_WIN95_FAT32) + return (g_part_alias_name(G_PART_ALIAS_WIN95_FAT32)); + + if (type == DOSPTYP_LINUX) + return (g_part_alias_name(G_PART_ALIAS_LINUX_DATA)); + + if (type == DOSPTYP_LINSWP) + return (g_part_alias_name(G_PART_ALIAS_LINUX_SWAP)); + + if (type == DOSPTYP_LINLVM) + return (g_part_alias_name(G_PART_ALIAS_LINUX_LVM)); + snprintf(buf, bufsz, "!%d", type); return (buf); } Index: sys/sys/diskmbr.h =================================================================== --- sys/sys/diskmbr.h (révision 208894) +++ sys/sys/diskmbr.h (copie de travail) @@ -44,6 +44,8 @@ #define DOSMAGIC 0xAA55 #define DOSPTYP_386BSD 0xa5 /* 386BSD partition type */ +#define DOSPTYP_WIN95_FAT32 0x0b /* Win95 FAT32 */ +#define DOSPTYP_LINLVM 0x8e /* Linux LVM partition */ #define DOSPTYP_LINSWP 0x82 /* Linux swap partition */ #define DOSPTYP_LINUX 0x83 /* Linux partition */ #define DOSPTYP_PMBR 0xee /* GPT Protective MBR */ --- gpart-2.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cf167>