Re: Booting from gpt on i386/amd64? [PATCH]

From: Alexey Shuvaev <shuvaev_at_physik.uni-wuerzburg.de>
Date: Sat, 20 Sep 2008 04:26:12 +0200
On Sun, Aug 31, 2008 at 12:35:55PM +0200, Alexey Shuvaev wrote:
> On Fri, Aug 29, 2008 at 11:16:07PM +0200, Paul B. Mahol wrote:
> > On 8/29/08, Alexey Shuvaev <shuvaev_at_physik.uni-wuerzburg.de> wrote:
> > > Hello list!
> > >
> > > I have tried to install a system with pure gpt partitioning,
> > > but haven't managed to boot from it.
> > >
> > > Partition table:
> > >
> > > =>       34  976773101  ad6  GPT  (500.1GB)
> > >          34    1571840    1  freebsd-ufs  (804.8MB)
> > >     1571874    8388608    2  freebsd-swap  (4.3GB)
> > >     9960482       1024    3  freebsd-boot  (524.3KB)
> > >     9961506    8388608    4  freebsd-ufs  (4.3GB)
> > >    18350114     524288    5  freebsd-ufs  (268.4MB)
> > >    18874402  134217728    6  freebsd-ufs  (68.7GB)
> > >   153092130  823681005       - free -  (421.7GB)
> > >
> > > All necessary files are already installed (ad6p1 = /, ad6p4 = /var, and
> > > so on). The system is 8.0-CURRENT from 8 August (bootable usb flash).
> > > Computer is Core2Duo E8400 3.0 GHz, 4 Gb RAM, ICH9, 500 GB SATA.
> > > What have been done:
> > >
> > > gpart bootcode -b /path/to/pmbr ad6
> > > [Successful]
> > >
> > > gpart bootcode -p /path/to/gptboot -i 3 ad6
> > > gpart: /dev/ad6p3: Invalid argument
> > >
> > > I have tried to 'newfs /dev/ad6p3' and then mounting it and copying
> > > gptboot into 'boot' directory on ad6p3, but looking at the sources it
> > > seems to be wrong.
> > >
> > > Then I tried to 'dd if=gptboot of=/dev/ad6p3 bs=512',
>                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This command writes gptboot only partially!!!
> I have padded gptboot to nearest sector boundary and dd-ed it to ad6p3.
> After that the system booted successfully.
> As I have expected GENERIC kernel is enough.
> 
> > > but in all cases during the boot the blinking cursor moves 1 line down
> > > and computer freezes here.
> > >
> The remaining question is what is the correct way to put gptboot to
> 'freebsd-boot' partition?
> It seems that this functionality was in gpt(8) but is missing in
> gpart(8). Any work in progress? While I am here should I look at it?
> 
Ok, I have digged the sources a little bit and ended with this simple
patch. Actually, the code is taken from gpt(8) utility.
It adds automatic padding of gptboot bootcode to the nearest sector boundary.

Alexey.

Received on Sat Sep 20 2008 - 00:21:53 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:35 UTC