web-dev-qa-db-ja.com

Grub2は、もう1つのハードディスクをインストールした後、間違ったハードディスクを指しています

2台のSATAハードドライブがインストールされたデスクトップがあります。一方にはWindowsがあり、もう一方にはUbuntu 12.04があります。すべて正常に動作します。次に、もう1つのハードドライブをインストールします。これはIDEドライブです。 IDEドライブをインストールした後、Grubは正しいハードドライブをポイントしなくなり、ブートディレクトリが見つからないため、grubのレスキューになります。私のgrub.cfgでは、Ubuntuのインストールはhd1にあります。新しいIDEドライブはhd0になるようです。これは、私のUbuntu(およびブートディレクトリ)がhd2(およびhd1上のWindows)上にあることを意味しますか?もしそうなら、Grubでこれを変更して正しいハードドライブを指すようにするにはどうすればよいですか? GRUBレスキュープロンプトから実行できますか? IDEドライブがインストールされていない状態で起動し、grub.cfgを編集し、コンピューターを切り離し、IDEドライブを接続して起動できますか?ここで間違えた場合、ライブCDからgrub.cfgを編集できますか?または、これを行うためのより良い方法はありますか?

3
Bambino

GRUBコマンドラインには、この問題のデバッグに役立つコマンドがいくつかあります。ここでそれらのリストを確認してください: http://www.gnu.org/software/grub/manual/html_node/Command_002dline-and-menu-entry-commands.html
あなたの場合は、ドライブパーティションGrubファイルの場所。 lsコマンドを試してください。 Grubではパーティションの命名規則が異なることに注意してください。たとえば、1番目のドライブの2番目のパーティションは(hd0,1)と呼ばれます(ドライブとパーティションはゼロからカウントされます)。上記のリンクを使用して、lsコマンドのヘルプの「デバイス構文」セクションを確認してください。
/boot/grubフォルダーの場所が正確にわかるとすぐに、次のコマンドを使用してシステムの起動を試みることができます(以前のドライブ1、パーティション2の例-適切に変更します)

grub> set root=(hd0,1)
grub> set prefix=(hd0,1)/boot/grub
grub> insmod normal
grub> normal

これで、システムが正常に起動するはずです。ログインして、ターミナルからブートローダーを復元します。

Sudo update-grub
Sudo grub-install /dev/sda

(GNU/Linuxがインストールされているドライブの適切な/ dev/sdX名を使用します)。

3
whtyger

元のディスクではなく、現在起動中のIDEディスクに古い壊れたgrubをインストールする必要があります。BIOSにIDEの1つ。

DOS/Windowsは他のドライブから起動できないため、BIOSは常に起動しようとしているドライブに(hd0)を割り当てます。

0
psusi