Date: Sat, 17 Dec 2016 10:29:58 +0100 From: =?UTF-8?Q?Fernando_Herrero_Carr=C3=B3n?= <elferdo@gmail.com> To: Warner Losh <imp@bsdimp.com> Cc: Dimitry Andric <dim@freebsd.org>, Antony Uspensky <uspensky@x-art.ru>, Eric van Gyzen <vangyzen@freebsd.org>, freebsd-stable <freebsd-stable@freebsd.org>, Slawa Olhovchenkov <slw@zxy.spb.ru> Subject: Re: Upgrading boot from GPT(BIOS) to GPT(UEFI) Message-ID: <CAMwkeZw7zZ8itcWhLGvGc9XBfKAnSQJ=CXw=n7iJ0OpX-eN2Gg@mail.gmail.com> In-Reply-To: <CAMwkeZx8O9Am_VHvFeFZSSRMT5QHrHs4PVDQznKbd_WH3LuPkQ@mail.gmail.com> References: <CAMwkeZznenmN1RkUaKZ7i12F0FA185ZH%2BcHPXUp56S8j3SrubQ@mail.gmail.com> <20161216173930.GD90401@zxy.spb.ru> <b9ede396-2a86-8319-2f40-fe1c40cc6483@FreeBSD.org> <alpine.BSF.2.00.1612162047120.13320@gw-old.x-art.ru> <85F3F813-D821-439B-B700-DCE51C53E035@FreeBSD.org> <CANCZdfpBVN%2BtuYkxE_OM9vfKHyxsMgywkPCZTmNz4O_nigp%2BJA@mail.gmail.com> <CAMwkeZx8O9Am_VHvFeFZSSRMT5QHrHs4PVDQznKbd_WH3LuPkQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
2016-12-17 9:21 GMT+01:00 Fernando Herrero Carr=C3=B3n <elferdo@gmail.com>: > > > 2016-12-16 23:56 GMT+01:00 Warner Losh <imp@bsdimp.com>: > >> On Fri, Dec 16, 2016 at 11:00 AM, Dimitry Andric <dim@freebsd.org> wrote= : >> > On 16 Dec 2016, at 18:53, Antony Uspensky <uspensky@x-art.ru> wrote: >> >> >> >> On Fri, 16 Dec 2016, Eric van Gyzen wrote: >> >>> On 12/16/2016 11:39, Slawa Olhovchenkov wrote: >> >>>> On Fri, Dec 16, 2016 at 06:08:34PM +0100, Fernando Herrero Carr?n >> wrote: >> >>>>> Hi everyone, >> >>>>> >> >>>>> A few months ago I got myself a new box and I have been happily >> running >> >>>>> FreeBSD on it ever since. I noticed that the boot was not as fast >> as I had >> >>>>> expected and I've realized that, while my disk is GPT partitioned, >> the boot >> >>>>> process is still BIOS based: >> >>>>> >> >>>>> % gpart show >> >>>>> =3D> 34 976773101 <976%2077%2031%2001> ada0 GPT (466G) >> >>>>> 34 6 - free - (3.0K) >> >>>>> 40 1024 1 freebsd-boot (512K) >> >>>>> 1064 984 - free - (492K) >> >>>>> 2048 67108864 2 freebsd-swap (32G) >> >>>>> 67110912 909662208 3 freebsd-zfs (434G) >> >>>>> 976773120 <976%2077%2031%2020> 15 - free - (7.5K) >> > ... >> >> I would shrink ada0p1 down to 128K (size of gptzfsboot =3D 88K now) a= nd >> place efi partition (~800K) on free space between new p1 and p2. No need= to >> touch swap partition. >> > >> > Yes, this is almost exactly what I have done on a machine that was >> > originally installed with gptzfsboot on the first partition, which was >> > 512K. Since all the partitions on this SSD were aligned to 1M, I >> > reduced the size of the first partition to 224K, freeing up a hole of >> > exactly 800K for an EFI partition: >> > >> > =3D> 40 976773088 ada0 GPT (466G) >> > 40 2008 - free - (1.0M) >> > 2048 448 1 freebsd-boot (224K) >> > 2496 1600 4 efi (800K) >> > 4096 33554432 2 freebsd-swap (16G) >> > 33558528 943214592 <943%2021%2045%2092> 3 freebsd-zfs (450G) >> > 976773120 <976%2077%2031%2020> 8 - free - (4.0K) >> > >> > Then I wrote the preformatted boot1.efifat image to it, using: gpart >> > bootcode -p /boot/boot1.efifat -i 4 ada0. You can also use dd of >> > course, but I prefer using gpart for these kinds of manipulations. >> > >> > This way, you can choose between booting in old school BIOS mode, or >> > UEFI mode. If the UEFI mode works flawlessly, you can always decide >> > later to dump the freebsd-boot partition, and use only an EFI partitio= n. >> > >> > -Dimitry >> > >> > P.S.: The only thing that triggers my OCD here is that the EFI partiti= on >> > has index 4, but is physically the second. But I can live with that, >> > until I finally delete the freebsd-boot partition. :) >> >> >> You likely want to carve out more like 50MB instead of 800k for UEFI >> partition. 800k is the minimum, but it also precludes many things you >> may need to do with UEFI applications down the line. >> >> Warner >> > > Thanks guys for all the answers, I think I will just nuke freebsd-boot > and create a smallish efi where I can place boot1.efifat as suggested by > Dimitry. If this works, I can always shrink swap if I really need to late= r > on. > > So, it worked! I took a spare USB stick with a bootonly image and changed partitions there first. Once I had it working I modified my hard drive's partitions, installed efifat image with gpart, rebooted, and here I am. Some conclusions: * While getting to FreeBSD's loader seems a bit faster (or maybe that's just confirmation bias), bringing up the system does not seem much faster. * If anything, I have a slightly higher resolution console now. * uefi(8) hints at gpart: /boot/boot1.efifat msdosfs(5) FAT file system image containing boot1.efi fo= r use by bsdinstall(8) and the bootcode argument to gpart(8). maybe a little example would help (gpart bootcode -p /boot/boot1.efifat -i 1 ada0) * Despite gpart(8)'s excellent BOOTSTRAPPING section, no mention is made to booting from an efi partition there. Best, Fernando
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMwkeZw7zZ8itcWhLGvGc9XBfKAnSQJ=CXw=n7iJ0OpX-eN2Gg>