ルートデバイスが見つかりません。

ルートデバイスが見つかりません。
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

しばらくArch Linuxをインストールしようとしましたが、このエラーは引き続き発生します。私は本当に何をすべきかわかりません。

いくつかの背景情報:私のコンピュータには元のFedoraとWindows 10(すべて64ビット)のデュアルブートがあり、最初にWindowsがインストールされました。 Fedoraの代わりにArchを使用することにしました。ルートとの/boot/efi別のパーティションがあり、/homeルートのみを扱いました。パーティションをマウントし、以外のすべてのアイテムを削除しました/home/boot誤ってアーカイブしました)。を実行し、pacstrap -i /mnt baseシステムをインストールして再起動しました。通常は起動しますが、Fedoraのロードアニメーションとすべての機能でFedoraブートローダを使用します。 Fedora ブートローダが原因と思われるサービスの一部を起動できないなど、システムにはいくつかの問題があります。 ArchインストールUSBで再起動し、今回を含むすべてのエントリを削除しました/boot(しかしインストール/boot/efiしませんでした)。再インストールしましたが、grubはvmlinuzイメージを認識しませんでした。だから私はUSBで再起動し、新しいArchパーティションにルートを移動し、個人的にお気に入りのブートローダーrEFIndをインストールすることにしました。 rEFIndがインストールされた後、pacman -S refind-efirEFIndrefind-installがインストールされ再起動されます。 Windowsが起動しますが、Archを起動しようとするとこのエラーが発生します。

mkinitcpio -p linux何度も実行してみましたが、/etc/fstab完全に正常なようです。

私が試したことは次のとおりです。

https://superuser.com/questions/769047/unable-to-find-root-device-on-a-fresh-archlinux-install#788480

自動検出前ブロック移動、効果なし

http://www.linuxforums.org/forum/arch-linux/199189-error-device-not-found-skipping-fsck.html

Refind.confとrefind_linux.confを使用すると、何も機能しません。

https://superuser.com/questions/835120/error-unable-to-find-root-device-dropped-to-recovery-shell

initramfs-linux.imgが正しいディレクトリにあることを再確認してください。

同様の問題を見ましたが、解決策のどれも効果がありませんでした。アーチを始める方法についてのアイデアはありますか?

編集:LVMを使用していることを発見しました。まあ、うん。私のデフォルト、ルート、およびスワップパーティションはすべて/dev/sda8にある小さなLVMエントリです(何と呼ぶべきかわかりません)。これがどのような影響を与えるのかわかりません。

ベストアンサー1

問題は、rEFIndがディレクトリrefind_linux.confにファイルを自動的に生成しないことです。/boot

「EFIスタブローダサポート技術の詳細」の手順4から始めてください。rEFInd ドキュメント:

rEFInd はカーネルファイルと同じディレクトリに refind_linux.conf というファイルを探します。これは一連の行で構成され、各行にはラベルと一連のカーネルオプションが含まれています。最初の行はデフォルトオプションを設定し、次の行はメインメニュータブのサブメニュー画面からアクセスできるオプションを設定します。 refind-installスクリプトを使用してrEFIndをインストールすると、スクリプトはコンピュータに合わせてカスタマイズされたサンプルrefind_linux.confファイルを/ bootに生成します。このファイルは多くのインストールで変更なく動作しますが、一部のインストールでは調整が必要な場合があります。

なぜこのファイルが生成されないのかはわかりませんが、ファイルを生成すると、現在発生している問題を解決できる可能性が高くなります。

refind_linux.confファイルの作成

Arch Linux Wikiには1つあります優れた出品作品これを行う方法について説明しますが、デフォルトではカーネルと同じディレクトリに配置します(通常は/boot自動または手動で作成します)。このファイルでコメントアウトされていない最初の行は、カーネルを起動するためのデフォルトパラメータになります。

次のコマンドを使用してファイルを作成しました。mkrlconfコマンドを実行すると、生成されたファイル/boot/refind_linux.confは次のようになります。

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

私たちは進歩を遂げていますが、まだ機能していません。ライブUSBで作成中なので、最初の2つの項目はUSBのISOを参照しているため、正しくありません。しかし、最終項目は実際には正しいです。これは、受信したエラーと同様に、ルートデバイスを''ディスクのUUIDに設定するためです/

したがって、デフォルトの起動オプションに設定するには、他の行を削​​除してラベルを変更するだけです。

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

ファイルを保存してシステムを再起動すると、今すぐ動作します!

脚注

  1. もちろん、ファイルを作成することはまだ遠いです。作成には使用する必要はなく、mkrlconf手動で直接作成できます。さらに、ディスクUUID(手動でコピーして入力したくない)を自動的に埋めるということです。

  2. スタブローダ技術の詳細(上記のリンク)の手順5では、refind_linux.confファイルが存在しない場合にrEFIndがどのように機能するかを簡単に説明します/etc/fstab。奇妙なボリューム構成にもかかわらず、動作しない可能性が高いです。

おすすめ記事