svn commit: r237294 - user/ae/bootcode/sys/boot/i386/pmbr

John Baldwin jhb at freebsd.org
Wed Jun 20 12:26:21 UTC 2012


On Wednesday, June 20, 2012 4:29:25 am Andrey V. Elsukov wrote:
> Author: ae
> Date: Wed Jun 20 08:29:24 2012
> New Revision: 237294
> URL: http://svn.freebsd.org/changeset/base/237294
> 
> Log:
>   In case when we have damaged several first sectors, GEOM_PART_GPT class
>   will not detect GPT even if backup GPT header is ok. To recover we should
>   write PMBR to the LBA 0. But we can't use `gpart bootcode` command until
>   GPT is detected and geom created. We can dd(8) /boot/pmbr image and
>   kernel will be able detect GPT. But our PMBR image contains only empty
>   partition entries and our loader can't detect GPT when it hasn't the
>   partition record with type PMBR.
>   
>   Add one partition record to the PMBR image. It covers all space after
>   the LBA 0. It is better to have one partially correct record, than
>   have nothing.

This latter part is not true. :(

boot1 has a hardcoded partition in it (for use in dangerously dedicated mode).
This has a mixed history.  At one point the table entry it used caused certain
SCSI BIOSes to crash due to a divide by zero (the SCSI BIOS read the MBR to 
try to guess what C/H/S geometry the rest of the system was expecting).  I 
think having a hardcoded entry here can only really result in problems.  I 
would rather you add some sort of 'restore' functionality to gpart that 
allowed it to build a PMBR 'from scratch' with a proper partition entry than 
to resort to this hack.

-- 
John Baldwin


More information about the svn-src-user mailing list