Gentoo GRUBエラー集
1.
まえがき
謝辞
Earthwings、
penetrode、
loyaltonone、
pilla、
airhead、
nephros、
yamakawa
,そして本スレッドで提案してくださった他のすべての方々に深く感謝いたします。
免責
この文書に掲載している例は、あくまで例です。
必ず、あなたのシステムの構成に合わせてパーティション番号を変えてください。
この文書に掲載されている解決法をとる際は自己責任でお願いします。
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(またはストライピング技術)に設定すべきではありません。
解決法 - エントリのブート
まず、あなたが記述したrootとsetupの行が正しいことを確認しましょう。
間違いなく正しいなら、あなたは不具合のあるバージョンのGRUB(0.93.20031222)を利用しているかもしれません。
Portageツリーを更新するか、このバージョンのgrubをマスクしてください。
コード表示 4.6: GRUBをマスクする |
# echo "=sys-boot/grub-0.93.20031222" >> /etc/portage/package.mask
# emerge grub -p
|
GRUBの作者が薦めるgrub-installを利用することもできます。
コード表示 4.7: grub-installの使用 |
# grub-install --root-directory=/boot /dev/hda
|
これら全てが失敗したときは、bootパーティションが壊れている可能性があります。
パーティションのエラーを検査してください。
コード表示 4.8: パーティションのエラー検査 |
# 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を再インストールしようとしたが(例えば、ハードディスクを換えるため)、setupやrootコマンドを間違って使ったことが原因かもしれません。
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の再インストール |
# 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 へ追加情報をチェックアウトしてください。
このドキュメントの内容は
Creative Commons -
Attribution / Share Alikeライセンスです。
|