web-dev-qa-db-ja.com

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

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

私のシステムはArchLinuxであり、 このガイド に従ってルート暗号化を設定しました(lvmなし、RAIDなし)。これが私がしたことです:/dev/sda2cryptsetupを実行し、それを/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 linuxgrub-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/sda2cryptsetupを実行したときに作成したパスワード)を要求されません。 )。したがって、そもそもパスワードの入力を求められなかったため、当然、暗号化されていないブロックデバイスを見つけることができません。何が間違って構成されているのか教えていただけますか?

3
alisianoi

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

2
Erin Schoonover

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

/ etc/crypttab

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

その後、grubupdateを再実行します

0
linuxdev2013