我一直在四处寻找,但找不到明确的答案,或者当我的系统向我显示其他情况时,我发现答案是“否”。
我正在运行 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
数组的,如果是 LUKS2cryptsetup --label
选项。据我所知,如果不将标签附加到某些文件系统或其他超级块提供程序,就无法任意设置标签。最接近的方法是在 GPT 分区表 (
parted name ...
) 中使用 PARTLABEL,然后将其附加到分区表本身,但是,PARTLABEL 不是 LABEL。它不会覆盖或替换文件系统标签。标签没有通用标准,都是手工编织的,例如在 util-linux 中查看 superblocks 格式的实现。如果你明天发明一个新的文件系统,即使它有标签,在添加支持之前它也不会出现。
在您的
lsblk
输出中,如果您添加该FSTYPE
列,您可能会知道是什么提供了您所看到的标签。然后,如果您想以相同的方式在另一台设备上提供标签,您只需......也必须在该设备上放置相同的文件系统(或raid superblock,或其他任何东西......)。这样做自然会删除之前的任何其他内容(您不能在一个设备上拥有两个文件系统,而不是先创建新设备)。