LUKS によるルート暗号化: ルート パーティションが見つかりません

LUKS によるルート暗号化: ルート パーティションが見つかりません

私の唯一のディスクのレイアウトは次のとおりです。 /dev/sda1 for the plaintext boot partition /dev/sda2 for the encrypted root partition

私のシステムはArchLinuxで、このガイドルート暗号化を設定する(LVMなし、RAIDなし)。私がやったことは次のとおりcryptsetupです/dev/sda2/dev/mapper/cryptroot

私のは/etc/fstabこんな感じです: UUID=of /dev/mapper/cryptroot / ext4 rw,relatime,data=ordered,discard 0 1 UUID=of /dev/sda1 /boot ext4 rw,relatime,data=ordered,discard 0 2

私の場合は/etc/default/grub、1 行を次のように変更しました。 GRUB_CMDLINE_LINUX="cryptdevice=UUID of /dev/sda2:cryptroot:allow-discards"

フックは/etc/mkinitcpio.conf次のようになります。 HOOKS="base udev autodetect modconf block encrypt filesystems keyboard fsck"

mkinitcpio -p linux最後に、それぞれ走ることも忘れませんでしたgrub-mkconfig -o /boot/grub/grub.cfg

以前、ルート ファイルシステムの暗号化の設定に成功していたため、このように素早くアクションを列挙しました。その結果、次のエラーが発生します。

ERROR: device *UUID of /dev/mapper/cryptroot* not found. Skipping fsck. ERROR: unable to find root device *UUID of /dev/mapper/cryptroot* You are being dropped into recovery shell

奇妙なのは、暗号化されていないものを探そうとしている/dev/mapper/cryptrootのに、パスワード (最初にcryptsetup起動したときに作成したもの/dev/sda2) を尋ねないことです。したがって、最初にパスワードを尋ねなかったため、暗号化されていないブロック デバイスを見つけることができないのは当然です。何を間違って設定したのか教えてください。

答え1

cryptdevice=/dev/disk/by-uuid/<UUID_OF_LOGICAL_DEVICE>:cryptroot root=/dev/mapper/cryptrootGRUB の追加カーネル オプションで成功しました。

UUID を正確にコピーして貼り付けずに (コンソール/tty などで) これを実行すると、入力ミスが発生する可能性があります。ここにワンライナーがあります。これもコンソールから入力するのは面倒ですが、おそらく簡単でしょう。

sed "s/\(GRUB_CMDLINE_LINUX=\"\)/\1cryptdevice=\/dev\/disk\/by-uuid\/$(blkid -o value -s UUID /dev/<LOGICAL_DEVICE>):cryptroot root=\/dev\/mapper\/cryptroot/" /etc/default/grub > ~/grub.defaults && mv ~/grub.defaults /etc/default/grub

答え2

/etc/crypttab がありません。cpio フックは OS が認識していないパーティションを指しています。

/etc/crypttab

%{/dev/mapper/cryptroot の UUID} / ext4 rw、relatime、data=ordered、discard、luks - 0 1

その後、grub updateを再実行します。

関連情報