debianをUSBメモリにインストールした後に「error: file '/boot/grub/i386-pc/normal.mod' not found」と表示されgrub recueが表示されたときに対処したこと
USBメモリにdebianをインストールし、grubのインストールが完了した後に再起動すると起動後に下記のエラーが表示され、debianが起動できなかった時に対処したこと。
インストールしたisoファイルは下記を使用した。
エラーメッセージ
error: file '/boot/grub/i386-pc/normal.mod' not found
grub rescue >
環境
- PC:dynabook SS RX1 TE120E/2W
- OS:debian9.5.0
- USBメモリ:Sandisk SDCZ430-032G
インストール方法
USBWriterで別のUSBメモリにisoファイルを書き込みインストールした。インストールしたisoファイルは下記を使用した。
パーティション
パーティションは下記のように作成した。(数字はパーティション番号)
- /boot:(521MB/ext4)
- /:(25GB/ext4)
- /tmp:(1GB/ext4)
- /windows:(2GB/fat32)
- /swap:(1GB/ext4)
原因
バグなのかインストール手順が間違っていたのか不明だが、/boot/grub以下に「i386-pc」コピーされないことが原因らしい。
対処した内容
インストール用のUSBメモリでレスキューモードで起動し、/boot/grubに「i386-pc」などをコピーした。
なお、「normal.mod」は下記に保存されていた。
ディレクトリ
- /usr/lib/grub/i386-pc
コピーしたファイル
- i386-pc以下のファイルすべて
- grub-mkconfig_lib
対処方法
下記の方法で対処した。
- インストールメディアを起動
- 「Adbanced option」を選択
- 「Graphical rescue mode」を選択
- 言語を「japanese」で選択
- 地域を「日本」で選択
- キーボードを「日本語」で選択
- ...以下パーティションの選択画面まで適宜選択する
- レスキューモードに移行でインストールしたUSBメモリ上のルートを選択する
上記のとおり第2パーティションをルートにしたため今回は/dev/sdc2を選択したとする- ブートパーティションのマウントは「いいえ」を選択する。
- レスキューモード操作で「インストーラ環境内でシェルを実行」を選択する
- /dev/sdc2が/targetにマウントされる
- /boot(/dev/sdc1)をマウントするためにmkdirでディレクトリを作成する(今回は_boot_とした)
mkdir _boot_⏎- bootをマウントする
mount /dev/sdc1 _boot_⏎- /target/usr/lib/grub以下のファイルをコピーする
cp -R /target/usr/lib/grub /_boot_⏎- シェルを終了する
- システムの再起動を選択
- 再起動後に正しくgrubメニューが表示されるかを確認する。
コメント
コメントを投稿