Arch-Linux

如何設置磁碟(不是分區)的標籤?

  • September 30, 2020

我一直在四處尋找,但找不到明確的答案,或者當我的系統向我顯示其他情況時,我發現答案是“否”。

我正在執行 Arch Linux,在將新 HDD 連接到 ZFS 池時,我注意到我的主 SSD 系統驅動器具有LABEL屬性/屬性(不確定術語是什麼)。

**注意:**我說的是驅動器,而不是該驅動器中的分區。

我真的很想讓我的其他磁碟也有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
.
.
.

編輯:接受答案後

@frostschutz在我上面的例子中,FSTYPE在我的例子中zfs_member,標籤實際上是 zfs-pool 的名稱(它的命名與我的系統名稱完全一樣,所以我想我過去可能已經手動命名了它 - 我沒有)。

與物理磁碟相關的唯一標識符是WWN,與 GPT 分區表相關的唯一標識符是PTUUID

因此,與我之前找到的所有其他答案一樣,答案是“否”。

無法為磁碟設備分配名稱。

從現在開始,我lsblk列出相關 ID 的命令選項將是:

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

這取決於設備的內容。更具體地說,它取決於是否存在提供標籤的已知超級塊。

這可以是文件系統超級塊(如 ext4、xfs、fat、iso9660,…)、交換設備、raid 超級塊(mdadm),甚至是 crypt 容器(LUKS2)。

因此,您可以在mkfs文件系統時指定標籤,或者稍後使用文件系統特定工具更改它(對於 ext4,這將是tune2fs -L),如果是 mdadm,它是--name數組的,如果是 LUKS2 是cryptsetup --label選項。

據我所知,如果不將標籤附加到某些文件系統或其他超級塊提供程序,就無法任意設置標籤。最接近的方法是在 GPT 分區表 ( parted name ...) 中使用 PARTLABEL,然後將其附加到分區表本身,但是 PARTLABEL 不是 LABEL。它不會覆蓋或替換文件系統標籤。

標籤沒有通用標準,都是手工編織的,例如在 util-linux 中查看 superblocks 格式的實現。如果你明天發明一個新的文件系統,即使它有標籤,在添加支持之前它也不會出現。

在您的lsblk輸出中,如果您添加FSTYPE列,您可能會知道是什麼提供了您所看到的標籤。然後,如果您想以相同的方式在另一台設備上提供標籤,您只需……也必須在該設備上放置相同的文件系統(或raid superblock,或其他任何東西……)。這樣做自然會刪除之前存在的任何其他內容(您不能在一個設備上擁有兩個文件系統,而不是先創建新設備)。

引用自:https://unix.stackexchange.com/questions/528816