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