From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1cdhPK-0000e7-Gn for mharc-grub-devel@gnu.org; Tue, 14 Feb 2017 13:00:54 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cdhPH-0000dx-Pa for grub-devel@gnu.org; Tue, 14 Feb 2017 13:00:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdhPC-0005SW-Lt for grub-devel@gnu.org; Tue, 14 Feb 2017 13:00:51 -0500 Received: from mx0b-00272701.pphosted.com ([208.86.201.61]:38256) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdhPC-0005RA-Al for grub-devel@gnu.org; Tue, 14 Feb 2017 13:00:46 -0500 Received: from pps.filterd (m0107986.ppops.net [127.0.0.1]) by mx0b-00272701.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v1EHq10W006087 for ; Tue, 14 Feb 2017 12:00:44 -0600 Received: from nam03-dm3-obe.outbound.protection.outlook.com (mail-dm3nam03lp0022.outbound.protection.outlook.com [207.46.163.22]) by mx0b-00272701.pphosted.com with ESMTP id 28knkd3fc0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Tue, 14 Feb 2017 12:00:44 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sooners.onmicrosoft.com; s=selector1-ou-edu; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yWtSUhZYhyrg0z9Q18EQYooBIS7ouE9Mc2XZus2YNPY=; b=LwuedY0zWBaYMcz0g5qZdBKSRo0fXoEVKJPMXUzlisTodRsWoCQnka+/b1nR1Cca1tuigGKvUiM8KFtpAL0R+kL+fYIFFnMfyD8/WfZpUTMKrh6cjp0PXj3ZIuS5uwaiAHaxfm1bKlK7N2rVhY3YdujU3VlXWo//8cy0o/SVrgg= Received: from localhost.localdomain (68.97.3.132) by BN6PR03MB2689.namprd03.prod.outlook.com (10.173.144.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Tue, 14 Feb 2017 18:00:42 +0000 From: Steve Kenton To: CC: Steve Kenton Subject: [PATCH 1/1] add --partuuid to probe Date: Tue, 14 Feb 2017 18:00:35 +0000 Message-ID: <20170214180035.3461-1-skenton@ou.edu> X-Mailer: git-send-email 2.9.0.137.gcf4c2cf MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [68.97.3.132] X-ClientProxiedBy: DM5PR12CA0051.namprd12.prod.outlook.com (10.175.83.141) To BN6PR03MB2689.namprd03.prod.outlook.com (10.173.144.8) X-MS-Office365-Filtering-Correlation-Id: 8667ef14-3695-4ff4-c261-08d45503648f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR03MB2689; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2689; 3:MoFAyxNem3xzUqO91woe5dexoBQe4fv/irVS7iNLTKr6Yvzfxiv2iDXVGTq01ZuY/sH/LpQmzSefLC9nkJ5bIIWoIzvs1VZee8Du7AwSYwN5P5OyblDlBod/0Su1Dh+NbDe1knEktl+IFfpjX4P0PsaBfHh1PQL0qKTpOzpsWpaPUZ8SSznPv98OYJPtneBB4l606w/odw0biNnqwEMLxLOfmw1wHSGrkyKecIqZYXbp5acr06kPPARW7pah16/jSF5tUCrGdwRR+4oFV8soBQ==; 25:STYwobhD56/DT0r2U8FRQt/HTwkXqPO0mmdI8BCz4zjXGMpyT2M0n5urv5399QsMNQGQj+izIvpGk3TY72fjzra7X5jdwLctFlM74sYmXSmtmTkmOCMDwltDg7ZLGwX8I53Uwi1pqAGvpw1hk1g+1lS8TaMqGn7SW37mSyooPTTQaPYt8AnrZWe+Iz5sO4cBjsn1mYat1ehn/7SUfVhMIxfXd26H0q8bx64PV3UaDi67Cq7aOgv05jOlJuHq64XN4g/9sXLT89M//EsXXMxS7/UDeyA2k/SlGrF5hhSSXdxQAanvndCWsvLfixe9aWodSU7nqlOqZ04Lv0WrhbW2kjyf7z2NW1RxSTtwFr43fMU6vQtxEk0ak//ALH2+n2sv/eZQ9EtWGT9imU6xk+8rl0lNd+mNl36Jg95z2FiBnTSw3IH56F7d/ldrdaoQqmk3oolCaxc0YNffgDmZvI7d2Q== X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2689; 31:nRPR2ie17av/MzdAOEFOFq08FbZkNibxTnWbH5kRBXy8FMNcoSSbgo55uW+X99N8Sv+tPjU0WG4o2C0NG4TGCPukly7bR6c5nGpMsfn6ClsSqFbgIYlZAvFuQTmow4DROeWPFda4GKCYjmYQFly20m+BKRWHxEDLBFh8Eu3o529ZvWZk+rBRx8snh0rEJHnqsbG7QRhnY36+amSvY7EZaGRINjBplKs7uxqhibgCiF4=; 20:GqMPWHz/Bf8q6Kd1ncCWEV9/Q75fFDDQW2lRJzDMlGNNlOVEDGXSx+qru7pxF/NpK1OdRqhfBW5CTodY7fzTELNoe0y2Z91PWF4LaOjZX1y4wA41sa2cYp1nPriEL2hI35IIGGlwophPSj4hAdfh6AbuMJUMwe/X7LhMpOTmziZszfawASobl3TWr6e4R8qymPYfbgwFcdCA1wY4ooNI7TROc85vvzbSEKFM7swdfxxR4GmBYLtZBnHZEzlEHh1LXwtwzBE2vYmCFLGLsjG+B+Ln3on6oBojkCvZATgFb0YERDyNEQrgLXPj9sYeuzp6Pm8EeYod88tu5F/P7HgLbYLd4AEBpN4jzqqDeZbDCQwGigDGvZ4/Zy9WQMahCnTsL08mM78sJNw0HTXsGobGXzcwPWgTTgAYIxlCEDSOU8TVicq9G4+cxYs0S/3zBx7j9DP6EXG/NMHcPTvaKkvcgqPFrAr/Elw6UKrcUw/ewGAKTfl0RH6BrfT0t4BRJAbv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(179259710895377); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123560025)(20161123558025)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:BN6PR03MB2689; BCL:0; PCL:0; RULEID:; SRVR:BN6PR03MB2689; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2689; 4:5Ac2BqfEVv0n+r7Hln4dufDxFaYb5kGlAxnpsdnjUU25EVkA+3HGCqDFtEyymjI7xo/eZFcmd82+clePJoBiUD7CrWII1L4Q8XmW8xp4ht25iqQoOeGH6EVbEFdBIqpjNCKmwaFjYmBKPoFTyguKq5fTiN6UIdA3OPGwVCX6g2zCURUyw5lMz7BTny59yCjDkJpnH7gLf5LnbbrWi6TFyh5kWT0DioiHbc1U2iOkxaMF4AYlGZbwgRPfhnuywmSPJr6dVKQufbNMBT0iZieRFOxC3gdu3rcH0mBwYFsjn3P4kNj3PRl7/szyH969KttvcoBr4tByCax80tZkJGK1uS1lY328FWHtNS6NO0I/UCc+X644K18tr2IABf/P77llUbLAy2mzQ/XFy0TrdtyEi7jDgiDGyV+CefROUrTogmfDxcnZJ/zDnOzxYUthPUSRbXKo+P18DIe+cQnRLOx+4/V57h++JkWLFxTYRmgQNFHwU2/SdGPDE5bIXH+ugdiGa4XrcxE6vUKt7WhM6EUC38u2vtpdhVsp+LrahlqU+OeZLoYwM+lHhoMBmRUxfDE74MWBrMUFhZVlT7HEmMClJy42VSkN7Wpi5q2f442kxl1SMXMGpo60DO3C9p1LactpygcM1Fo5sc+X4Ukrtg99kQ== X-Forefront-PRVS: 0218A015FA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(199003)(189002)(81156014)(81166006)(66066001)(106356001)(105586002)(5660300001)(6666003)(6916009)(38730400002)(97736004)(50226002)(25786008)(5003940100001)(189998001)(6512007)(36756003)(7736002)(450100001)(33646002)(8676002)(305945005)(6486002)(101416001)(2906002)(4326007)(88552002)(48376002)(110136004)(50466002)(6506006)(6116002)(47776003)(1076002)(3846002)(53936002)(75432002)(92566002)(42186005)(68736007)(2351001)(50986999)(86362001)(81003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR03MB2689; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ou.edu does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2689; 23:mRQmawMva/ZOtIgJAavx5wxX4DZiJU3i5vjOkSB6I?= =?us-ascii?Q?l9VakZsIsm38ygYO9M3onwQURpCQprZDWfN1PUHAya17HcKVsAnO3bgLcmnG?= =?us-ascii?Q?zqIZXB6aXgzTJ20gV3dUz1YHMBJIW2dMHoE/ZXOqWDjO+o/WrglsCcHyp58z?= =?us-ascii?Q?h5uog6GbHFbAMn3KomRlDEn4JRp3h8D4Vd8cy7KS0tbw/aI1+K2vwG0E1nYg?= =?us-ascii?Q?6RrseZZxtfQ7Ny5k9Xnm0qk2VwkbM04WQUv5CHr63cRC7phYigsj4sQ5zOEe?= =?us-ascii?Q?OJ9C8SqVZ8X7ap1AlbUPlDxzjRfiQYSZQFtjFRJcJSpZFaMb1BF9J6HEEVi1?= =?us-ascii?Q?fUFeVFfGoRHe5nzG4+K3lVw2kkX8DT0m4xmha5ARYv6S+RmKZ7zma0iFGFRq?= =?us-ascii?Q?tCLPsbvUT57tWi4eknGdvI7kVt2aXgT9MA2mhXvOSxtYk5nt6aqBJqb4rn9f?= =?us-ascii?Q?roo5fREW/z5c5uXBpFkIjK8LQDG8QbtjpALn9uiKxICwUBBv69daM7w9U2sy?= =?us-ascii?Q?vCTJ7NGD8HEy8jSvOYxr47GxEN+K16m2AP/4b7GRroO1414zcrn/fWOon9gJ?= =?us-ascii?Q?QXKF2hhU5OS41ca9t6NN7OlnjaJ34Nm8H56aqoWOdp9hL3EogRRx0HzyP1Mx?= =?us-ascii?Q?EJtuQUcQxH8RH48aqQfTxIFAl85A/LryJ0OkUknOHkmrOt5TbVYPDisEJcPO?= =?us-ascii?Q?8v+Wb9FSS+lX7GEdy40yNX4a+hOQWMw4aEzWQzsVR+QaoYL7MeF8EwlJBPVV?= =?us-ascii?Q?Kdj4i4XK/G6K+y8EN4i2SUU4ZsFsjwzoeeHjIwFtJ2H+Bt9WDH6hMjRZK5pL?= =?us-ascii?Q?fXCt/f/WFgCIOGuZwe+5FCAkQL1ncbaQmhPAUpDmRu6WloevoKLmrCKg2X/0?= =?us-ascii?Q?Cg/ShQnfmGfQ/EEsiTZlrEznmTz85/YiRDdn/ZuisGJmlzDcoR7QLMbCTn11?= =?us-ascii?Q?3KnMXsmKcEqascqxtf76wfTUasWnHs5ozHn8x2nTqVAM9ey44gK2awrvJDKq?= =?us-ascii?Q?0Tli1fp/u6N9SdINwq2m6u6KtAtH478928HnkuYU8zHq0kLlJzHOhyCOZU0o?= =?us-ascii?Q?AkC7QzN2Jf5Gl2pye+BzX4My0m3GJqg/Rmg1iCaU0fAZmDDwMMvAJLZb+2Az?= =?us-ascii?Q?mW1rDzLUBaY36yCeug8BIP94pfGRJxiwnqZX/OJE8L+HDpGYEh925xM9MYi/?= =?us-ascii?Q?gL4vYa78jflzFI=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2689; 6:LpdH9HxcB2YRqUMfMW6V4sM5xHZBVTESsuIAfb3IV5Yxel0qaNcVETRiLN0vQNh8lsuS5yr4DNp41B3b7t1MeYOGLefQk3RGSkglSjNm+vZfxe9L6/dnTx6Syz9reW+Sj3Q5QOV9KZai6K9kd6voxHlJr4ozvYEaLl8I1qkfTRJht7Noz8Htdul8S9ZCK2eVzI7M9tko6246ZbleweJE8jugSBTWEflscTTXTS+lr9NY9BpjiLfz7qeXz7U0okBU3SSGViy3vd6lfb6Pkq9R7pX181dp/fdlM/2qB5e0/82TO+87vVJ5yY+zKhQ1Y+IzztJnAax+Hb0z8Cg8VA3H8qkMOwvK70us6Dg8opBVIGCdJIMpnhpRaCXT9j0z+7Sog27mCq4rOwYHEnYqHQHJNA==; 5:ni2iYf7+7lEDvHk90UhaBm68geoHSwFYvo3vILSuA/kE8R/X9x7c2w/ygGVD/1ohRy76DUWkz4iMYaQV0WYoB6uU3XdV8/ssDw1MOUKoNG25bYy1HR3VcdPm73oOWrszPAASzyhC0wJ2SW4r7wE7vHuk+JSIsLZrreb3Hm7R+2I=; 24:/6xv7Qk48TKUtMies7g4moKB3LZxdZa0/DcZgm6BeAq7aLL+LdSvqNGIkqeXZZCcaKUg4pMhBmhXiUbf9mAEIzVB8jz+oh3uY1sfjAiYSEQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2689; 7:BFoGeq3YDvb1kUot1QymJwKnSHDUOAX5yuANloIBx1cAs3iQJnwSMDsSzjTnp49IZ3e1aMLORPszNFT/6hEOTHwtFb2kYdKuJczjgyphGSoGxmCM3PiKbiPc6v3SPfUgEwllDiGRjxoFSHN+0kX1kEH7N8PYZ0i9pdlnw+Uo/ngQGHt+YM+THVpoNUcHA2LDHtjZKryCbonfMnPw5MlQ9TrCs1+Q5NgdCu5R5LpvRcb3peEZio6RfrvmUjr/VD8o9GZCGDyXC1bel4kot54KXghS1D9v4RXPUeeo8YnF3oGg5hvaf5g3q7dZWjP+N6yr58bX/E7vGbTF1FHHDGP+8oonM4hdmbP02PEjSVfPEsykzoW8pydTPXyp47/VqPPwmR32GlZGG3a9XtGZlt6qihYqtoy9hsWTwsMnBdMtBLJsuUzoxFPqVHO+zjJ24OPoeoBXQFCKw9IvmTnWkdbkpRAWFPmEvxBeAg7hbJ92YZQgObwZi6ms0P0im0NZKnStFUNMCDTMJWwix59C92OJ7A==; 20:ViKVHIGJuEa4eRk2m3Lu2YCdtgz7oLWBDfM2BeZNw4Dkb8IQwMEebeBf5XaCktMO5mNyjryyrDUNoSGL4v1k4tcNVPpXkgiPwVDHbebH7MK26BJNgE5ddG+yl+X3eQu8ttL3p7fsqKhPSweYYMcclpgRn8EbG/EcCobBH0XoLeM= X-OriginatorOrg: ou.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2017 18:00:42.3836 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2689 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-02-14_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=3 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1702140171 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 208.86.201.61 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Feb 2017 18:00:53 -0000 Support both EFI and NT Disk Signature for passing to kernel as root=PARTUUID=$val Signed-off-by: Steve Kenton --- It's been six months so I thought I'd resend this so it does not get lost in case I get hit by a meteor or something before the next release grub-core/commands/probe.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/grub-core/commands/probe.c b/grub-core/commands/probe.c index cf2793e..3afc8b8 100644 --- a/grub-core/commands/probe.c +++ b/grub-core/commands/probe.c @@ -45,6 +45,7 @@ static const struct grub_arg_option options[] = {"fs", 'f', 0, N_("Determine filesystem type."), 0, 0}, {"fs-uuid", 'u', 0, N_("Determine filesystem UUID."), 0, 0}, {"label", 'l', 0, N_("Determine filesystem label."), 0, 0}, + {"partuuid", 'g', 0, N_("Determine partition GUID/UUID."), 0, 0}, /* GUID but Linux kernel calls it "PARTUUID" */ {0, 0, 0, 0, 0, 0} }; @@ -154,6 +155,58 @@ grub_cmd_probe (grub_extcmd_context_t ctxt, int argc, char **args) grub_device_close (dev); return GRUB_ERR_NONE; } + if (state[6].set) + { + char *partuuid = NULL; /* NULL to silence a spurious GCC warning */ + grub_uint8_t diskbuf[16]; + if (dev->disk && dev->disk->partition) + { + grub_partition_t p = dev->disk->partition; + if (!grub_strcmp (p->partmap->name, "msdos")) + { + const int diskid_offset = 440; /* location in MBR */ + dev->disk->partition = p->parent; + /* little-endian 4-byte NT disk signature */ + err = grub_disk_read (dev->disk, 0, diskid_offset, 4, diskbuf); + dev->disk->partition = p; + if (err) + return grub_errno; + partuuid = grub_xasprintf ("%02x%02x%02x%02x-%02x", + diskbuf[3], diskbuf[2], diskbuf[1], diskbuf[0], + p->number + 1); /* one based partition number */ + } + else if (!grub_strcmp (p->partmap->name, "gpt")) + { + const int guid_offset = 16; /* location in entry */ + dev->disk->partition = p->parent; + /* little-endian 16-byte EFI partition GUID */ + err = grub_disk_read (dev->disk, p->offset, p->index + guid_offset, 16, diskbuf); + dev->disk->partition = p; + if (err) + return grub_errno; + partuuid = grub_xasprintf ("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + diskbuf[3], diskbuf[2], diskbuf[1], diskbuf[0], + diskbuf[5], diskbuf[4], + diskbuf[7], diskbuf[6], + diskbuf[8], diskbuf[9], + diskbuf[10], diskbuf[11], diskbuf[12], diskbuf[13], diskbuf[14], diskbuf[15]); + } + else + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + N_("partition map %s does not support partition UUIDs"), + dev->disk->partition->partmap->name); + } + else + partuuid = grub_strdup (""); /* a freeable empty string */ + + if (state[0].set) + grub_env_set (state[0].arg, partuuid); + else + grub_printf ("%s", partuuid); + grub_free (partuuid); + grub_device_close (dev); + return GRUB_ERR_NONE; + } grub_device_close (dev); return grub_error (GRUB_ERR_BAD_ARGUMENT, "unrecognised target"); } -- 2.9.0.137.gcf4c2cf