Re: FreeBSD 10.0-RC3 Now Available

From: Scot Hetzel <swhetzel_at_gmail.com>
Date: Fri, 27 Dec 2013 11:15:09 -0600
On Fri, Dec 27, 2013 at 10:08 AM, Warren Block <wblock_at_wonkity.com> wrote:
> On Fri, 27 Dec 2013, Mathieu Arnold wrote:
>
>> +--On 27 décembre 2013 10:28:07 -0500 Thomas Hoffmann <trh411_at_gmail.com>
>> wrote:
>> | All the examples I've seen for updating bootcode assume GPT. If one has
>> | MBR (as I do) and assuming the following basic scheme:
>> |
>> | gpart show ada0
>> | =>       63  976773105  ada0  MBR  (466G)
>> |          63  976773105     1  freebsd  [active]  (466G)
>> |
>> | gpart show ada0s1
>> | =>        0  976773105  ada0s1  BSD  (466G)
>> |           0  943218736       1  freebsd-zfs  (450G)
>> |   943218736   33554369       2  freebsd-swap  (16G)
>> |
>> | would the equivalent bootcode statement be:
>> |
>> | gpart bootcode -b /boot/pmbr -p /boot/zfsboot ada0s1
>
>
> No, the PMBR is for GPT partitioning only.
>
>
>> | where the boot code is /boot/zfsboot (rather than /boot/gptzfsboot) and
>> | ada0s1 is the slice on which FreeBSD is installed?
>>
>> Hum, no, if you're using MBR and not GPT, you can't use gpart,
>
>
> Why not?  gpart is not GPT-specific.  It handles MBR and BSDlabel bootcode
> correctly.
>
>
>> you have to
>> do something aweful like this :
>> # dd if=/boot/zfsboot of=/dev/ada0 count=1
>
>
> That will overwrite the MBR partition table.
>
>
>> # sysctl kern.geom.debugflags=0x10
>> # dd if=/boot/zfsboot of=/dev/ada0 skip=1 seek=1024
>
>
> That seems dangerous.  I have not tried with zfsboot, but this should be
> close:
>
>   # gpart bootcode -b /boot/zfsboot ada0
>   # gpart bootcode -b /boot/zfsboot ada0s1
>
> Untested!  The first one may need to use /boot/mbr.  A better way to do
> this, provided the system does not have a broken BIOS, would be to backup,
> repartition with GPT, and restore, avoiding the complication of multiple
> partitioning schemes.
>

The correct way to install/update ZFS Boot code on an MBR disk is:

Install boot Manager (required on first install)

# gpart bootcode -b /boot/boot0 ad0

Note: /boot/mbr could also be used if you are not multibooting

Install ZFS boot1 stage

# sysctl kern.geom.debugflags=0x10
# dd if=/boot/zfsboot of=/dev/ada0s1 count=1

or

# dd if=/boot/zfsboot of=/tmp/zfsboot1 count=1
# gpart bootcode -b /tmp/zfsboot1 /dev/ada0s1

Install ZFS boot2 stage
# dd if=/boot/zfsboot of=/dev/ada0s1a skip=1 seek=1024

-- 
DISCLAIMER:

No electrons were maimed while sending this message. Only slightly bruised.
Received on Fri Dec 27 2013 - 16:15:10 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:45 UTC