Grub起動時にError17が表示され、ハングアップします。

パピーリナックスを初めて使う方

モデレータ: 暇人, YoN, nyu

new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

Grub起動時にError17が表示され、ハングアップします。

投稿記事 by new_Puppy3 »

お世話になります。

この度ビデオカードを変更する為にWindowsXPとPuppy LinuxのDual bootに戻したところ、下記メッセージが表示されGrubが起動できずにハングアップします。
【メッセージ】
GRUB loading stage1.5
Grub loading, please wait..
Error 17

googleにて検索したところ、下記URLに回答らしき記述があったので、windowsのCDからMBRを修復した後に、Grubを再インストールしたりしましたが、状況は変わりません。
URL : http://www.murga-linux.com/puppy/viewto ... dda61b298e

私の英語力不足で申し訳ありませんが、解決策をご教示頂けます様お願いします。 :(
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: Grub起動時にError17が表示され、ハングアップします。

投稿記事 by みのむし »

>この度ビデオカードを変更する為にWindowsXPとPuppy LinuxのDual bootに戻したところ、...

Dual boot はどのように行っていたのでしょうか?
直接、HDD の MBR に GRUBをインストールしていたのでしょうか?

>Grub起動時にError17が表示され、ハングアップします。

私も英語力は無いので、日本語のページを検索してみました。

「GRUB Error 17」からの復旧事例
http://d.hatena.ne.jp/MarriageTheorem/2 ... 1221935141

GRUB(MBR)が破損してカーネル読み込みができない
http://www.itmedia.co.jp/help/tips/linux/l0522.html
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

Grubのターゲットになっているパーティションに/bootが無い、
もしくはWindowsXPのパーティションがターゲットになっている。(推定)

前回伺った構成から、どうやってデュアルブートに構成したのかを書いていただかなくては誰も回答できません。
viewtopic.php?t=589
viewtopic.php?p=4039
で質問して解決したことは、再度実行されましたでしょうか。

パピーは特にFrugalインストールであれば、どんな構成にもインストール可能ですし、ブートの方法もさまざまです。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

みのむし様、phoo様

ご回答ありがとうございます。

【みのむし様】
ご指摘の質問に回答させて頂きます。
>Dual boot はどのように行っていたのでしょうか?
>直接、HDD の MBR に GRUBをインストールしていたのでしょうか?

⇒以前は、2つのHDDを用いてDual bootさせておりましたが、今回は1つのHDDにパテーションを作成して(hda1:Windows hda2:Puppy Linux)、Dual Bootを行っています。但し、hda2の後ろにlinux swapエリアを確保してます。
以前にDual Bootで皆様のお知恵を借りた経験があるので、今回は下記Manualと同じ環境にして、『Puppyユニバーサルインストーラを使った「Frugal install(質素なインストール)」』マニュアル通りにPuppy LinuxをHDDにインストールしました。
URL : http://www.puppylinux.org/manuals/puppy-40


【phoo様】
ご指摘に回答します。

>Grubのターゲットになっているパーティションに/bootが無い、
>もしくはWindowsXPのパーティションがターゲットになっている。(推定)

GrubはManual通り、puppy Linuxと同じパテーション(hda2)にインストールしました。

>前回伺った構成から、どうやってデュアルブートに構成したのかを書いていただかなくては誰も回答できません。

⇒前回の構成と異なり、HDDを1台のみでパテーションを作成して、『Puppyユニバーサルインストーラを使った「Frugal install(質素なインストール)」』マニュアルと同じ構成にしました。但し、hda2の後ろにlinux swapエリアを確保しました。

viewtopic.php?t=589
viewtopic.php?p=4039
>で質問して解決したことは、再度実行されましたでしょうか。

⇒はい、再度読み返し考えられる事は行いました。


ご指定に回答するだけで恐縮ですが、宜しくご教示頂けます様お願いします。
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

new_Puppy3 さんが書きました:以前は、2つのHDDを用いてDual bootさせておりましたが、今回は1つのHDDにパテーションを作成して(hda1:Windows hda2:Puppy Linux)、Dual Bootを行っています。但し、hda2の後ろにlinux swapエリアを確保してます。
viewtopic.php?p=4039
の際にもご指摘した内容ですが、お使いのMBのBIOSに8GBの壁があるため、
第2パーティション(推定8G超)にある/bootディレクトリがGrubから見えないのだと思います。
この構成(BIOSに8GBの壁あり、HDD1台でデュアルブート)なら、SWAPも含めるとたぶんパーティションが4つ必要になります。
第一パーティションはブートローダ専用でFAT32がいいでしょう。サイズは16M〜64M程度でいいでしょう。
第二パーティションはext2かext3でパピー用。サイズは4GB程度でしょうか。
第三パーティションにWindowsをインストール。
第四パーティションがSAWPという構成になるでしょう。
パピーのCDで起動しGPartedで上記のパーティションサイズを設定、
Windows>パピーの順にインストール。
Grubのファイルは第二パーティションに置いて、Grubを第二パーティションの先頭にインストール。
NTLDRからGrubに起動を渡せるように調整または別途ブートローダーを導入して双方起動できるようにする。
と言った感じでしょうか。

BIOSが対応していなくても8G超の領域にあるカーネルを起動できるブートローダが必要です。

HDDとブートの関係を理解するなら、ココが参考になると思います。
http://nobumasa-web.hp.infoseek.co.jp/boot_hdd.html

この辺を理解したくない、しょっちゅう構成を変更されるのであればWindowsXPをFAT32にインストール、
同じパーティションにディレクトリを掘ってパピーをFrugalインストール。
Grubはインストールせず、パピーはCD起動というのが簡単です。
Windowsからもディレクトリごとパピーをバックアップできますのでおススメです。
最後に編集したユーザー phoo [ 08/11/18(火) 16:14 ], 累計 1 回
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

よく考えたら、
第一パーティションと第二パーティションが8Gの壁以内に収まるなら
GrubをMBRにインストールして、Grubで起動もできますね。

ブートに必要なOSカーネルがあるパーティションが、
8G以内に収まるように配置を考えましょう。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

phoo 様

色々とご意見をありがとうございます。

ご指摘の様に、全て8GB以下にして色々とやってみたところ、ERROR17では無く、ERROR18が表示されるようになってしまいました。

以前にERROR18が表示された時は、「Error 18 : Selected cylinder exceeds maximum supportted by Bios」とメッセージがついたのですが、今回は何のメッセージもありません。「ERROR18」のみです。
勿論、前回と同じ処置は行いましたが、進展はありませんでした。

どうか、良いお知恵・ご意見を頂けます様お願いします。
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

Error18に戻ってしまいましたか。

/bootがある(はずの)hda2にbootフラグは立っていますか?
CD起動してGpartedで確認してみてください。
もしhda1に立っているようなら、hda1のフラグをはずし、hda2にbootフラグを立ててみてください。
-----
それでも解決しないようなら、端末から以下のコマンドを打って結果を教えてください。

# fdisk /dev/hda

英語で
このDiskのシリンダ数はxxxxだよ。
心配は要らないけど1024を超えているよ。
だからうまくいかない問題が発生するかもね、例えば:
1)起動時のソフトが動かないかもね(例えば古いLILO)
2)他のOSで起動やパーティショニングできないかもね(例えばDOSのFDISKやOS/2のFDISK)

こんな内容のメッセージが出て

Command (m for help) :

と出るので p (Pです、HDDの情報を表示)と打ってください。
するとHDDの情報が表示されますのでその内容を教えてください。

情報の下にまた

Command (m for help) :

が出ますので q (Qです、fdiskの終了)とタイプしてfdiskを終了してください。
#
に戻ります。exitで端末を閉じてください。

ここに情報を貼り付けるためにコピーしたいなら

# touch /root/test  →(/root/testという空ファイルを作成)
# fdisk /dev/hda > /root/test  →(fdisk /dev/hdaの結果を/root/testに出力)
p  →(上と同じfdiskのコマンド)
q  →(上と同じfdiskのコマンド)
とすれば/root/testに出力されます。
この場合端末の画面には何も表示されません。

あとhda2の/boot/grub/menu.lstの内容もお願いします。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

phoo様

返信が遅れて申し訳ありません。
ご指摘頂いた内容に対する結果を報告させて頂きます。

【ご指摘1】
>/bootがある(はずの)hda2にbootフラグは立っていますか?
>hda1のフラグをはずし、hda2にbootフラグを立ててみてください。
⇒Grubが起動せず、「 PRESS A KEY REBOOT 」と表示されて、Keyを押すと再起動します。

【ご指摘2】
>HDDの情報が表示されますのでその内容を教えてください。
[実施内容]
#fdisk /dev/hda

Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Command (m for help):p

Device Boot Start End Blocks Id System
/dev/hda1 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda4 2551 4865 18595237+ 5 Extended
/dev/hda5 2551 3952 11261533+ b W95 FAT32
/dev/hda6 * 3953 4449 3992121 83 Linux
/dev/hda7 4450 4865 3341488+ 82 Linux swap / Solaris

Command (m for help):q

#exit

以上の表示内容が表示されました。
今更ですが、clinder sizeは1024以下である必要がある事は分っておりましたが、それはLinux エリアにのみ適応するもので、NTFSは関係無いと考えておりました。

ただ、/dev/hda1を再分割する事は出来ず(行おうとしたのですが、パテーションの数はあ4つまでとAttention Messageがでたので、行っておりません。)、苦肉の策として拡張領域を使用しております。

宜しくご意見・ご回答を頂けます様お願いします。

質問している立場でありながら対応が遅れまして、本当に申し訳ございません。
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

new_Puppy3 さんが書きました:Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
このHDDには4865のシリンダ数がありますね。
そして、/bootディレクトリの置いてあるパーティション全体が1024シリンダ内に収まらなければなりません。
WindowsのNTLDR(Windowsのブートローダ)も1024シリンダ内になければなりません。
そこで私のアドバイスでは

hda1 FAT32でサイズは16M〜64M程度。NTLDRだけが置かれる。
hda2 ext2かext3でパピー用
----ここまでが1024シリンダ内----
hda3 Widows用パーティション
hda4 LinuxSWAP


と記載したはずです。
(hda3とhda4は拡張領域を使っても問題ありません)
ただしパーquote="new_Puppy3"]設定されていませんね。
new_Puppy3 さんが書きました:Device Boot Start End Blocks Id System
/dev/hda1 1 2550 20482843+ 7 HPFS/NTFS
/dev/hda4 2551 4865 18595237+ 5 Extended
/dev/hda5 2551 3952 11261533+ b W95 FAT32
/dev/hda6 * 3953 4449 3992121 83 Linux
/dev/hda7 4450 4865 3341488+ 82 Linux swap / Solaris
hda1がWindowsXPで、既に1024シリンダを超えていますので、
その後ろにLinuxパーティションを作成して/bootを置いても、Grubからは読みに行けません。
(現在/bootディレクトリはhda6にあるんですよね)
つまりHDD全体を消去して環境を再構築しなえればなりません。

どうしてもこの構成を壊さずにパピーを起動するならCD起動、またはFD起動しかありませんね。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

phoo様

早速のご回答ありがとうございます。 :)

ご指摘の様に
hda1(c:) : Fat32 64MB
hda2(d:) : Ext2 3.8GB
hda3(e:) : NTFS 20GB
hda4     : Linux_swap 4.0GB

に変更しました。

その結果、見事にGrubが起動してMenu画面までいきました。その後、Puppyの起動については問題は無いのですが、WinddwsXPが起動しなくなってしまいました。
多分、「da1 FAT32でサイズは16M〜64M程度。NTLDRだけが置かれる。」とご指摘を受けた意味を取り違えているのだと思います。私は、単純に、Windowsでは見れないntldr fileをpuppy画面にてhda1(c:)に移動させただけですが、他に何か実施事項が必要なのでしょうか?必要なならば誠に恐縮ですが、具体的に実施事項をご教示頂けます様お願いします。

Windowsを起動させた時は以下のError Messageが表示されます。

##################################
Booting 'Windows (on /dev/hda1)'

rootnoverify (hd0,0)
makeactive
chainloader +1

This is not a bootable disk. Please insert a bootable floppy and press any key to try again ...

##################################


要は、システム起動Diskでは無いと言っているのだと思うのですが、「ntldr」があるのはda1(c:) ですので・・・。 一応 hda3(e:)から起動するようにしましたが結果は同じでした。


以下に、/boot/grub/menu.listを記しますので、宜しくご教示頂けます様お願いします。

【menue.list】
# GRUB configuration file '/boot/grub/menu.lst'.

# generated by 'grubconfig'. Wed Nov 26 10:57:10 2008

#

# The backup copy of the MBR for drive '/dev/hda' is

# here '/boot/grub/mbr.hda.9821'. You can restore it like this.
# dd if=/boot/grub/mbr.hda.9821 of=/dev/hda bs=512 count=1
#
# Start GRUB global section
#timeout 30
color light-gray/blue black/light-gray
# End GRUB global section
# Other bootable partition config begins
title Windows (on /dev/hda1)
rootnoverify (hd0,0)
makeactive
chainloader +1
# Other bootable partition config ends
# Linux bootable partition config begins
title Puppy Linux (on /dev/hda2)
rootnoverify (hd0,1)
kernel /puppy400/vmlinuz pmedia=idehd psubdir=puppy400 ide=nodma acpi=off
initrd /puppy400/initrd.gz
# Linux bootable partition config ends
# Other bootable partition config begins
# title Windows (on /dev/hda5)
# map (hd0,0) (hd0,4)
# map (hd0,4) (hd0,0)
# rootnoverify (hd0,4)
# makeactive
# chainloader +1
# Other bootable partition config ends
# Other bootable partition config begins
# title Windows (on /dev/hdb1)
# map (hd0) (hd1)
# map (hd1) (hd0)
# rootnoverify (hd1,0)
# makeactive
# chainloader +1
# Other bootable partition config ends
#title Install GRUB to floppy disk (on /dev/fd0)
#pause Insert a formatted floppy disk and press enter.
#root (hd0,1)
#setup (fd0)
#pause Press enter to continue.
#title Install GRUB to Linux partition (on /dev/hda2)
#root (hd0,1)
#setup (hd0,1)
#pause Press enter to continue.
#title - For help press 'c', then type: 'help'
#root (hd0)
#title - For usage examples, type: 'cat /boot/grub/usage.txt'
#root (hd0)



################################
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

new_Puppy3 さんが書きました:私は、単純に、Windowsでは見れないntldr fileをpuppy画面にてhda1(c:)に移動させただけですが、他に何か実施事項が必要なのでしょうか?
はい、Windowsは再インストールではなく、ntldrだけをパピーでコピーしたんですね。
説明不足でした、すみません。
hda1(C:)に必要なファイルは
boot.ini
bootfont.bin
CONFIG.SYS
IO.SYS
MSDOS.SYS
NTDETECT.COM
ntldr
の7つのファイルです。
さらにboot.iniにWindowsの起動情報を書いてあげる必要があります。
(Grubのmenu.lstと同様です)

このHDD構成にWindowsを再度インストールすれば上記は自動でやってくれます。
データのバックアップがあるならhda3(D:)にWindowsを再インストールするのが早いです。

Windows95/98/Meは原則HDDの先頭パーティションにしかインストールできません。
WindowsXPをデュアルブートにするため2番目以降のパーティションにインストールすると
旧バージョンWindowsのパーティションに上記7つのファイルが置かれ、
NTLDRブートローダーで異なるバージョンのWindows同士でのデュアルブートが可能になります。
しかしHDDの先頭パーティションがWindows互換でないとWindowsXPがインストールできません。

LinuxをインストールしてGrubをインストールするとMBRは書き換えられますが、
GrubからNTLDRに起動を引き継ぐ(Chainload)ことができます。
ただしBIOSに8GBの壁がある場合、
・/bootディレクトリのあるパーティション
・NTLDR他の7つのファイル
が、いずれも1024シリンダ内に収まっている必要があります。

先頭パーティション(hda1)がWindows互換、/bootディレクトリのあるパーティションが1024シリンダ内
という制限を両方クリアするためには、この構成が一番です。

ちなみにWindowsでもフォルダオプションで"すべてのファイルとフォルダを表示する"と
"保護されたオペレーティング システム ファイルを表示しない(推奨)のチェックをはずす"
で表示可能です。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

phoo様

ご回答ありがとうございます。

最初に先に申し上げたDrive構成は以下の間違いでした。申し訳ありません。

(正)
hda1(c:) : Fat32 64MB
hda2(d:) : Ext2 3.8GB
hda3    : 拡張領域
hda5(e:) : NTFS 25GB
hda6     : Linux_swap 4.0GB

(誤)
hda1(c:) : Fat32 64MB
hda2(d:) : Ext2 3.8GB
hda3(e:) : NTFS 20GB
hda4     : Linux_swap 4.0GB

早速、ご指摘の様に以下のfile
boot.ini
bootfont.bin
CONFIG.SYS
IO.SYS
MSDOS.SYS
NTDETECT.COM
ntldr
をhda1にコピーした後に、再度hda5パテーションにWindowsXPを再インストールした所、またGrubが起動しなくなり、以下のMessageでストップします。

################
Disk error
Press any key restart
################

Windowsのインストールは、通常通りWindows Diskにて起動してインストールしなおしただけです。

再度、Windowsをパテーションフォーマット(クイック)して、やり直しています。
作業中で誠に申し訳ありませんが何かアドバイスを頂けます様お願いします。
また、hda1にコピーしたboo.iniの変更箇所を教えて下さい。
宜しくお願いします。
new_Puppy3
記事: 42
登録日時: 08/07/13(日) 23:36

投稿記事 by new_Puppy3 »

お世話になっております。
Windowsを再インストールしましたが、結果は同じでした。

以上 報告までに
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

boot.iniの内容は大体こんな感じ。

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)¥WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)¥WINDOWS="Microsoft Windows XP Professional" /fastdetect

赤字の部分のパーティション番号を実態に合わせることだけです。

WindowsXPを再インストールされたならboot.iniの内容は自動で書かれているはずですが。
64Mのhda1(C:)もフォーマットしていますか?(したほうが良い)
WindowsXPをフォーマット再インストールしたならGrubが起動せず、Windowsがまっすぐ起動するようになるはずです。
その後CDのパピーからGrubをMBRに再インストールすればデュアルブートができるはずです。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
返信する