web-dev-qa-db-ja.com

ディスク(パーティションではない)のLABELを設定するにはどうすればよいですか?

探し回っていますが、明確な答えが見つかりません。または、システムが別の方法で表示したときに、答えが「いいえ」であることがわかりました。

Arch Linuxを実行していて、新しいHDDをzfsプールに接続しているときに、メインのSSDシステムドライブにLABEL属性/プロパティがあることに気付きました(用語がわからない)。注:私はドライブについて話しているのであって、そのドライブ内のパーティションについて話しているのではありません。

他のディスクにそのようなラベルを付けてもらいたいのですが、それを行う方法がわかりません。

これを達成する方法を誰かが知っていますか?

以下は、私が探しているものを説明するために、lsblkのクリーンアップされた出力です。私のシステムでは、出力に見られるように<#LABEL1#>が設定されていますが、<#WANTTHIS#>を設定/変更したいと思います。

NAME      SIZE TYPE LABEL        PTTYPE PTUUID                               MODEL                 SUBSYSTEMS
loop0   ###.#M loop                                                                                block
loop1   ###.#M loop                                                                                block
loop2   ###.#M loop                                                                                block
loop3   ###.#M loop                                                                                block
sda     ###.#G disk <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SomeModelString1      block:scsi:pci
├─sda1  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda2  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda3  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda4  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda5  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda6  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda7  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda8  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda9  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda10 ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
└─sda11 ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
.
.
.
sdg     ###.#G disk              dos    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx SomeModelString2      block:scsi:pci
└─sdg1  ###.#G part <#LABEL2#>   dos    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx                       block:scsi:pci
sdh     ###.#T disk <#WANTTHIS#> gpt    bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb SomeModelString3      block:scsi:usb:pci
sdi     ###.#T disk <#WANTTHIS#> gpt    cccccccc-cccc-cccc-cccc-cccccccccccc SomeModelString3      block:scsi:usb:pci
├─sdi1  ###.#T part some-part    gpt    cccccccc-cccc-cccc-cccc-cccccccccccc                       block:scsi:usb:pci
└─sdi9  ###.#M part              gpt    cccccccc-cccc-cccc-cccc-cccccccccccc                       block:scsi:usb:pci
.
.
.

編集:答えを受け入れた後

Per @ frostschutz 上記の例では、私の場合のFSTYPEzfs_member、そしてラベルは実際にはzfs-poolの名前でした(これは私のシステム名とまったく同じ名前だったので、過去に手動で名前を付けたかもしれないと思いました-私はしませんでした)。

物理ディスクに関連付けられている1つの関連する一意の識別子はWWNであり、GPTパーティションテーブルに関連付けられているのはPTUUIDです。

したがって、私が以前に見つけた他のすべての答えと同様に、答えは「いいえ」です。
ディスクデバイスに名前を割り当てる方法はありません。

これから、関連するIDを一覧表示するために選択するlsblkコマンドオプションは次のようになります。

$ lsblk --output=NAME,SIZE,RO,TYPE,WWN,PTTYPE,PTUUID,MODEL,SUBSYSTEMS,LABEL,PARTLABEL,PARTUUID,MOUNTPOINT
3
Lockszmith

それはデバイスの内容によって異なります。より具体的には、ラベルを提供する既知のスーパーブロックがあるかどうかによって異なります。

これは、ファイルシステムスーパーブロック(ext4、xfs、fat、iso9660など)、スワップデバイス、レイドスーパーブロック(mdadm)、または暗号化コンテナー(LUKS2)の場合があります。

したがって、ファイルシステムをmkfsするときにラベルを指定するか、後でファイルシステム固有のツール(ext4の場合はtune2fs -L)、mdadmの場合は--name配列の、LUKS2の場合はcryptsetup --labelオプション。

私の知る限り、ラベルをファイルシステムや他のスーパーブロックプロバイダーに添付せずに任意に設定する方法はありません。最も近いのは、GPTパーティションテーブルのPARTLABELを使用することです(parted name ...)、パーティションテーブル自体にアタッチされますが、PARTLABELはLABELではありません。ファイルシステムのラベルを上書きしたり置き換えたりすることはありません。

ラベルの一般的な標準はありません。すべて手編みです。たとえば、 til-linuxでのスーパーブロック形式のこの実装 を参照してください。明日新しいファイルシステムを発明した場合、ラベルが付いていても、サポートが追加されるまで表示されません。

lsblk出力で、FSTYPE列を追加すると、表示されているラベルに何が提供されているのかがわかる場合があります。次に、別のデバイスに同じ方法でラベルを付けたい場合は、そのデバイスにも同じファイルシステム(またはレイドスーパーブロック、またはそれが何であれ...)を配置する必要があります。そうすることで、以前にそこにあったものはすべて自然に削除されます(最初に新しいデバイスを作成しない限り、1つのデバイスに2つのファイルシステムを置くことはできません)。

3
frostschutz