Windows XPおよびCentOS5.5をデュアルブートする既存のDellPrecision690ワークステーションセットアップがあります。これらのオペレーティングシステムは2つの別々のドライブにインストールされています。Linuxドライブにgrubメニューがあります。ドライブ1で、ドライブ2のWindowsブート情報を指します。
Linuxドライブを新しいHPZ800ワークステーションにインストールして、幸運にも起動できるかどうかを確認しようとしましたが、うまくいきませんでした。起動を開始した直後に、いくつかのエラーが発生します。
システムが示すものは次のとおりです。
このメッセージの直後Red Hat nash version 5.1.19.6 starting
次の行が表示されます。
Unable to access resume device (LABEL=SWAP-sda2)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!
これを起動させるために微調整できるものはありますか?このマシンにCentOS5.5と専用ソフトウェアをリロードする必要は本当にありません。
このドライブにgrubメニューが設定されていますが、これが問題になる可能性がありますか?古いマシンのドライブは、ドライブ1としてLinux、ドライブ2としてWindowsでセットアップされており、Linuxドライブはgrubメニューをホストしており、LinuxまたはWindowsで起動できます。これはどうして問題になるのでしょうか?
私はWindowsでこれを回避する方法を知っています:マシンにセカンダリHDDコントローラーカードをインストールし、ドライバーをインストールし、古いマシンのコントローラーにドライブを接続して起動することを確認し、ドライブとコントローラーを新しいマシンに移動して起動しますそれをオフにして、マザーボードドライバー(具体的にはhddコントローラードライバー)をロードすると、コントローラーカードを取り出し、hddをマザーボードに直接接続して設定できます。これと同じことはおそらくLinuxでも達成可能ですが、よくわかりません。これは、他に何も機能しない場合に試す最後の努力かもしれません。
これまでのところ、ブートローダーがカーネルとinitrd/initramfsを正常にロードしたが、カーネルがルートデバイスを検出していないことを意味します。したがって、カーネルコマンドラインでroot=/dev/sda42
のようなものを渡すことで起動できるはずです。
Grubプロンプトで、Linuxのエントリを編集し、linux
で始まる行を探します。その行には、root=/dev/sda42
のようなパラメーターがあるはずです。 root=/dev/sdb42
、つまり別のドライブに変更します。現在の文字はa
ではなく、機能する文字はb
ではない可能性がありますが、ドライブが2つある場合は、おそらくsdb
をsda
に、またはその逆に交換する必要があります。
Linuxでのドライブ文字の順序は、BIOS、Grub、またはWindowsでの順序とは無関係です(または少なくとも直接関連していません)(ドライバーがロードされる順序によって異なります)。 (これを回避する方法はいくつかありますが、現時点では役に立ちません。)
起動時に、/etc/fstab
のエントリが現在のディスクデバイス名と一致しない場合、エラーが発生する可能性があります。修復コンソールにアクセスできない場合は、再起動し、(root=
の変更に加えて)init=/bin/sh
を追加してシェルに直接ドロップしてから、を実行します。
mount /proc
mount -o remount,rw /
vi /etc/fstab # or whatever your favorite editor is