On 07/11/18 21:58, MLH wrote:
Unfortunately, gpt-on-raid1-on-gpt is not bootable, as opposed to
disklabel-on-RAID1-on-disklabel (which has size limitations).
The mbr boot code is able to account for disklabel-on-raid1, but not for
gpt-on-raid1, see e.g. install/44982.
>
I'm not quite sure I am understanding your nomenclature here.
I don't blame you.
Think of it as an onion.
You start by putting gpts / disklabels on two empty disks, then create a
partition designated as type raid on each. You configure the raid1,
which sets up its own header at the beginning of the partition, and then
create another ("inner") gpt / disklabel on the resulting raid device.
Now, the MBR boot sector code knows how to parse the outer gpt /
disklabel for a partition marked 'bootable', then load and execute its
first block (the PBR). The PBR code knows how to recognize a BSD
disklabel raid partition and skip the fixed-size raid header[1], which
requires a disklabel right at the start of the raid.
But as it is, the PBR code does not know how to find the inner gpt in
presence of a raid header. ISTR this was because of variable size of
on-disk structures, but my memory is hazy.
Cheerio,
hauke
[1] see comment at the beginning of
<http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/i386/stand/bootxx/pbr.S?rev=1.22&content-type=text/x-cvsweb-markup>,
and
<http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/i386/stand/bootxx/boot1.c?rev=1.20&content-type=text/x-cvsweb-markup>.
--
The ASCII Ribbon Campaign Hauke Fath
() No HTML/RTF in email Institut für Nachrichtentechnik
/\ No Word docs in email TU Darmstadt
Respect for open standards Ruf +49-6151-16-21344