ArchLinuxの新規インストールで「ルートデバイスが見つかりません」


36

最新バージョンのArchLinux(2014.06.01)をMacBook Pro 8,1(ハードウェアに関して重要な場合は15インチ)にインストールしました公式インストールガイドの指示に従ってOSXを使用してデュアルブートします。ただし、新しくインストールされたシステムに、それは私を回復シェルにドロップします:

ERROR: device 'UUID=<snip>' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=<snip>'.
You are being dropped to a recovery shell
    Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[rootfs /]# 

(入力したくないためUUIDを削除しましたが、blkidArchLinuxがインストールされているパーティションに対して(インストールディスクから)与えられたものと同じです)

その他の オンライン 情報源は、これは時代遅れによるものであることを示唆しているpacmanudevfilesystemまたはlinuxパッケージ。ただし、彼らはこの問題を、新規インストールではなく、動作中のシステムからのカーネル更新後にのみ説明します。これらのパッケージをarch-chrootインストールディスクから起動するときに環境から強制再インストールしましたが、状況は変わりませんでした。

代わりに、私のgrub.cfg不満についての少しの実験は、不満を言うものは、使用するファイルを選択するコマンドのrootパラメーターであることを示してlinuxvmlinuzます。実際、or に変更root=UUID=<snip>するroot=LABEL=ArchLinuxroot=/dev/sda8(両方ともArchLinuxがインストールされている場所を説明し、別のディストリビューションで以前に2番目のバージョンを使用したことがUnable to find root device 'LABEL=ArchLinux'ありUnable to find root device '/dev/sda8'ます)、それぞれになります。さらに、GRUBはパーティションをUUIDで見つけることができるようです。初期ramdiskが適切にロードされているため、Linuxカーネルのみがパーティションが見つからないことを訴えます(つまり、これはここで説明するGRUBエラーではなく、Linuxエラーです) 。

副次的な注意事項として、回復シェルは厳しく制限されており、標準出力は適切に動作しないようです。それにもかかわらず、ls動作し、ファイルを一覧表示すると基本的な(一時的な)ファイルシステムが表示されますが、すべてのディスクデバイスがから欠落しているように見え/devます。ただし、これがエラーの一部であるかどうかはわかりません。

これは似ていますが、パーティションが最初からext4であったため、ブート時にLinuxがルートファイルシステムを見つけられないのと同じではありません。また、まったく同じではありませんが、Macbook Pro 7.1でArchLinuxを起動できません-リカバリシェルにドロップしますが、ramfsシェルではなくシェルにドロップしrootfs、エラーメッセージが異なります。

回答:


34

通常のイメージで起動する代わりに、フォールバックバージョンを使用して、システムを起動しました。結局のところ、Linuxはblock mkinitcpio、デフォルトのイメージから欠落しているフック(ブロックデバイスを担当)が原因でドライブを検出できませんでした。これは、後autodetectに配置されたため/etc/mkinitcpio.confです。これを修正するにはHOOKS=...、そのファイルの行を変更してblockから前に来るようにする必要がありますautodetect

修正前:

HOOKS="base udev autodetect block modconf filesystems keyboard fsck"

修正後:

HOOKS="base udev block autodetect modconf filesystems keyboard fsck"

mkinitcpio -p linux再実行するために実行するとinitramfs、問題は永久に修正されました。


それは非常に役に立ちました:)
ajukraine 14年

これを再現するのは難しいようです、私は同じ問題を抱えていてこれを修正しましたが、同じドライブが別のPCで完全にうまく機能しました。問題が発生したPCはかなり古いLGA775 PCであり、MBRパーティションテーブルを使用する場合、上記のソリューションは必要ありませんでした。したがって、UEFIを使用しない古いシステムでgptパーティションテーブルを使用した場合にのみ問題が発生しました。Macが常にEFIを使用するかどうかはわかりませんが、どのパーティションテーブルを使用したのでしょうか。
MADforFUNandHappy

しばらく経ち、MacBookはもうありませんが、GPTを使用していると確信しています。
hlt

私はOPと同じ問題を抱えており、あなたの答えは私にも当てはまるようですが、それは私の問題を解決しませんでした。
ネイサンゴーイングス

1

同様の問題が発生しましたが、セットアップが異なります。仮想マシンでArchLinuxを使用しており、ブートローダーはsyslinuxです。カーネルフックの順序を切り替えるときにあなたのトリックを使いましたが、それでもrootfsシェルになってしまいました。

何が私のために問題を修正変えたAPPEND私にラインをsyslinux.cfgから

APPEND root=UUID=<snip>

APPEND root=PARTUUID=<snip>

ルートパーティションを次のように仮定するようなコマンドを使用PARTUUIDして、に簡単に追加できます。syslinux.cfgblkid | grep sda1 | awk '{ print $7 }' >> /boot/syslinux/syslinux.cfg/dev/sda1

その後、お気に入りのテキストエディタを使用して、行を適切なスペースに移動できます。

編集:私はちょうど小さなawkスクリプトの列番号が異なる場合があることを認識したので、それを配管する前に出力を見ておく方が良い syslinux.cfg

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.