私の唯一のディスクのレイアウトは次のとおりです:/dev/sda1 for the plaintext boot partition /dev/sda2 for the encrypted root partition
私のシステムはArchLinuxであり、 このガイド に従ってルート暗号化を設定しました(lvmなし、RAIDなし)。これが私がしたことです:/dev/sda2
でcryptsetup
を実行し、それを/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
を実行することを忘れませんでした。
ルートfsの暗号化の構成に以前は成功していたので、このように活発な方法でアクションを列挙しました。したがって、最終的に次のエラーが発生します。
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
を検索しようとしますが、パスワード(最初に/dev/sda2
でcryptsetup
を実行したときに作成したパスワード)を要求されません。 )。したがって、そもそもパスワードの入力を求められなかったため、当然、暗号化されていないブロックデバイスを見つけることができません。何が間違って構成されているのか教えていただけますか?
GRUBの追加のカーネルオプションについては、_cryptdevice=/dev/disk/by-uuid/<UUID_OF_LOGICAL_DEVICE>:cryptroot root=/dev/mapper/cryptroot
_で成功しました。
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
/ etc/crypttabがありません。cpioフックが、OSが認識していないパーティションを指しています。
/ etc/crypttab
%{/ dev/mapper/cryptrootのUUID}/ext4 rw、relatime、data = ordered、discard、luks-0 1
その後、grubupdateを再実行します