debianをUSBメモリにインストールした後に「error: file '/boot/grub/i386-pc/normal.mod' not found」と表示されgrub recueが表示されたときに対処したこと

USBメモリにdebianをインストールし、grubのインストールが完了した後に再起動すると起動後に下記のエラーが表示され、debianが起動できなかった時に対処したこと。

エラーメッセージ

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

環境

インストール方法

USBWriterで別のUSBメモリにisoファイルを書き込みインストールした。
インストールしたisoファイルは下記を使用した。

パーティション

パーティションは下記のように作成した。(数字はパーティション番号)
  1. /boot:(521MB/ext4)
  2. /:(25GB/ext4)
  3. /tmp:(1GB/ext4)
  4. /windows:(2GB/fat32)
  5. /swap:(1GB/ext4)

原因

バグなのかインストール手順が間違っていたのか不明だが、/boot/grub以下に「i386-pc」コピーされないことが原因らしい。

対処した内容

インストール用のUSBメモリでレスキューモードで起動し、/boot/grubに「i386-pc」などをコピーした。
なお、「normal.mod」は下記に保存されていた。

ディレクトリ

  • /usr/lib/grub/i386-pc

コピーしたファイル

  • i386-pc以下のファイルすべて
  • grub-mkconfig_lib

対処方法

下記の方法で対処した。

  1. インストールメディアを起動
  2. 「Adbanced option」を選択
  3. 「Graphical rescue mode」を選択
  4. 言語を「japanese」で選択
  5. 地域を「日本」で選択
  6. キーボードを「日本語」で選択
  7. ...以下パーティションの選択画面まで適宜選択する
  8. レスキューモードに移行でインストールしたUSBメモリ上のルートを選択する
    上記のとおり第2パーティションをルートにしたため今回は/dev/sdc2を選択したとする
  9. ブートパーティションのマウントは「いいえ」を選択する。
  10. レスキューモード操作で「インストーラ環境内でシェルを実行」を選択する
  11. /dev/sdc2が/targetにマウントされる
  12. /boot(/dev/sdc1)をマウントするためにmkdirでディレクトリを作成する(今回は_boot_とした)
    mkdir _boot_⏎
  13. bootをマウントする
    mount /dev/sdc1 _boot_⏎
  14. /target/usr/lib/grub以下のファイルをコピーする
    cp -R /target/usr/lib/grub /_boot_⏎
  15. シェルを終了する
  16. システムの再起動を選択
  17. 再起動後に正しくgrubメニューが表示されるかを確認する。

コメント

このブログの人気の投稿