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-efi
rEFIndrefind-install
がインストールされ再起動されます。 Windowsが起動しますが、Archを起動しようとするとこのエラーが発生します。
mkinitcpio -p linux
何度も実行してみましたが、/etc/fstab
完全に正常なようです。
私が試したことは次のとおりです。
自動検出前ブロック移動、効果なし
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"
ファイルを保存してシステムを再起動すると、今すぐ動作します!
脚注
もちろん、ファイルを作成することはまだ遠いです。作成には使用する必要はなく、
mkrlconf
手動で直接作成できます。さらに、ディスクUUID(手動でコピーして入力したくない)を自動的に埋めるということです。スタブローダ技術の詳細(上記のリンク)の手順5では、
refind_linux.conf
ファイルが存在しない場合にrEFIndがどのように機能するかを簡単に説明します/etc/fstab
。奇妙なボリューム構成にもかかわらず、動作しない可能性が高いです。