• ベストアンサー

GRUBでOSのトリプルブートが出来ない

Linuxを始めたばかりの高校生です。 マシンはWin7、64bitの入ったものでマスターHDDはWin7に、スレーブHDDにはSwap,CentOS 5.4, Fedora 12をパーティションを切って入れました。 ところが、GRUBのメニューで選択すると先に入れたLinux OSが起動しません。「Error 15 File not found Press any key to continue......」なるメッセージです。後から入れたものは問題なく起動します。当然Win 7の起動はいずれもOKです。つまりデユアルブートなら問題ありません。 grub.confの内容は以下の通りです。(Fedora 12の場合) default=0 timeout=10 splashimage=(hd1,0)/boot/grub/splash.xpm.gz #hiddenmenu title CentOS 5.4 (2.6.18-164.11.1.el5) root (hd1,0) kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-164.11.1.el15.img title Fedora 12 (2.6.31.5-127.fc12.x86_64) root (hd1,2) kernel /boot/vmlinuz-2.6.31.5-127.fc12.x86_64 ro root=UUID=799e26d1-a3e4-49c6-964d-c0801241d7d9 LANG=ja_JP.UTF-8 KEYBOARDTYPE=pc KEYTABLE=jp106 rhgb quiet initrd /boot/initramfs-2.6.31.5-127.fc12.x86_64.img title WINDOWS 7 rootnoverify (hd0,1) chinloader +1 Error 15の理由がgrub.confの記述のやり方が悪いのか検索で調べましたがまだ判っておりません。 どうか解決策を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.9

> これはkernelが新しいものに変わったからでしょうか? そうです。 既定値では、kernelの世代管理は、3世代管理となっています。 4世代目は、古いのが削除されます。 できてよかったです。 でわでわ。

nao3020
質問者

お礼

>既定値では、kernelの世代管理は、3世代管理となっています。 >4世代目は、古いのが削除されます。 これも初耳です。今回は大変貴重な勉強をさせて頂きました。 有難うございました。

その他の回答 (8)

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.8

LINUXを二つLVMでインスールしたことがないので、検証していませんが、単純ではないと思われます。 これがいたずらしているのは、間違いないと思われます。 LVMでインストールしたことが一度だけありますが、パーティションがいまひとつはっきりした形で表示されないことです。 LVMでも、/bootパーティションを作るのです。 理由は、プログラムが暴走して、壊した場合でも、起動だけは確保するために、起動に関する重要な、 grubや、grub.confや、kernelといったものを保護するためです。 そのため、/bootパーティションを独立させています。 よってやっていることは同じなのです。 確かに、/bootのパーティションは作られているのですが、102MBとして独立したパーティションなのです。 この独立したパーティションであっても、正式には、これを隠したようにしか見せないことで、非常にデバックしにくいといったことが発生します。 これらの理由により、例の、root (hd1,x)の「x」の値が、LVM一つのときは、うまくいくが、 二つになったときにいたずらしているような気がします。 この「x」は、当然/bootパーティションのパーティション番号です。 ここは、当方の回答番号1と4だけを信じて作業を進めてみてください。 ちなみに、スレーブのHDDは、何GBありますか。

nao3020
質問者

お礼

yakan9さん、お陰様にて昨夜仰られた様に何度かトライして出来上がりました。 キーポイントは何度も言われていた通りに /boot のパーティションを作る事でした。 Fedora: /boot 100MB, / 約240GB CentOS: /boot 100MB, / 約240GB swap: 15GB (物理メモリが8GBなのでその約2倍) 一個のHDDに5個のパーティションですからCentOSは拡張になり/bootと / は論理パーテイションと云う事でしょうか。 何度も再起動してみましたが、無事に3種類のOSが無事に立ち上がります。只、Fedoraの場合はyum updateでメニューが二つ出来てしまいましたが、これはkernelが新しいものに変わったからでしょうか? どちらでも起動しますので良いのですがメニュー画面が賑やかになります。 余談ですが、別のWin XPのマシンにWinのユーティリティソフトOSセレクターである「System Commander」を使い / のみでインストールしてみたらこちらは /boot を作らなくてもOKでした。LILOを使っている様で全く仕組みが違うのですね。(これは残念ながらWin 7に未対応です) 本当に再度の詳細なご教示のお陰で目的の達成が出来て感謝です。 数冊の身の回りの参考書の何処を見てもこの件(/bootを作る事)に触れられておらず私にとって物凄い収穫でした。 改めて御礼申しあげます。もう数日実験の繰り返しで様子をみたいと思います。 有難うございました。(ポイント締切りは数日後に) 

nao3020
質問者

補足

>ちなみに、スレーブのHDDは、何GBありますか。 500GBあります。これをswap、Fedora、CentOSに分けてます。

noname#110816
noname#110816
回答No.7

現在も質問投稿時点の状態と変わっていないものとすれば、fedora12のgrub.confから判断してHDDデバイスは下記のようになっていると判断します。 現在、Win7およびFedora12は正常に起動できているとします。 質問投稿時点の状態と変化している場合は環境に合わせて読み替えてください。 sda,sdbという記述も環境に合わせて読み替えてください。 マスターHDD(Win7)は (hd0) /dev/sda である。 (hd0,0) /dev/sda1 は「システム予約済み」領域。 (hd0,1) /dev/sda2 はWin7 インストール領域。 スレーブHDD は(hd1) /dev/sdb である。 (hd1,0) /dev/sdb1 はCentOS インストール領域。 (hd1,1) /dev/sdb2 は不明ですがswap領域? (hd1,2) /dev/sdb3 は fedora12 インストール領域。 現時点ではGrubメニューからCentOSが起動できないわけですので、 CentOSをインストールする領域に留意してインストールし直してください。 インストール場所は /dev/sdb1 を指定してください。 ブートローダのインストール場所も/dev/sdb1 を指定してください。(MBRである /dev/sdb を指定しないこと) インストールが完了すれば現在のgrub.confのままでGrubメニューから起動できるはずです。

nao3020
質問者

補足

有難うございます。 再度トライしてみます。

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.6

> そこで恥を承知でスレーブHDDにパーティションを作る具体的な方法が未だ解っておりません 分かりました。 インストールのときに、パーティション作成で、Fedora12の場合、下記のところの http://itpro.nikkeibp.co.jp/article/COLUMN/20091225/342588/?ST=oss の、[13]間で行くと、パーティションの設定があります。 http://itpro.nikkeibp.co.jp/article/COLUMN/20091225/342588/?ST=oss&P=13 「ドライブ全域を使用」の右端をクリックすると、「カスタムレイアウト」を選択します。 するとパーティションを自由に設定できます。 /boot サイズ 100MB フォマット:ext3 / サイズ 20GB フォマット:ext3 swap サイズ 2GB フォマット:特に指定する必要なし ということです。 こうして一旦作ったものは、編集だけでフォマットまで指定できますので、大丈夫です。 このところには、CentOS5.3のインストール例もありますので、5.4もほぼ同じですので、 不明点は、この番号で補足願えれば助かります。

noname#110816
noname#110816
回答No.5

No.3の続きです。 補足要求への回答が明解でないので、再質問です。 CentOS、Fedora12 のどちらがGRUBメニューから起動できないのですか。 どちらにしても、grub.confの記述の単純なミスだと思います。 起動できないOSについて、 initrd に指定しているimageファイルが見つからない、というエラーでしょう。 つまり、ファイル名記述ミスだと思います。 /bootフォルダ内に存在するファイル名と同じファイル名を指定してください。 ls /boot と入力して表示されたファイル名の中に、間違いなく initrd-2.6.18-164.11.1.el5.img および initramfs-2.6.31.5-127.fc12.x86_64.img が存在するかどうか再チェックしてみてください。 grub.confには/bootフォルダに表示されたファイル名を指定してください。

nao3020
質問者

補足

説明不足でした。 >CentOS、Fedora12 のどちらがGRUBメニューから起動できないのですか。 CentOS→Fedoraの順にインストールするとCentOSが起動しない。 Fedora→CentOSの順にインストールするとFedoraが起動しない。 と云う事です。未だLinuxを始めて2週間目なのでこの辺の仕組みが全く判ってない有様です。 grub.confの記述は現在再々実験的に再インストールしてますので違ってるかも知れませんが投稿時は「プリントアウト」紙から此処えの写しかえのタイプミスで、間違いなくel15.imgでは無くel5.imgです。 No.1さんのご指摘も含めて現在、再度この件についての検証もしてみます。有難うございました。

  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.4

もしかして、パーティションを/だけにしていないかです。 / swapの二つしか指定していないのではないでしようか。 これだと、非常に面倒です。 デバッグもうまくいかないといったことになります。 /だけだと、LVM(Logical Volume Manager)という構成をとろうとします。 これはどういうことかといいますと、HDDにはプライマリパーティションを最大4個しか作れません。 それ以上作るためには、プライマリパーティション3個と、拡張パーティション1個の中に、論理パーティションを作っていきます。 この状態を事前に作り出していく操作を取り込んでしまうということです。 ご存知のように、LINUXでは、プライマリであろうと、拡張パーティションの論理パーティションであろうとかまいません。 そこで、前回記載しました、/bootと/パーティションの二つを定義しておくと、LVM構成を作りません。 よって、スレーブのHDDに、 /boot サイズ 100MB / サイズ 20GB /boot サイズ 100MB / サイズ 20GB swap サイズ 2GB として、余裕があれば、それ以上でも良いです。 と5個のパーティションを定義してください。 また、前回書きました、編集を選択し、パーティション番号変更しないようにして、 root権限で、 fdisk -l fdisk半角ブランクハイフォンエル で、パーティション情報を出して、/bootのパーティション番号-1の値が、 root (hd1,x)の「x」に入っているかを確認してください。 Error 15の理由は、たぶんこの値がおかしいのだと思われるからです。

nao3020
質問者

補足

非常に詳細なコメント有難うございます。 >もしかして、パーティションを/だけにしていないかです。 全くその通りで手元の参考書頼りでやってました。 そこで恥を承知でスレーブHDDにパーティションを作る具体的な方法が未だ解っておりません。 >よって、スレーブのHDDに、 >/boot サイズ 100MB >/ サイズ 20GB >/boot サイズ 100MB >/ サイズ 20GB >swap サイズ 2GB >として、余裕があれば、それ以上でも良いです。 >と5個のパーティションを定義してください。 以上はコンソール状態でfdiskコマンドで作るのでしょうか。 インストールのディスクでは出来ないと思うのですが。 未熟な基本質問をお許し下さい。

noname#110816
noname#110816
回答No.3

「先に入れたLinux OS」とは具体的に言えばCentOS 5.4のことですか? 質問内容に書いたgrub.confの内容がタイプミスでないとすれば、 CentOS 5.4のinitrdの記述の el15.img の部分はおかしくありませんか?( el5.img ということはありませんか)

nao3020
質問者

補足

大変申し訳ありません。 仰る通りのタイプミスです。コピペが出来なかったものでメモ書きの写し間違いです。「el5.img」が正しいです。

  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.2

 Dualでも Triple でも基本的には変わりません。 「百聞は一見に如かず」、文章だけでは分かりにくければ参考URLに色々なケースの解説があります。

参考URL:
http://ftlabo.hp.infoseek.co.jp/dualboot/dualboot.shtml
  • yakan9
  • ベストアンサー率54% (2244/4125)
回答No.1

パーティションを作成するときに、以前のものを削除して、作成すると、パーティション番号が変更になります。 それに伴って、root (hd0,x)の「x」の値が変わってくることは、ご存知ですか。 できれば、編集で行い、削除と新規は使わないほうがよいでしよう。 できれば、パーティションを固定してしまっておくことです。 CentOS5.4 /boot CentOS5.4 / Fedora12 /boot Fedora12 / こうしておいて、常に編集を用いて、パーティション番号を変えないことです。 削除、新規で作ると、前の番号が若くなり(小さくなり)、後から作ったパーティション番号が大きくなります。 質問の内容からすると、削除、新規で作っているため、 Windows7を内蔵HDDのマスタであり、LINUXをスレーブとしているようです。 よって後からインストールしたものは、 root (hd1,2) であり、 最初のものは、 root (hd1,0) とすればよいと思います。 このことを踏まえて、再度挑戦してください。 みんな経験する「落とし穴」みたいなものです。

関連するQ&A