web-dev-qa-db-ja.com

エラー:ファイル '/grub/i386-pc/normal.mod'が見つかりません

error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

私に何ができる?私はただ座って見つめています。

約4年間使用していない古いネットブック(Dell Inspiron 1010)を見つけました。 Windows XPをUbuntu 12.10に置き換えました。起動可能なUSBドライブを使用しました。インストールして再起動しました。 normal.modが見つからないというメッセージを受け取りました。

私は何をすべきか?タイプexitreboot、またはquit?再インストールする必要がありますか?

46
Don Metlay

今日の午後、マシンでこれを解決しました。この問題の原因の1つは、インストーラーがEFIセキュアブートを持っていると考えているために、持っていないときに間違ったGRUBファイルをロードしているためと思われます。

GRUB 2.をインストールする必要があります。これを行うには、ライブインスタンスを起動し、ルートパーティションをマウントしてインストールする必要があります。

ライブインスタンスから、ルートパーティションがロードされているパーティションを見つけます。 GPartedがこれを教えてくれます

Sudo fdisk -l

Ubuntuがインストールされているパーティションを探します。

パーティションを作成したら、マウントする必要があります。ルートパーティションが/ dev/sda5にあると仮定すると、次のようになります。

Sudo mount /dev/sda5 /mnt

次にGRUB 2をインストールします

Sudo grub-install /dev/sda --root-directory=/mnt [コピーする必要があるスペースがあるため、このコピーと貼り付けを使用してください。]

これがあなたの問題であると仮定すると、再起動するだけですべてが正常に機能するはずです。

このための元のソリューションはここからでした: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html

30
MorrisseyJ

私はフォーラムでその情報を見つけられなかったので、この質問はずっと前に尋ねられたという事実にもかかわらず、いくつかの情報を共有したいと思います。

Ubuntuがインストールされた大きな(たとえば1TB)パーティションがあり、/ boot /に追加のパーティションを割り当てなかった場合、そのようなエラーの原因である可能性があります。 GRUBが起動すると、biosdiskドライバーを使用して/ boot/grub /ディレクトリーから通常のドライバーを読み取ります。場合によっては、このディレクトリは、バイオディスクセクターでサポートされている最大数より後のどこかに物理的にハードドライブ上に配置できます。この問題は、たとえばシステムのアップグレード後に発生する可能性があります。また、Ubuntu 13.10の新規インストール後、常にこの問題に直面していますが、マザーボード/ BIOSに依存するため、異なる可能性があります。

Grubリカバリを使用して確認できます-正しいPREFIXとROOTを設定した後、ls/bootを試してください-何も表示されないが、ライブcd /フラッシュドライブから起動したときにそこにファイルが表示される場合-上記の問題がある場合。

システムをブート可能にするためにさまざまなことを行うことができますが、将来(dist-upgradesで)問題を回避する唯一の方法は、/ bootディレクトリを別の小さなパーティションに置くことです。

2
Grief

grub-rescueプロンプトが表示されたり、構成でLVMが使用されている場合、他のソリューションは機能しない可能性があります。

レスキューディスクで起動します(ヒント:バックアップUSBディスクの専用パーティションに小さなディストリビューションを保持します)。

LVMを使用する場合、lvdisplayまたは別のLVM関連のコマンドでボリュームグループの名前を見つけます。それをアクティブにします(そうしないと、マウントしようとするとmount: special drive /dev/volumegroupname/partition does not existエラーが発生します):

vgchange -a y volumegroupname

次に、通常の/パーティションをマウントします。 /mnt

mount /dev/volumegroupname/partition /mnt

いくつかの特別なデバイスもマウントします(別のパーティションにある場合は/bootと同様):

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs /sys /mnt/sys

次に、chrootを通常のディストリビューションに入れます:

chroot /mnt

最後に、GRUB2を再インストールします—コマンドはディストリビューションによって異なる場合があります。これはSlackwareで動作します(ドライブが/dev/sdaの場合):

grub-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

再起動すると完了です。

!選択した回答は機能しません。

これは動作します:

  1. OSを再インストール、「に移動何か他のことをする 」、パーティションテーブルを作成し、
  2. プライマリブートデバイスとしてWindowsパーティションを使用

2番目のステップは必須

/bootを使用しないでください。

別の解決策があるかもしれません:起動中にブートデバイスを手動で変更してみてください。しかし、私はそれがうまくいくとは思わず、まだテストしていません。

これは、17.10を含むUbuntuで持続している長年の問題です。

0
Wolfpack'08