Distをアップグレードし、ブートパーティションのカーネルを何らかの形で失いました。
私はそのほとんどを復元することができました(古い14をブートして、暗号化されたパーティションをマウントし、その中にchrootします-したがって、以下の/ mnt)。それでもブートできません。ルートパーティションのパスワードを要求することはなく、initramfsシェルの内部で停止します。
これを/ etc/default/grubに追加してみました
GRUB_CMDLINE_LINUX="cryptdevice=/dev/disk/by-uuid/8711af09-1c70-414a-af43-e859ddabf09f:cryptroot root=/dev/mapper/cryptroot"
そのUUIDは/ etc/crypttabにあります:
sda5_crypt UUID=8711af09-1c70-414a-af43-e859ddabf09f none luks,discard
しかし、私がそれをしてgrub-installを次のように実行すると:
grub-install --boot-directory=/mnt/boot /dev/sda1
私はこれを得る:
Installing for i386-pc platform.
grub-install: error: attempt to install to encrypted disk without cryptodisk enabled. Set `GRUB_ENABLE_CRYPTODISK=1' in file `/etc/default/grub'..
GRUB_ENABLE_CRYPTODISKを見つけることができるのは、ディスク全体を暗号化するときだけです-私はそうではありません。/boot(またはUSBブートマシンの/ mnt/boot)にマウントされた別のEXT2ブートパーティションがあります。
そのオプションをオンにすると:
GRUB_ENABLE_CRYPTODISK=y
grub-installを実行すると、次の結果が得られます。
Installing for i386-pc platform.
grub-install: warning: Filesystem `ext2' doesn't support embedding.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
私が見つけることができるすべての例は、ディスク全体のインストールのようで、誰もこのケースについて話しているようには見えません。
助けてください!
私の知る限り、GRUB_CMDLINE_LINUX
を暗号ブロックデバイスに設定する必要はありません。代わりに、次が正常であることを確認してください。
次のクリーンな方法をお勧めします(liveUSBまたはレスキューディスクから):
Sudo -i cryptsetup open /dev/sda5 my_encrypted_device mount /dev/mapper/my_encrypted_device /mnt mount --bind /dev/ /mnt/dev && mount --bind /dev/pts /mnt/dev/pts && mount --bind /proc /mnt/proc && mount --bind /sys /mnt/sys mount /dev/<YOUR_BOOT_PARTITION> /mnt/boot chroot /mnt apt purge --auto-remove grub-pc
Enterキーを押して、削除を確認します。
apt install grub-pc
ターミナル内で、スペースバーを使用してgrubをインストールする場所を選択し、タブを押して入力します。
TARGET SOURCE_DEVICE KEY_FILEオプション
(例:my_encrypted_device/dev/sda5 none luks)
キーファイルパラメータnone
は、ユーザーがインタラクティブにキーファイルを指定することを要求することを忘れないでください
update-initramfs -u -k all
すぐに起動できるはずです。
注:GRUBは、あなたが言ったように暗号化されたデバイスにインストールできます