私はsystemdブートでArch Linuxを実行しています。 /boot/loader/entries/Arch.conf
では、現在、次のような行でluks暗号デバイスを指定しています。
options rw cryptdevice=/dev/sda1:ABC root=/dev/mapper/ABC
/dev/sda1
の代わりにUUIDを使用することもできます。その場合、カーネルオプション行は次のようになります。
options rw cryptdevice=UUID=1f5cce52-8299-9221-b2fc-19cebc959f51:ABC root=/dev/mapper/ABC
ただし、代わりにパーティションlabelまたはボリュームlabelまたは他の種類のラベルを使用できますか?もしそうなら、構文は何ですか?
すでに新しい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が起動時に間違ったデバイスをフォーマットする場合)。
cryptsetup
は cryptdevice にラベルを作成できます。/dev/disk/by-labelを調べて、一致することを確認します。そう
cryptdevice=LABEL={labelname}
同じ方法で として
root=LABEL=ROOT
ROOT
ラベルの付いたルートデバイスで機能します