Linuxに暗号化されたパーティションでルートファイルシステムを検索させる方法は?

Linuxに暗号化されたパーティションでルートファイルシステムを検索させる方法は?

複数のカーネルをアップグレードしたUbuntuシステムがあります。私は5.11.0-34、5.11.0-46、5.11.0-49の3つのカーネルをインストールして一日を始めました。複数のパッケージをアップグレードしてから中間カーネルを削除して、ブートパーティションにスペースを解放する必要がありました。

これで、残りのカーネルを起動できません。どちらも、Linuxがインストールされているドライブのパスワードを復号化するためにパスワードの入力を求められません。回復モードで起動するかどうかに関係なく、メッセージを印刷し、次のシェルで終了します。

Unable to init MCE device (rc: -5)
Volume group "vgubuntu" not found
Cannot process volume group vgubuntu
Gave up waiting for suspend/resume device
Gave up waiting for root file system device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT!  /dev/mapp/vgubuntu-root does not exist.  Dropping to a shell!

BusyBox v1.30.1 (Ubuntu 1:1.30.1-6ubuntu2.1) built-in shell (ash)

ずっと前に次へ追加 mce=offカーネルパラメータとして。すべてのGRUBメニューオプションに表示されます。

起動するには、どのようにインストールを変更する必要がありますか?

ベストアンサー1

どこか問題が生じて逃げなければなりませんでしたupdate-initramfs。 3つの場所で非常に似たガイドラインを見つけました。

  1. https://ubuntuforums.org/showthread.php?t=2409754&s=e1f324bf5e566b3bb93374cd07bdcc17&p=13828993
  2. https://askubuntu.com/a/868726/538768
  3. https://feeding.cloud.geek.nz/posts/recovering-from-unbootable-ubuntu-encrypted-lvm-root-partition/

これが私がそこに着いた方法です。

私はライブUSBからUbuntuをロードし、fdisk -l私のパーティションを見て、どのパーティションが暗号化されているかを推測するために実行しました。私は以下を見る(他のものの中で):

  • /dev/nvme2n1p1: 512M EFIシステム
  • /dev/nvme2n1p2: 732M Linuxファイルシステム
  • /dev/nvme2n1p3:1.8T Linuxファイルシステム<--これではないかと思います。

その後、パーティションの復号化を行い、次のようにマウントしました。

sudo -i
cryptsetup open /dev/nvme2n1p3 $name
vgchange -ay
mkdir /mnt/root
mount /dev/mapper/$name /mnt/root

/etc/crypttabこれにより、パーティションを復号化するときにどのデバイス名が使用されたかを確認できます(nvme0n1p3_cryptこの場合)。

nvme0n1p3_crypt UUID=743ab129-75bb-429b-8366-9c066f00c4fe none luks,discard

/etc/fstab次に、どのパーティションがブートパーティションであり、EFIパーティションであるかを確認しました。

# /boot was on /dev/nvme0n1p2 during installation
UUID=773ceeb2-5c0f-4838-baad-a1182d7fdd80 /boot           ext4    defaults        0       2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=5C17-FB32  /boot/efi       vfat    umask=0077      0       1

インストール時に、これらのパーティションの名前はと同様に指定されていますが、nvme0n1p*名前が指定されていません。以下をリストして現在の名前を見つけることができます/dev/disk/by-uuid

$ ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 15 Jan 31 12:29 5C17-FB32 -> ../../nvme2n1p1
lrwxrwxrwx 1 root root 15 Jan 31 12:29 743ab129-75bb-429b-8366-9c066f00c4fe -> ../../nvme2n1p3
lrwxrwxrwx 1 root root 15 Jan 31 12:29 773ceeb2-5c0f-4838-baad-a1182d7fdd80 -> ../../nvme2n1p2

これで、指示に従うために必要なすべての部品が準備されました。私が実行した実際のコマンドは次のとおりです。

sudo -i
cryptsetup open /dev/nvme2n1p3 nvme0n1p3_crypt
mount /dev/mapper/nvme0n1p3_crypt /mnt/root
mount /dev/nvme2n1p2 /mnt/root/boot
mount /dev/nvme2n1p1 /mnt/root/boot/efi
mount --bind /dev /mnt/root/dev
mount --bind /run /mnt/root/run
chroot /mnt/root
mount -t proc proc /proc
mount -t sysfs sys /sys
update-initramfs -c -k all

その後、システムを再起動し、インストールされているカーネルの1つから起動できます。

おすすめ記事