Re: [Gptfdisk-general] misreads NetBSD as FreeBSD
Brought to you by:
srs5694
From: Rod S. <rod...@ro...> - 2023-08-03 15:16:57
|
On 8/3/23 04:31, dch...@gm... wrote: > Lately I also use gdisk, etc. Unlike fdisk, gdisk misreads my NetBSD > partition as a FreeBSD one. There's a lot you haven't stated that's likely relevant. For instance, is the disk currently MBR or GPT? If the latter, was it once MBR, but was converted to GPT; and if so, by what program? Is the fdisk you're using from util-linux or based on libparted? What column(s) of output are you reading in both fdisk and gdisk? Because I don't know the answers to these questions, I can't give you an answer about what's going on; however, I can say this.... On an MBR disk, FreeBSD and NetBSD can use the same partition type code (0xA5), although NetBSD also has its own code (0xA9)[1]; however, on a GPT disk, the two OSes each have their own set of unique GUIDs[2]. That said, the MBR 0xA5 and 0xA9 codes are both most often used for a BSD "disklabel," which holds sub-partitions, similar to an MBR extended partition. Among the GPT type codes, AFAIK only FreeBSD's set includes an explicit "disklabel" partition (516E7CB4-6ECF-11D6-8FF8-00022D09712B); AFAIK, there is no NetBSD equivalent to this in GPT. Because GPT fdisk does an automatic conversion from MBR to GPT, when you read an MBR disk with a NetBSD 0xA5 partition with GPT fdisk, that partition will show up as a FreeBSD partition, since 0xA5 is more strongly associated with FreeBSD than with NetBSD. Also, in GPT fdisk, most a9xx codes get converted to unique NetBSD codes; however, a900 (or 0xA9, when reading an MBR disk) gets converted to 516E7CB4-6ECF-11D6-8FF8-00022D09712B, the FreeBSD disklabel code, since the GPT type code list on Wikipedia[2] doesn't specify a unique NetBSD disklabel type code, and I don't see anything labeled as a "disklabel" code in the relevant NetBSD source code file[3], either. It's possible that what you're seeing is a result of this, either on an MBR disk or a disk converted to GPT from MBR. An fdisk that's based on libparted, by contrast, would read the contents of the partition and present a filesystem type rather than present the type code itself; and util-linux fdisk would present the type code for an MBR partition, rather than try to convert it to GPT, as GPT fdisk does. If the disk was partitioned initially as a GPT disk, then I'd expect that NetBSD's partitions should use native NetBSD type codes, which GPT fdisk presents as a901 through a906. If one of the partitions hold an old-style BSD "disklabel," then AFAIK there's no NetBSD-specific GPT type code for that, so the best choice for the GPT partition type code would be 516E7CB4-6ECF-11D6-8FF8-00022D09712B, which is officially a FreeBSD type code, and is presented as such by both GPT fdisk and util-linux fdisk. (I don't know offhand how a libparted-based fdisk presents such a partition, if it's created in NetBSD.) One more factor: The GPT fdisk output includes the partition name. If the partition is created in gdisk, then gdisk sets this name to a description that's tied to the type code, by default. For instance: Number Start (sector) End (sector) Size Code Name 1 2048 30296063 14.4 GiB A500 FreeBSD disklabel (That's two lines; the second one will likely wrap in this e-mail.) If the type code is changed outside of GPT fdisk, the name may not be updated. For instance, taking the above disk and changing the type code in util-linux's fdisk to fdisk's 79 ("NetBSD FFS") results in it looking like this in GPT fdisk: Number Start (sector) End (sector) Size Code Name 1 2048 30296063 14.4 GiB A902 FreeBSD disklabel Note that the type code has changed from A500 to A902, but the partition's name remains "FreeBSD disklabel," although that's no longer accurate. This is another strong possibility for what you're seeing. If so, the solution is simply to update the partition's name in GPT fdisk to something appropriate. This can be done with the "c" main-menu option in gdisk. Note that util-linux fdisk does not present the partition name in its main summary, although the information is available via the "i" main-menu option. [1] https://www.win.tue.nl/~aeb/partitions/partition_types-1.html [2] https://en.wikipedia.org/wiki/GUID_Partition_Table [3] http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/disklabel_gpt.h?rev=1.15&content-type=text/x-cvsweb-markup&f=h&only_with_tag=MAIN -- Rod Smith rod...@ro... http://www.rodsbooks.com |