2026/01/01(木)geom label のメモ
geom ラベルの操作がよくわからないので確認した。
geom part modify や geom パーティション作成の際の create にラベルを指定した場合はラベルがディスクに書き込まれる。glabel や geom label を使った場合はディスクに書き込まれない。OS上のgeomデータとして保持されるので、これは揮発する。という事らしい。
自分の理解では、ラベルの操作は3つのコマンドで実施できる。
- glabel
- geom label
- gpart
- create -l LABEL
- modify -l LABEL
それぞれラベルの付き方や見え方が異なるみたいだ。
- /dev/ 以下での見え方が異なる。
- geom 関連コマンド
GEOMのラベルと GUID Partition のラベルをないまぜにとらえてしまっているのか?
gpart(8) の label の説明がこれ。GUID Partition のメタデータを使ってラベルを付けている。
-l label The label attached to the partition. This option is only valid when used on partitioning schemes that support partition labels.
glabel(8) の説明はこれ。GPT (= GUID Partition) だと思われる。
Support for partition metadata is implemented for:
- GPT labels (directory /dev/gpt/).
- GPT UUIDs (directory /dev/gptid/).
geom label は glabel っぽい。
geom(8) の説明。これっぽい。ラベルを付与するときに create サブコマンドを使うとデバイスには書き込まれない。label サブコマンドで作るとデバイスに書き込まれる。
- create Create temporary label name for the given provider. This is the
- “manual” method. The kernel module geom_label.ko will be loaded if it is not loaded already.
- label Set up a label name for the given provider. This is the
- “automatic” method, where metadata is stored in a provider's last sector. The kernel module geom_label.ko will be loaded if it is not loaded already.
動かしてみる
ada6p1 にラベルを付けてみる。初期状態。gptid だけ付与されている。
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
glabel create で付与してみる。 geom ではラベルが付くが、gpt パーティションには書き込まれないはず。
%sudo glabel create labelc ada6p1
glabel list や geom label list だとラベルが見える .. code:
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 Geom name: ada6p1 Providers: 1. Name: label/labelc Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
geom part list では label が null になっている。
%geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: (null) length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
glabel label で付与してみる。デバイスに書き込まれず geom ラベルが上書きされた。想定外。
Geom name: ada6p1 Providers: 1. Name: gptid/074bb1ee-375d-11ed-8291-7085c2c786cd Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533088 length: 3000592941056 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 Geom name: ada6p1 Providers: 1. Name: label/labell Mediasize: 3000592940544 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 secoffset: 0 offset: 0 seclength: 5860533087 length: 3000592940544 index: 0 Consumers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
%geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: (null) length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
gpart modify, geom part modify を使うとパーティションに書き込まれる。 .. code:
%sudo gpart modify -i 1 -l "on-partition" ada6 ada6p1 modified %geom part list ada6 Geom name: ada6 modified: false state: OK fwheads: 16 fwsectors: 63 last: 5860533127 first: 40 entries: 128 scheme: GPT Providers: 1. Name: ada6p1 Mediasize: 3000592941056 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 efimedia: HD(1,GPT,074bb1ee-375d-11ed-8291-7085c2c786cd,0x28,0x15d50a360) rawuuid: 074bb1ee-375d-11ed-8291-7085c2c786cd rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b label: on-partition length: 3000592941056 offset: 20480 type: freebsd-zfs index: 1 end: 5860533127 start: 40 Consumers: 1. Name: ada6 Mediasize: 3000592982016 (2.7T) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0
man を読んで把握した内容とは食い違うけど、
- glabel コマンドではパーティションに書き込まない
- gpart modify, create や geom part modify, create では書き込める
という事みたい。zpool の指定にデバイス名ではなくラベルを使いたくて確認していたけど、label だと揮発してしまうので modify を使って付与したラベルを使うのが安全そう。