私の設定:opensuse 11.4、ブートパーティションはpendriveにあり、ハードドライブにはsda1、sda2、sdb1パーティションがあります。
今日、コンピュータケースを交換し、誤って2番目のドライブをSATA 2の代わりにSATA 3に接続しました。したがって、2番目のドライブが誤って取り付けられています。コンピュータをシャットダウンして正しく接続した後、問題が発生しました。
これでシステムをまったく起動できません。以前は、リムーバブルドライブから起動するようにBIOS(ペンドライブ)に設定がありましたが、現在コンピュータ(BIOS)ではペンドライブをリムーバブルドライブとして認識せず、通常のHDDをリムーバブルドライブとして認識しているようです。したがって、「リムーバブルドライブ」は起動しません。起動順序を変更してハードドライブから起動することを選択するか(最初のハードドライブをペンドライブとして設定する)、起動メニューから直接ペンドライブから起動するように設定すると、次のエラーが発生します。 GRUBエラー、エラーは回復モードに入ります。
私の考えでは、何らかの理由でペンドライブがリムーバブルメディアとして認識されなくなりましたが、ハードドライブとハードドライブが異なるマップになっているため、マッピングを変更する必要があるようです。
CD インストーラを起動し、pendrive をマウントして grub 構成の内容を表示できますが、grub リカバリモードで "ls" を実行すると、次のメッセージが表示されます。
(hd0)(hd0、msddos1)(hd1)(hd1、msddos2)(hd1、msdos1)(hd2)(hd2、msddos1)
しかし、マッピングが表示されないため、hd0が実際に何を意味するのかわかりません。ここで、hd1には2つのパーティションがあるため、sdaと疑われます(接尾辞msdsosがパーティションを意味する場合)。
Grubを再び機能させるにはどうすればよいですか?
答え1
問題は、grubが実行されているシステムで実行しているときと起動時に別のUSBディスクを見ることです。問題を解決する方法は次のとおりです。
通常、ハードドライブから起動し、grubが表示されたらgrubコンソールを開きます(通常を押すだけですc
)。 grubプロンプトで次のように入力し始めますroot (hd
。
grub> root (hd
次に、を押すと、Tabディスクは可能な完了としてマークされます。ディスクとパーティションを選択してください/boot
。不明な場合は、疑わしい項目ごとに次の操作を行います。
- (
root
パーティションを選択するには、コマンドを完了してから押してくださいEnter) - を入力し
cat /
てタップしますTab。パーティション内のファイルのリストが表示されます。 - ファイルのリストを見て、カーネル(下)が含まれているパーティションであることを確認してください
/boot/
。 - そうでない場合は、を押してEsc再起動してください。
grubがパーティションをどのように認識するかを見つけたら、ブートローダを再インストールし(setup
コマンドを使用して)、ファイル内の正しいパーティション/ファイルをポイントできます。/boot/grub/menu.lst
または /boot/grub/grub.conf
(あなたのバージョンで使用するバージョンを決定するか、同じ内容を含める必要があります。)
[編集]:Maciasの特別なリクエストに応じて、grubを使用してMBRを回復する方法の詳細については、次のとおりです。
ドライブにMBRを再インストールする1つの方法は、上記のコマンドをgrub
使用することです。setup
これは grub バージョン 0.9X(文書を見る)。しかし、最新のグラブブランチ(1.9X)を使用しているように見え、そのコマンドは異なります。見る該当する文書- このバージョンでは、MBRにgrubをインストールできます。grub-install
ユーティリティの使用grub-0.97のようなgrub "rescue"プロンプトで他の方法があるかどうかはわかりません。たぶんそうではないかもしれません。おそらく、これが多くのディストリビューションが「レガシー」バージョンを好む理由の1つです。
答え2
このファイルはmenu.lst
grub-legacy でのみ使用されます。 。grub.cfg
Grub2はそれなしで動作するのが好きなので、device.map
それを削除してgrubを再インストールすることもできます。
答え3
この問題に対する解決策は2つあります。一つは、グルーブを修正すること、もう一つはMBRを修正することです。
最初は非常に簡単(?)インストールCD(openSUSE!)でコンピュータを起動し、「回復モード」を選択し、回復モードで実行した後にrootとしてログインし(パスワードは必要ありません)、ペンドライブを挿入してマウント(例) :〜/pendrive)してから次に進みます。 〜/pendrive/grubと2つのファイル(device.mapとmenu.lst)を編集します。両方のファイルでエントリ(hdX)を見つける必要があります。ここで、Xは(通常)0と1です。私の場合、すべての0を1に置き換え、すべての1を0に置き換えます。
MBRを簡単に修正する方法はわかりませんが、Rozcietrzewiaczが解決策を提案できることを願っています。 :-) 場合に備えて最も難しい方法は、他のペンドライブとは異なるハードドライブを持ち、通常のハードドライブをすべて取り出し、模倣を行うことです。元のインストールの「偽」インストールです。すべてが正常に動作し、新しい「偽」システムが起動したら、動作しているペンドライブから機能しないペンドライブにMBRセクタをコピーできます(参照:grubを使用してブートパーティションを完全に再構築するには?)。次のガイドラインに従ってください。
「ここでは、/ dev / sdbが既存のペンドライブであり、/ dev / sdcが新しいドライブであると想定しています。適切なデバイス名に置き換える必要があります。そうしないと、システム全体が壊れる可能性があります。
dd if=/dev/sdc bs=512 count=1 of=/dev/sdb
"(Rozcietrzewiaczのソリューション)
これらの2つのステップは、ディスクの再割り当て後にGrubを再び動作させるために必要なすべてです。