我正在使用 systemd 启动运行 Arch Linux。我/boot/loader/entries/arch.conf
当前使用如下行指定 luks 加密设备:
options rw cryptdevice=/dev/sda1:ABC root=/dev/mapper/ABC
我知道我也可以使用 UUID 代替/dev/sda1
.在这种情况下,内核选项行将如下所示:
options rw cryptdevice=UUID=1f5cce52-8299-9221-b2fc-19cebc959f51:ABC root=/dev/mapper/ABC
但是,我可以使用分区吗标签或一卷标签或任何其他类型的标签?如果是这样,语法是什么?
答案1
如果您已经在使用新的 LUKS2 格式,则可以设置标签:
对于新的 LUKS2 容器:
# cryptsetup luksFormat --type=luks2 --label=foobar foobar.img
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="foobar" TYPE="crypto_LUKS"
对于现有 LUKS2 容器:
# cryptsetup config --label=barfoo /dev/loop0
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="barfoo" TYPE="crypto_LUKS"
但是,无法为更常见的 LUKS1 标头设置标签。
使用LUKS1,您只能在更高层上设置标签。例如,如果您使用 GPT 分区,则可以设置 PARTLABEL。
# parted /dev/loop0
(parted) name 1 foobar
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 105MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 104MB 103MB foobar
这将分区 1 的分区标签设置为“foobar”。
您可以识别它PARTLABEL=foobar
或在其中找到它/dev/disk/by-partlabel/
# ls -l /dev/disk/by-partlabel/foobar
lrwxrwxrwx 1 root root 13 Oct 10 20:10 /dev/disk/by-partlabel/foobar -> ../../loop0p1
同样,如果您在 LVM 之上使用 LUKS,则可以使用 VG/LV 名称。
与对待标签一样,要格外小心,确保每个标签不存在多次。 UUID 被认为是“普遍唯一”是有原因的。当尝试使用错误的设备时,您会遇到很多问题;它甚至可能导致数据丢失(例如,如果 cryptswap 在启动时格式化了错误的设备)。