起動失敗:カーネルがシステムデバイスを見つけることができません。

起動失敗:カーネルがシステムデバイスを見つけることができません。

修正する。この問題は、2017年12月のカーネルアップデートで解決されました。何が問題なのかわかりませんでした。しかし、振り返ってみると、同時に発生した他の問題が原因で、おそらくディスクUIIDを作成する際の互換性の問題が原因でした。はいまたはいいえハイフン:Linuxではハイフンが必要ですが、GRUBではそうではありません。


私は走る放物線Linuxlinux-libreカーネル4.11.9-gnu-1自由に導くことができる私のコンピュータに。

質問:最近システム(pacman -Syu)を更新しましたが、起動プロセスが失敗しました。具体的には、カーネルは物理マシンがある論理ボリュームを見つけることができないようです。私が得るエラーは次のとおりです。ERROR: device '/dev/aether/core/' not found. Skipping fsck.

この問題のトラブルシューティングや診断にご協力いただきありがとうございます。私はこれを自分で理解するにはあまりにも少なく理解し、必死です。

次に、問題についてさらに詳しく説明し、これまでに行った作業について説明します。


これは私の設定です。core:完全に暗号化された単一のパーティションを持つSSD(Solid State Disk)があり、その上に名前がボリュームグループにある論理ボリュームがありますaether。マイシステム/ルートディレクトリは論理ボリュームにありますcore。 (暗号化はディスクに使用され、cryptsetup管理は論理ボリュームに使用されますlvm。)

(私の説明に従って)起動すると、これが起こります。

ブートロードフェーズ

  1. LibrebootがGRUBを正常にロードしました。

  2. GRUBは暗号化されたパーティションを復号化するためにパスワードを要求しました。

    ㅏ。パスワードを入力してください。

    b。 GRUBは暗号化されたパーティションを正常に復号化します。

  3. GRUBはカーネルイメージとinitramfsを正常にロードします。

カーネルステップ。次のようなことが発生します。


 :: running early hook [udev]
 :: running early hook [lvm2]
 :: running hook [encrypt]
 Waiting 10 seconds for device /dev/aether/core ...
 [    4.250559] sd 4:0:0:0:  [sdb] No Caching mode page found.
 [    4.250612] sd 4:0:0:0:  [sdb] Assuming drive cache: write through
 ERROR: device '/dev/aether/core/' not found. Skipping fsck.
 :: mounting '/dev/aether/core' on real root
 mount: you must specify the filesystem type
 You are now being dropped into an emergency shell.
 sh: can't access tty; job control turned off
 [rootfs ]#

で表される一部の情報がありません。完全なログは次のとおりです。ここしかし、残りは役に立たないと思います。

GRUBはLibrebootのファームウェアで構成されています。私に関連する部分は次のとおりですgrub.cfg

  cryptomount -a
  set root=lvm/aether-core
  linux /boot/vmlinuz-linux-libre root=/dev/aether/core cryptdevice=/dev/disk/by-uuid/〈uuid of the encrypted partition〉:core cryptkey=rootfs:/etc/〈keyfile〉
  initrd /boot/initramfs-linux-libre.img

しかし、問題はGRUB自体にあるとは思わない。


私がしたこと。私のシステムに成功しました。内部には/dev/aether/core存在します。パスワードと鍵ファイルの両方が暗号化されたパーティションのロックを正常に解除しました。また、カーネルを4.10.*-(起動できるバージョンの一部)にダウングレードしようとしましたが、それも役に立ちませんでした。問題は持続します。

この問題同様の問題が含まれています。違いは、一方では、正しいデバイス名がエラーメッセージで参照されていますが、とにかく見つからないことです。また、緊急シェルに入ることができます。


ここで問題は何ですか?この問題をどのように解決できますか?

答え1

私の考えでは、あなたがinitramfsに存在しないいくつかのudev命名に頼っているようです。つまり、暗号化されたパーティションは復号化されますが、/dev/aether/core には接続されません。

UUIDまたは名前でルートパーティションを指定するか、chrootに使用したデバイス名を使用することをお勧めします。

これらはすべて暗号化に加えてLVMを使用しないと仮定しています。

答え2

アップデートに記載されているように:

この問題は、2017年12月のカーネルアップデートで解決されました。何が問題なのかわかりませんでした。しかし、振り返ってみると、同時に発生した他の問題が原因で、おそらくディスクUIIDを作成する際の互換性の問題が原因でした。はいまたはいいえハイフン:Linuxではハイフンが必要ですが、GRUBではそうではありません。

しかし、これは単にカーネルのバグである可能性が高いです。

しかし同時に、同様の問題に直面した。 (またはまったく同じかもしれませんが、覚えていません)解決策は、GRUB設定で異なるUUIDを使用することです。 1つはGRUB用、もう1つはLinux用です。具体的には、ラインで

linux /boot/vmlinuz-linux-libre root=/dev/aether/core cryptdevice=/dev/disk/by-uuid/〈uuid of the encrypted partition〉:core cryptkey=rootfs:/etc/〈keyfile〉

⟨uuid of the encrypted partition⟩読む必要がありますそしてハイフン⟨uuid of the encrypted partition⟩

cryptomount -u ⟨uuid of the encrypted partition⟩

読む必要がありますいいえハイフン。 (この行はcryptomount -a元の質問の行を置き換えます。)

関連情報