systemdブートを使用してラベルとしてcryptdeviceを指定するには?

systemdブートを使用してラベルとしてcryptdeviceを指定するには?

私はArch Linuxを起動するためにsystemdを使用しています。/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が起動時に誤ったデバイスをフォーマットした場合など)。

答え2

cryptsetupタグは次から生成できます。暗号化デバイス。 /dev/disk/by-labelをチェックして、一致することを確認してください。だから

cryptdevice=LABEL={labelname}

同じように〜のように

root=LABEL=ROOT

ROOTタグ付きルートデバイスで動作

関連情報