web-dev-qa-db-ja.com

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

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パーティションにchrootし、私のお気に入りのブートローダーであるrEFIndをインストールすることにしました。 pacman -S refind-efiおよびrefind-installを使用してrEFIndをインストールした後、rEFIndがインストールされ、再起動しました。 Windowsは起動しますが、Archを起動しようとすると、そのエラーが発生します。

mkinitcpio -p linuxを複数回実行しています。 /etc/fstabは完全に正常に見えます。

これが私が試したものです:

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

自動検出の前にブロックを移動、影響なし

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が正しいディレクトリにある

私は同様の問題を見てきましたが、それらの修正はどれも私にとってはうまくいきませんでした。 Archを起動させる方法についてのアイデアはありますか?

編集:私はLVMのものを使用していることを発見しました。そうそう。私のホームパーティション、ルートパーティション、スワップパーティションは、/ dev/sda8にある小さなLVMモノ(何と呼ぶか​​わからない)です。これが何かに影響するかどうかはわかりません

7
TheInitializer

パーティション全体を削除して再インストールしました。 LVMはそれをずっと失敗させていました。今は完全に動作します。

0
TheInitializer

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

rEFIndドキュメント の「EFIスタブローダーサポートの技術詳細」のステップ4から:

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

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

refind_linux.confファイルの作成

Arch Linux wikiには、これを行う方法について 優れたエントリ がありますが、基本的にはカーネルと同じディレクトリに配置します(通常、自動または手動で作成することにより、/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でカーネルエントリを検索する方法の概要を示しています。奇妙なボリューム構成では、これが機能する可能性は低いですが。

5
Sam Holmes

パーティションをChrootして、FIFOスクリプト「Install/Configure bootloader」の部分 https://github.com/helmuthdu/aui

これが役に立たない場合。私の/homeパーティションをバックアップし(Elronndが推奨するように)、FIFO/LILOスクリプトを使用して新規インストールを試みます。

幸運を!

0
Michael D.