From owner-freebsd-bugs@FreeBSD.ORG Mon Jun 7 18:20:05 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5F21D106566C for ; Mon, 7 Jun 2010 18:20:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (unknown [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1D46B8FC22 for ; Mon, 7 Jun 2010 18:20:05 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o57IK4K6083661 for ; Mon, 7 Jun 2010 18:20:04 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o57IK4Xi083660; Mon, 7 Jun 2010 18:20:04 GMT (envelope-from gnats) Resent-Date: Mon, 7 Jun 2010 18:20:04 GMT Resent-Message-Id: <201006071820.o57IK4Xi083660@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Bapt Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E611A106567B for ; Mon, 7 Jun 2010 18:13:09 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-wy0-f182.google.com (mail-wy0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 784078FC1B for ; Mon, 7 Jun 2010 18:13:09 +0000 (UTC) Received: by wyf28 with SMTP id 28so3677812wyf.13 for ; Mon, 07 Jun 2010 11:13:08 -0700 (PDT) Received: by 10.227.68.144 with SMTP id v16mr14188616wbi.156.1275934384172; Mon, 07 Jun 2010 11:13:04 -0700 (PDT) Received: from azathoth.lan ([82.245.249.89]) by mx.google.com with ESMTPS id n31sm39600322wba.15.2010.06.07.11.13.00 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 07 Jun 2010 11:13:01 -0700 (PDT) Received: from root (uid 0) (envelope-from baptiste.daroussin@gmail.com) id cf167 by azathoth.lan (DragonFly Mail Agent) Mon, 07 Jun 2010 20:12:55 +0200 Message-Id: Date: Mon, 07 Jun 2010 20:12:55 +0200 From: Bapt To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: kern/147664: [patch] Add the ability to create linux and fat32 partitions gpart X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Bapt List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2010 18:20:05 -0000 >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: