我一直在四处寻找,但找不到明确的答案,或者当我的系统向我显示其他信息时,我发现答案是“否”。
我正在运行 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
.
.
.
编辑:接受答案后
每@弗罗斯特舒茨在我上面的例子中,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
答案1
这取决于设备的内容。更具体地说,这取决于是否存在提供标签的已知超级块。
这可以是文件系统超级块(如 ext4、xfs、fat、iso9660 等)、交换设备、raid 超级块 (mdadm),甚至是 crypt 容器 (LUKS2)。
因此,您可以在文件系统时指定标签mkfs
,或者稍后使用文件系统特定工具(对于 ext4,这将是tune2fs -L
)更改它,在 mdadm 的情况下,它是--name
数组的标签,在 LUKS2 的情况下是cryptsetup --label
选项。
据我所知,如果不将标签附加到某些文件系统或其他超级块提供程序,就无法任意设置标签。最接近的是 GPT 分区表 ( ) 中的 PARTLABEL parted name ...
,然后它附加到分区表本身,但是 PARTLABEL 不是 LABEL。它不会覆盖或替换文件系统标签。
标签没有通用标准,都是手工编织的,请参见示例util-linux 中超级块格式的实现。如果你明天发明一个新的文件系统,即使它有标签,在添加支持之前它也不会显示。
在lsblk
输出中,如果添加该FSTYPE
列,您可能会了解什么可能提供了您所看到的标签。然后,如果您想以相同的方式在另一台设备上提供标签,您只需...也必须在该设备上放置相同的文件系统(或 raid 超级块,或无论它是什么...)。这样做自然会删除之前存在的任何其他内容(一台设备上不能有两个文件系统,除非先创建新设备)。