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モノ(何と呼ぶかわからない)です。これが何かに影響するかどうかはわかりません
パーティション全体を削除して再インストールしました。 LVMはそれをずっと失敗させていました。今は完全に動作します。
問題は、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"
ファイルを保存してシステムを再起動すると、正しく機能するはずです。
これはもちろん、ファイルを作成するための長い道のりです。 mkrlconf
を使用して生成する必要はありません。手動で作成できます。これは、ディスクUUIDを自動入力するだけではありません(手動でコピーして入力する必要はありません)。
スタブローダーの技術詳細(上記にリンク)のステップ5は、refind_linux.conf
ファイルが存在しない場合、rEFIndが/etc/fstab
でカーネルエントリを検索する方法の概要を示しています。奇妙なボリューム構成では、これが機能する可能性は低いですが。
パーティションをChrootして、FIFOスクリプト「Install/Configure bootloader」の部分 https://github.com/helmuthdu/aui
これが役に立たない場合。私の/home
パーティションをバックアップし(Elronndが推奨するように)、FIFO/LILOスクリプトを使用して新規インストールを試みます。
幸運を!