From owner-freebsd-hackers@freebsd.org Fri Dec 30 17:48:51 2016 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AADBAC970EA for ; Fri, 30 Dec 2016 17:48:51 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from butcher-nb.yandex.net (freefall.freebsd.org [IPv6:2610:1c1:1:6074::16:84]) by mx1.freebsd.org (Postfix) with ESMTP id B6C5A1062; Fri, 30 Dec 2016 17:48:50 +0000 (UTC) (envelope-from ae@FreeBSD.org) Subject: Re: How to safely remove rest of GTP? To: Ian Lepore , Slawa Olhovchenkov References: <20161230124407.GN37118@zxy.spb.ru> <20161230164652.GO37118@zxy.spb.ru> <22d5dece-f14b-3bef-b3dd-8bb6226e0d28@FreeBSD.org> <1483119430.16152.83.camel@freebsd.org> Cc: freebsd-hackers@freebsd.org From: "Andrey V. Elsukov" Message-ID: <071295b5-f7d8-d09b-13f9-416524a1f654@FreeBSD.org> Date: Fri, 30 Dec 2016 20:48:13 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <1483119430.16152.83.camel@freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Dec 2016 17:48:51 -0000 On 30.12.2016 20:37, Ian Lepore wrote: >> In case when you have not valid primary header, `gpart destroy` will >> not >> touch first two sectors. In you case you can wipe only last sector, >> like >> Ian suggested, but use 'gpart destroy -F da6' instead of dd. >> > > If you gpart destroy -F da6 won't that also clear the valid MBR at the > start of the disk? I think Slawa needs to preserve that. As I said, it will not touch first two sectors, where PMBR and primary GPT headers are. > I think it would be really useful if gpart recover could help with this > somehow. There is a valid mbr, and a partially-valid gpt (only the > backup is valid). So gpart recover should provide a way to recover the > gpt by refreshing the primary gpt and the pbmr, `gpart recover` will restore GPT using information from backup header and table and construct new PMBR. After that you need to write bootcode if needed. > or recover the mbr by > wiping the backup gpt. This is what the patch does. You need to use `gpart destroy -F` to CORRUPTED GPT, this command will wipe last sector where GPT backup header is located. Since GPT is in CORRUPT state, the primary header will not be overwrited by this command. When both primary and backup headers and tables are valid, `gpart destroy` overwites PMBR, primary and backup headers. > I'm not sure what the syntax would be to > specify that, though. > > This didn't used to be a problem until the changes that made the backup > gpt get used automatically without any sysadmin intervention. For some users the problem was that they could not find their GPT, that declares its reliability. -- WBR, Andrey V. Elsukov