Gentoo Logo

Gentoo GRUBエラー集

目次:

1.  まえがき

謝辞

Earthwingspenetrodeloyaltononepillaairheadnephrosyamakawa ,そして本スレッドで提案してくださった他のすべての方々に深く感謝いたします。

免責

この文書に掲載している例は、あくまで例です。 必ず、あなたのシステムの構成に合わせてパーティション番号を変えてください。 この文書に掲載されている解決法をとる際は自己責任でお願いします。

2.  GRUB loading, please wait...

状況

コード表示 2.1: GRUBの出力

GRUB loading stage 1.5
GRUB loading, please wait...

このメッセージの後、システムが停止します。 GRUBフロッピーを使ってシステムをブートした場合には、この問題は起こりません。

解決法

The_Bellによると BIOSでのブート順を変えるとよいそうです。

フロッピーを一番目にブートしないようにBIOSを設定します。

また、penetrodeは、 CFLAGSの設定が悪い可能性もあると書きました。 現在のGRUBのebuildでは、-fstack-protectorを取り除いていますが、 とにかく、不要なものが無いCFLAGSでgrubを再コンパイルすれば問題はありません。

コード表示 2.2: 適切なCFLAGSをGRUBの再構築に使用する

# CFLAGS="-O2 -march=i686 -fomit-frame-pointer -pipe" emerge grub

3.  GRUB Error 12

状況

コード表示 3.1: GRUBの出力

12 : Invalid device requested.

デバイス文字列の構文は正しいけれども、 正しくないことが原因としか思えないようなエラーが起こった場合にこのエラーが返されます。

解決法

対話型コマンドを使ってブートレコードへgrubをインストールした際に、 grubプロンプトで以下の二行を実行したでしょうか?

コード表示 3.2: 対話型インストールコマンド

grub> root (hd0,0)
grub> setup (hd0)

(hd0,0)をあなたのbootパーティションに置き換え、 (hd0)をあなたの選んだHDDに置き換えなければいけません。 (hd0)とすると、プライマリのマスタに接続している一番目のハードディスクのマスターブートレコードにブートローダをインストールすることをお忘れなく。

4.  GRUB Error 15

状況

このエラーは、初期設定(マスターブートレコードへのGRUBのインストール)の段階、 あるいはシステムをブートしてLinux(もしくは他のエントリ)を起動しようとした段階という、 GRUB設定での異なる二つの段階で起こる可能性があります。

コード表示 4.1: GRUBの出力 - 初期設定

grub> root (hd0,0)
 Filesystem type is xfs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... no

Error 15: File not found

コード表示 4.2: GRUB Output - エントリのブート

Booting 'gentoo Linux'

root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
kernel (hd0,0)/boot/kernel-2.4.20 root=/dev/hda3 vga=792

Error 15: File not found
Press any key to continue...

解決法 - 初期設定

特定のファイル名は発見できないけども、 (ディスクやパーティション情報のような)他のすべての情報はうまくいくときにこのエラーが返されます。

このエラーは、カーネルのイメージファイルが見当たらないことを表していることがよくあります。 参照しているファイルがbootパーティションにあるかを確認してください。

カーネルの正確な名前を調べるためには、 インストールCDからブートし、 (もしあれば)bootパーティションあるいはルートパーティションをマウントしてください。 そしてGentooシステムへchrootし、どんなカーネルイメージが利用できるかを見るために、利用可能なファイルを一覧表示してください。

コード表示 4.3: カーネルイメージの存在を確認する

# cd /boot
# ls

これで、bootパーティションに置いているすべてのカーネルが一覧表示されるでしょう。 カーネルが見当たらないなら、(genkernelあるいは手動で)カーネルをコンパイルしたかを確認してください。

コード表示 4.4: カーネルの再コンパイル

# cd /usr/src/linux/
# make menuconfig
# make

そして、できたカーネルをbootパーティションにコピーしてください。

コード表示 4.5: カーネルのコピー

# cp /usr/src/linux/arch/i386/boot/bzImage /boot

カーネルの名前が、grub.confファイルに記述しているカーネルの名前と同じであることを確認してください。 また、grub.confファイルのkernelの行が、 カーネルイメージのあるパーティションを(明示的もしくは暗黙に)参照しているかも確認してください。

他に、カーネルあるいはgrubが記録されているディスクをBIOSが無視しているというミスも報告されています。また、grubのステージファイルが保存されているパーティションを、ソフトウェアRAIDのRAID-5(またはストライピング技術)に設定すべきではありません。

解決法 - エントリのブート

まず、あなたが記述したrootsetupの行が正しいことを確認しましょう。

間違いなく正しいなら、あなたは不具合のあるバージョンのGRUB(0.93.20031222)を利用しているかもしれません。 Portageツリーを更新するか、このバージョンのgrubをマスクしてください。

コード表示 4.6: GRUBをマスクする

(chroot環境内でこれを実行してください)
# echo "=sys-boot/grub-0.93.20031222" >> /etc/portage/package.mask
# emerge grub -p

GRUBの作者が薦めるgrub-installを利用することもできます。

コード表示 4.7: grub-installの使用

(bootパーティションを分割して使用している場合は--root-directoryが必要ですが、
それ以外の場合は省略するべきです)
# grub-install --root-directory=/boot /dev/hda

これら全てが失敗したときは、bootパーティションが壊れている可能性があります。 パーティションのエラーを検査してください。

コード表示 4.8: パーティションのエラー検査

(この場合、bootパーティションである/dev/hda1をアンマウントしてから検査してください)
# fsck -y /dev/hda1

5.  GRUB Error 17

状況

コード表示 5.1: GRUBの出力

root (hd0,0)
filesystem type unknown partition type 0x7

Error 17 : Cannot mount selected partition

解決法

要求されたパーティションは存在していますが、 ファイルシステムの種類をGRUBが理解できない場合にこのエラーが返されます。

grub.conf内のroot(x,y)の設定を必ず確認してください。

また、Windowsを起動しようとする場合、grub.confファイルに、 root (hdX,Y)(あるいはrootnoverify (hdX,Y))とchainloader (hdX,Y)+1が記述されているか確認してください。

6.  GRUB Error 18

状況

コード表示 6.1: GRUBの出力

kernel (hd1,4)/bzImage root=/dev/hdb7

Error 18: Selected cylinder exceeds max supported by BIOS

解決法

BIOSの変換領域の限界まで線形ブロックアドレスで読もうとする際にこのエラーが返されます。 BIOSが管理可能な容量(古い(E)IDEディスクでは512MB、一般的なものでは8GB以上の壁があります)よりディスク容量が大きい場合に起こるのが一般的です。

BIOSを更新するか(もしくはそれとともに)、 bootパーティションを先頭へ(あるいは少なくとも適切な範囲で)移動してください。

7.  GRUB GRUB GRUB GRUB GRUB ...

状況

コード表示 7.1: GRUBの出力

GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
  GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
...

解決法

airheadによると、 BIOSにディスクを自動検出させることで問題が起こるようです。 BIOSの項目(訳注:Type項目)をUser Type HDDに設定してみましょう。

また、GRUBをMBRにインストールしてあって、GRUBを再インストールしようとしたが(例えば、ハードディスクを換えるため)、setuprootコマンドを間違って使ったことが原因かもしれません。

8.  Probing devices to guess BIOS drives. This may take a long time.

状況

grubをインストールしている際、次の行を表示した後にハングします。

コード表示 8.1: GRUBの出力

# grub

Probing devices to guess BIOS drives. This may take a long time.

解決法

一本のケーブル上にUltra DMAディスクと非Ultra DMAディスクが接続されているといった、ディスクデバイスの特異な設定が原因だったという報告があります。

9.  GRUBのインストールを開始するとすぐハングする

状況

grubのインストールを開始するとハングします。

コード表示 9.1: GRUBの出力

# grub
(この段階でインストールが停止します)

解決法

フロッピードライブを持っていない場合に、--no-floppyスイッチを使っていますか?

コード表示 9.2: --no-floppyスイッチを使ってgrubをインストール

# grub --no-floppy

10.  Uncompressing Linux... Ok, booting the kernel.

状況

次の行を表示してシステムがハングします

コード表示 10.1: Linuxの出力

Uncompressing Linux... Ok, booting the kernel.

解決法

厳密に言うと、これはGRUBのエラーではありません。 ACPIが、カーネルで有効になっているのに正常に動作していないことが一つの原因です。 BIOSかカーネルでACPIを無効にしてみてください。

11.  GRUBがGRUBプロンプトをすぐ表示する

状況

システムをブートしているとき、 grub.confファイルで定義したエントリのリストではなく、 grubのプロンプトが表示されます。

解決法

bootパーティションをマウントし、grub/grub.confファイルが存在するかを確認してください。

コード表示 11.1: bootパーティションのマウントとgrub.confの存在を確認する

# mount /dev/hda1 /mnt/gentoo/boot
# cat /mnt/gentoo/boot/grub/grub.conf

また、menu.lstシンボリックリンクの存在も確認してください。

コード表示 11.2: シンボリックリンクの確認

# ls -l /mnt/gentoo/boot/grub/menu.lst
lrwxrwxrwx  1 root root 9 Mar  7 14:00 /mnt/gentoo/boot/grub/menu.lst -> grub.conf

これが原因でないなら、シンボリックリンクを再作成してください。

コード表示 11.3: menu.lstのシンボリックリンクを再作成

# cd /mnt/gentoo/boot/grub
# ln -snf grub.conf menu.lst

これも原因でなければ、grubを再インストールしてください。

コード表示 11.4: GRUBの再インストール

(chroot環境内で実行してください)
# grub-install --root-directory=/boot /dev/hda

12.  Could not find device for /boot/boot: not found or not a block device

状況

grub-installを実行してGRUBをインストールしているときに、 次のエラーを受け取ります。

コード表示 12.1: GRUBの出力

# grub-install --root-directory=/boot /dev/hda
Could not find device for /boot/boot: not found or not a block device

解決法

mtabファイルを忘れずに更新してください。

コード表示 12.2: mtabファイルの更新

# grep -v rootfs /proc/mounts > /etc/mtab

13.  GRUBメニューでリターンを押した後、システムが再起動する

状況

システムのブート時にGRUBメニューでリターンキーを押した後、システムが再起動します。

解決法

カーネルで、フレームバッファのサポートを無効にしてください。 これでも駄目なら、APMやACPIを無効にしてください。

14.  GRUBメニューでリターンを押した後、画面が真っ暗になる

状況

システムのブート時にGRUBメニューでリターンを押した後、画面が真っ暗になります。 ただし、システムの反応はあります(例えば、numlockのLEDを切り替えることができます)。

解決法

フレームバッファを無効にして(通常、grub.confからvga=XYZを削除します)、 カーネル設定のプロセッサ・アーキテクチャを確認します。

15.  GRUBイメージが見つからない

状況

システムのブート時に、Gentooのカッコいいsplashscreenが見えません。

解決法

何よりもまず、 grub.confで参照しているsplashscreenファイルが本当に存在するのかを確認してください。 存在した場合、grubのebuildを確認してください。 おそらく、あなたが使っているバージョンで、splashイメージ用のパッチがコメントアウトされているでしょう。

16.  二番目のハードディスクドライブからのWindowsのブートに失敗する

状況

Windowsのエントリを選択した後、特にはっきりとした理由もなしにシステムがブートを拒否します。

解決法

cyrillicは、 grub.confのWindowsのエントリを以下のように変えることで異なる順序でディスクを "map"できることを教えてくれました。

コード表示 16.1: Mapping disks

title Windows XP
  map (hd0) (hd1)
  map (hd1) (hd0)
  chainloader (hd1,0)+1

17.  GRUBのインストール時に、セグメンテーション違反が起こる

状況

下に記述されている状況は、grub-0.95.xでブートセクタにgrubをインストールする場合のみ関連します。

コード表示 17.1: GRUBのインストール

grub> root (hd0,0)

grub> setup (hd0)

Segmentation fault

解決法

この問題に関連したバグは発見され、grub 0.96で修正されました。 また、grub 0.94 r1やgrub 0.94 r2では正常に動作することもわかっています。 これを踏まえても動かなかった場合、 現在のamd64のstableやx86のunstable(~x86)であるgrub-staticをemergeしてみることができます。 バグ#79378 へ追加情報をチェックアウトしてください。



印刷

ページの更新日 2008年 1月 13日

この翻訳はすでにメンテナンスされていません。

要約: このエラー集の目的は、人々が直面するGRUBの問題やエラーを一覧にすることです。 これらの解決法はすべて、Gentoo Forumの多くの利用者の協力によって得られました。

Hartwig Brandl
Thread Reviewer

Ioannis Aslanidis
Editor

Sven Vermeulen
Editor

池田 健吾
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.