Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Apr 2017 11:12:14 +0300
From:      Toomas Soome <tsoome@me.com>
To:        Shawn Webb <shawn.webb@hardenedbsd.org>
Cc:        Toomas Soome <tsoome@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r316585 - in head/sys/boot: efi/boot1 efi/loader i386/common i386/loader i386/zfsboot zfs
Message-ID:  <32C6ACC7-C1A5-4797-81E1-7F630FB94D14@me.com>
In-Reply-To: <20170408221653.qtqdvgcosguvugtt@mutt-hbsd>
References:  <201704061817.v36IHT8i088712@repo.freebsd.org> <20170408221653.qtqdvgcosguvugtt@mutt-hbsd>

next in thread | previous in thread | raw e-mail | index | archive | help

> On 9. apr 2017, at 1:16, Shawn Webb <shawn.webb@hardenedbsd.org> =
wrote:
>=20
> On Thu, Apr 06, 2017 at 06:17:29PM +0000, Toomas Soome wrote:
>> Author: tsoome
>> Date: Thu Apr  6 18:17:29 2017
>> New Revision: 316585
>> URL: https://svnweb.freebsd.org/changeset/base/316585
>>=20
>> Log:
>>  loader: zfs reader should check all labels
>>=20
>>  The current zfs reader is only checking first label from each =
device, however,
>>  we do have 4 labels on device and we should check all 4 to be =
protected
>>  against disk failures and incomplete label updates.
>>=20
>>  The difficulty is about the fact that 2 label copies are in front of =
the
>>  pool data, and 2 are at the end, which means, we have to know the =
size of
>>  the pool data area.
>>=20
>>  Since we have now the mechanism from common/disk.c to use the =
partition
>>  information, it does help us in this task; however, there are still =
some
>>  corner cases.
>>=20
>>  Namely, if the pool is created without partition, directly on the =
disk,
>>  and firmware will give us the wrong size for the disk, we only can =
check
>>  the first two label copies.
>>=20
>>  Reviewed by:	allanjude
>>  Differential Revision:	https://reviews.freebsd.org/D10203
>=20
> This breaks bhyve userboot:
>=20
> # sh /usr/share/examples/bhyve/vmrun.sh -c 8 -m 16g -t tap4 -C =
/dev/nmdm-laptop-dev-03-A -d =
/dev/zvol/enctank/bhyve/laptop-dev-03/disk-01 laptop-dev-03
> /boot/userboot.so: Undefined symbol "ldi_get_size"
>=20
> Thanks,
>=20
> --=20
> Shawn Webb
> Cofounder and Security Engineer
> HardenedBSD
>=20
> GPG Key ID:          0x6A84658F52456EEE
> GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89  3D9E 6A84 658F 5245 =
6EEE


Yep, the fix is posted as part of https://reviews.freebsd.org/D10302 =
<https://reviews.freebsd.org/D10302>; - I=E2=80=99m currently running the =
build to double check and I think I=E2=80=99ll make the userboot commit  =
as soon as it is verified. Sorry for the mess.

rgds,
toomas




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?32C6ACC7-C1A5-4797-81E1-7F630FB94D14>