Date: Tue, 12 Sep 2023 07:21:10 +0000 From: Emmanuel Dreyfus <m...@netbsd.org> Message-ID: <zqarzvlqu20se...@homeworld.netbsd.org>
| Context: if a RAIDframe set contains a GPT, it does not honour the | bootme atrtribute when loking for the root partition. The current | behavior hardcodes the use of the first partition. Does it, really? I have been using a setup (since NetBSD 6 days) with root in a GPT in a raid array, and for me, if the raid array is raidN (for me, it happens to be raid7 for historical reasons, most of raid0..6 no longer exist) then the raidframe code looked for a partition labelled raidNa (in my case raid7a) to be the root. Those names (the NAME= things in userland) are attached to wedges, and can be located easily, and match what happens when a disklabel is configured to generate wedges (though in that case it would be assuming that the 'a' partition from the disklabel, inside the raid, is the one you'd want to be root - but that matches what regular disklabel booting assumes I think, it has been a long time since I booted that way). If the raidNa hack has vanished sometime in the past decade or so, then perhaps we should just restore it? If it hasn't, just document it (which I think is one thing which was never done, I discovered it by code reading). If there is no GPT partition labelled raidNa in raidN (the raidframe to hold the root) then some fallback is needed, and picking the first partition is as good as anything else - you'd need a fallback if you ended up using the bootme flag (please don't), in case none of the partitions has that set, and again, the first partition seems reasonable. kre ps: it is possible to invent new GPT flags (system dependant ones - which would only be interpreted when the GUID of the partition is generated by a system which understands and defines that flag for the purpose - simply ignoring the unknown flag bit on a partition from any unknown creator).