From owner-freebsd-questions@freebsd.org Tue Nov 8 17:41:21 2016 Return-Path: Delivered-To: freebsd-questions@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 36C7CC36EEC for ; Tue, 8 Nov 2016 17:41:21 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from sola.nimnet.asn.au (paqi.nimnet.asn.au [115.70.110.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7EE43D5A for ; Tue, 8 Nov 2016 17:41:19 +0000 (UTC) (envelope-from smithi@nimnet.asn.au) Received: from localhost (localhost [127.0.0.1]) by sola.nimnet.asn.au (8.14.2/8.14.2) with ESMTP id uA8Hf8uK061997; Wed, 9 Nov 2016 04:41:08 +1100 (EST) (envelope-from smithi@nimnet.asn.au) Date: Wed, 9 Nov 2016 04:41:08 +1100 (EST) From: Ian Smith To: Warren Block cc: Manish Jain , freebsd-questions@freebsd.org Subject: Re: How to restore FreeBSD boot manager on GPT disk ? In-Reply-To: Message-ID: <20161109031708.W41537@sola.nimnet.asn.au> References: <20161108231123.T41537@sola.nimnet.asn.au> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Nov 2016 17:41:21 -0000 On Tue, 8 Nov 2016 07:46:00 -0700, Warren Block wrote: > On Tue, 8 Nov 2016, Ian Smith wrote: > > In freebsd-questions Digest, Vol 649, Issue 3, Message: 3 > > On Tue, 8 Nov 2016 10:49:23 +0000 Manish Jain > > wrote: > > > > > One thing I have loved about FreeBSD over the years is the superbly > > > designed Boot Easy boot manager. If any other OS overwrites the MBR, it > > > is straightforward to restore with 'boot0cfg -B /dev/ada0' > > > > > > That command only works on MBR disks though, as far as I know. Is there > > > any equivalent command on a GPT disk ? > > > > Sadly, no. Noone has written a GPT equivalent of boot0cfg; perhaps it's > > too hard, or developers perceive no use for multi-booting; I don't know. > > > > Often people will suggest using the GPL'd GRUB; I suppose that works ok > > with GPT disks these days. You could research rather more complicated > > Boot Environments, about which I know nothing, but I don't think these > > enable a choice between e.g. BSD/s|Linux/s|Window/s systems as boot0cfg > > does. [ Corrections to any misperceptions are welcome! ] > > > > Jack L. offered: > > gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0 > > > > which restores the PMBR and GPT bootblocks to ada0p1, but that's not > > (yet?) able to provide or restore multi-boot options as such. > > > > Are you forced to use GPT, because of UEFI-only motherboards? > > If the machine is booting in BIOS from a GPT disk, it *should* work to put > boot0 on there, replacing the PMBR. I think, anyway, have not tested it. Hmm, I can't see how that might work. From an admitedly quick browse through recent head usr/src/sys/ .. % less boot/i386/boot0/boot0.S boot/i386/pmbr/pmbr.s .. it's one or the other; boot0.S only knows about MBR slices, and pmbr.s starts looking at (the next) LBA 1 for a GPT, or at the last LBA for a backup GPT if not found, thence for bootable GPT partition/s. While boot0cfg will preserve the existing MBR table, that's only 64 bytes of sector 0, the rest being code to select and load the next stage via BIOS. boot0 especially is very tight and tricky asm code. >From my quick scan just now, I don't think the pmbr.s code even looks at its MBR table. I don't have a GPT system; maybe you could show results from (assuming a BIOS-booting) one, of: % boot0cfg -v $disk and I know you'll just hate this :) but for the BIOS view, what says: % fdisk -s $disk cheers, Ian