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 を使って付与したラベルを使うのが安全そう。