- ベストアンサー
マルチブートについて(grubインストール場所の制限?)
Windows系OS2つとLinux(Fedora11)のマルチブートのインストールについてです。 今まで、下記の環境で問題ありませんでした。 # fdisk -l ディスク /dev/sda: 1500.3 GB, 1500301910016 バイト ヘッド 255, セクタ 63, シリンダ 182401 Units = シリンダ数 of 16065 * 512 = 8225280 バイト Disk identifier: 0xec3af889 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 1 3917 31463271 7 HPFS/NTFS /dev/sda2 3918 182400 1433664697+ f W95 拡張領域 (LBA) /dev/sda5 3918 7834 31463271 7 HPFS/NTFS /dev/sda6 7835 47010 314681188+ 7 HPFS/NTFS /dev/sda7 * 47011 47020 76799+ 83 Linux /dev/sda8 47020 50927 31385599+ 83 Linux わかりやすく書き直しますと、1.5TBのHDDの中に、下記の順にパーティションがありました。 sda1 30GB ntfs OS(WinXP) sda5 30GB ntfs OS(WinXP) sda6 300GB ntfs sda7 75MB ext3 (Fedoraの/boot) sda8 30GB ext4 (Fedoraの/) これを起動すると、sda8に入っているgrubのメニューが表示され、FedoraかOtherかを選択できました。 そこでOtherを選択すると次にWindowsのブートメニュー(NTLDR/boot.ini)が表示されて2つのWindowsを選択できるといったシーケンスでした。 コレを今回、次のようにしようとFedoraを入れ直したところ、grubのメニューが表示されなくなりました。 sda1 30GB ntfs OS(WinXP) sda5 30GB ntfs OS(WinXP) sda6 1000GB ntfs sda7 75MB ext3 (Fedoraの/boot) sda8 30GB ext4 (Fedoraの/) sda6を300Gから1Tに変更し、sda7とsda8をその分後ろに移動しただけで、その他の設定やインストール方法などは同じなのですが、grubのメニューが表示できなくなり、起動すると grub > みたいなコマンド入力画面になりOSが起動できなくなりました。ハードウェアの変更もありません。 昔は、パーティション毎のブートセクタが、HDDの先頭から8GB以内にないといけないとか128GB以内でないといけないといった制限があったようで、今回もそういった制限の関係ではないかと調べたのですが、それらしい情報が見つかりません。 これについて原因に何か心当たりのある方、回避方法をご存知の方がいらっしゃいましたらぜひ教えて下さい。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>ちなみに、過去の8Gや128Gの制限ってHDD全体のサイズではなくてパーティションブートセクタ(PBS)の位置の制限でしたよね?よく覚えていないのですが、もしご存知でしたらご教授願います。 確か、そうだったと思います。8GBも厳密には間違った表現で、正確には「先頭から1023シリンダ以内でないといけない制限」ですね。 >また、sda2を基本パーティションにしたり、sda3,4を作成するにはLinuxでやればよいのでしょうか? はい、その通りです。但し、質問者さんの場合は、sda5にある2つ目のXPは動かしたくないわけですよね? もし、sda2の拡張領域を削除できるのであれば、それ以降はKnoppixの中にあるQTPartedやGPartedなどのフリーソフトから「sda2の基本領域化や、sda3,4の新規作成」も可能となるでしょう。 もっとも一番いいのは、HDDをクリーンフォーマットした後にXP1つ目、XP2つ目、Fedoraを順番にインストールしていき、何れも起動を確認してから一番最後に、1TB以上のパーティション[NTFS]をXP上から追加で作成する、といった感じですね。 もしくは、XP1つ目のインストールの前に、HDDのクリーンフォーマットをしてからKnoppix上で「sda3,4の新規作成」など、パーティションの構成を先に済ませておく、といった感じです。(それで、青画面の所では、インストールする基本パーティションのフォーマットのみ行う、と。) あと、ここからは当てずっぽアドバイスですが、以下のようにしてMBR→NTLDR→GRUB→Fedoraといった起動が可能です。(たぶん、変わらないだろうなあ。) (1)質問文の状態から、sda6~sda8をいったん削除。 (2)fixmbrコマンドなどで、MBR→NTLDRの復旧。 (3)sda6について1Tのサイズで確保(Windowsで作成)。 (4)Fedoraをsda7,sda8に入れなおす。 ブートローダをインストールする場所:「ブートパーティションの最初のセクタ」 (5)ブートパーティションの512バイトを保存。(ddコマンド) (6)そのファイルをXP上にコピーし、boot.iniの一番最後にパスなどを追記。 最後に、金銭的にも余裕があるようでしたら、別のHDDを購入して試してみるとか。(今年の初めにも、Barracudaの一部の製品で、ファームウェアによる不具合とかがありましたし‥。) 8日発売の「日経Linux」最新号。何か、関連する記事とか載ってないかなあ。
その他の回答 (6)
- yakan9
- ベストアンサー率54% (2244/4125)
回答番号:No.5 の補足で全て理解しました。 Fedoraのfdisk -lとのこと。 拡張パーティションの中の論理パーティションを、5以上に 設定しているのでしよう。 基本から少し説明します。 MBRの中のパーティションテーブルは、4エントリです。 これはどこからきているかというと、HDDのパーティション構成の キマリからです。 プライマリパーティションは、MAX4個まで、 それ以上パーティション定義するときは、 プライマリパーティション3個、それに拡張パーティション 1個とするキマリがあります。 この拡張パーティションの中には、論理パーティションは、 何個でも作成できます。 ここまでは、ご存知かと思います。 ここで、/boot/grub/grub.confは、論理パーティションでも起動すると思います。 ではなぜ起動しないかというのが、今疑問となっているところです。 単純に仮定してしまえば、1テラバイトの壁があるのではないか ということしかいえないですね。 MBRのパーティションテーブルの壁は、2テラバイトです。
お礼
そうです!Windowsでパーティション作成するとsda5以上が拡張パーティションに設定されるようなんです。 最初の質問文にある状態で、sda6の大きさの違いで起動したりしなかったりというのが疑問なんです。 私も、もしかしたら1TBの壁があるのではないかと思ったのですが、それを裏付ける情報が出てこないんですよね。
- yakan9
- ベストアンサー率54% (2244/4125)
> パーティションエントリについて、私の認識では、 > 基本領域(sda1)*1個とそれ以外は全て拡張領域*1個の中に > 入っているので、全部で2個と思っていますが、正しいで > しょうか? > 質問文の状態から、sda6~sda8をいったん削除し、sda6について > 1Tのサイズで確保し(Windowsで作成)その後にFedoraを > sda7,sda8に入れなおした所、やはりHD起動できなくなりました。 拡張領域をいつの時点で定義したかによります。 また、パーティション定義をFedoraをインストール時点で、 編集で行うか、削除後新規で定義して行うかでパーティション番号の 割り振りが変わり、それを忠実に記載していないため、 MBRのパーティションテーブルの記載内容が読み取れないのが、 現状です。 どのコマンドで、こう表示されましただけでよいはずです。 下手な編集はしないことです。 すなわち、sda3,sda4が定義されているであろう領域の記載を どうアレンジして表示しているかということです。 Fedoraインストール時に、編集でパーティション移動しなければ、 古いほうから、sda1,sda2,sda3といった番号付け直しがあり、 削除、新規の場合は、番号は新しくシーケンシャルに次の高い番号が 割り当てられるといった規則があり、その規則さえも消してしまって アレンジされた番号の割り振り方では、経過すらも見えません。 良かれと思って編集されたのであれば、無意味というよりかえって 判断できなくしているのに気づいてほしいものです。 また、knoppix等で、fdisk -lの内容もないような状態では、 これ以上の回答はできません。 ご自分で、MBRのパーティションテーブルのhexdump等をお取りになって、分析されたし。 パーティションテーブルの表示サイズは、マックス2TBまで表示できます。 512B/セクタとして4バイト32ビット表示として、2テラバイトまで、可能なようです。 1TBを最後尾にすべきだと思います。原因は不明ですが。
補足
>どのコマンドで、こう表示されましただけでよいはずです。 >下手な編集はしないことです。 ちょっとわかりにくいところがあったようですいません。 sda3及びsda4は本当にないんです。#3に補足で記載させていただいたものは本当にfdisk -lの結果そのままです。 省略した部分も再度そのまま記載しますが、 sh-4.0# fdisk -l Disk /dev/sda: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xec3af889 Device Boot Start End Blocks Id System /dev/sda1 1 3917 31463271 7 HPFS/NTFS /dev/sda2 3918 182400 1433664697+ f W95 Ext'd (LBA) /dev/sda5 3918 7834 31463271 7 HPFS/NTFS /dev/sda6 7835 141509 1073744406 7 HPFS/NTFS /dev/sda7 * 141510 141519 76799+ 83 Linux /dev/sda8 141519 145426 31385599+ 83 Linux です。Fedora11のDVDから起動した際のログの出力そのままです。 fdisk -lのコマンドで、こう表示されました。 どこも編集はしていません。 もしかしたら回答者様に伝わっていないのかな?と思われるところは、sda1からsda6までは、ntfsですが、これはWindowsインストール時に作成されるものです。 回答者様の文面を見ていると、ここもFedoraインストール時に作ったように考えていらっしゃるのでは?と思えるのですがどうでしょうか?違ってたらすいません。 Windowsで作成すると特に変なことをせずとも普通にこうなるようなんです。 knoppixについてはすいません今手元にないし使ったことないのでFedoraのメディアで起動した際のfdisk -lの結果をあげたのですが、knoppixのfdisk -lとそんなに違うんでしょうか? Fedora11でもDVD-ROM一枚で起動かけられるLinuxですので問題ないと思っていたのですが、それほど異なる結果が出るのであればすいません。どのような結果が表示できるのでしょうか。
- choconamacream
- ベストアンサー率44% (152/338)
sda3やsda4がありませんよね?(これいかに?) まずははじめに、知識の整理です。 ・8GB制限 →GRUB非対応の古いBIOSや、LILOでも同じく古いバージョンに起因するものであって、最近のLinuxを使用しているのであれば、気にする必要はありません。 ・128GB制限 →これは、XPのService Pack1に起因するものであって、XPのSP2以降やLinuxなどでは全く関係の無いことだったように思う。 基本的に、PCの主電源をONすると、まず最初にBIOSが立ち上がってその直後にGRUBやNTLDRなどのブートローダが読み込まれますが、正確にはGRUBの場合、以下の設定ファイルが読み込まれます。 /boot/grub/grub.conf よって、可能であれば#3さんがおっしゃっているように、Knoppixや他のLiveCDを用いて、Fedoraの起動に成功した場合と失敗した場合のgrub.confの内容を比較してみてください。(もしそこで、何かしらの相違があるのなら、それなりの切り分けができるでしょう。) それでも駄目なようでしたら、私がいつも行っている以下のパーティション構成を参考にしてください。 /dev/sda1 基本 30GB ntfs OS(WinXP) /dev/sda2 基本 75MB ext3 (Fedoraの/boot) /dev/sda5 拡張 /dev/sda6 論理 30GB ntfs OS(WinXP) /dev/sda7 論理 1000GB ntfs /dev/sda8 論理 30GB ext4 (Fedoraの/) ポイントは、メインのWinOSとメインのLinuxOSのbootパーティションを最初の方に配置し、起動の方を最優先にしてからその後ろにデータ領域をいろいろと区切っていく、といった感じですね。
補足
丁寧なアドバイスありがとうございます。 sda6のサイズについては、今のところ960G程度以下のサイズなら成功しています。1T以上のケースではいずれも失敗しています。 そのことから、私はsda7かsda8のパーティションブートセクタが、HDの先頭から1024Gを超えるとダメ?なんて考えましたが、確かにそんな制限は調べても出てきませんでした。 ちなみに、過去の8Gや128Gの制限ってHDD全体のサイズではなくてパーティションブートセクタ(PBS)の位置の制限でしたよね?よく覚えていないのですが、もしご存知でしたらご教授願います。 質問文の構成でsda6のサイズのみ違ういくつかのパターンでgrub.confをいくつか取得したのですが、成功/失敗にかかわらずほぼ同一でした。違ったのはFedoraのkernelを指定している行の"UUID"の値ですが、これはパーティションを作ったときに毎回作成されるIDみたいので、問題ないのでは?と考えています。 パーティションのご提案ありがとうございます。また、 >sda3やsda4がありませんよね?(これいかに?) この辺なんですが、私sda3やsda4を作ったことないんです。 私のいつものパターンとして、一番最初に(HDが真っ白の状態で)WindowsインストールCDより起動し、青背景のパーティションを作る画面で大まかなパーティションを全て作っています。 その画面ではC:から順にD,E,Fと割り当てられていくのですが、後にそれをLinuxで見るとWinで言うC:がsda1で、基本パーティション。 D以降のドライブは全てsda2の拡張パーティションの中の論理パーティションとして作成されているという構造になっているようです。 sda2内のパーティションはsda5~で割り当てられているのでsda3~4はできません。この辺も原因に関係ありそうでしょうか? また、sda2を基本パーティションにしたり、sda3,4を作成するにはLinuxでやればよいのでしょうか? お手数ですがアドバイス願います。
- yakan9
- ベストアンサー率54% (2244/4125)
MBRに保持できるパーティションエントリは、4個という制限は、 あります。 それはクリアされているので、この状態で、CD-ROM一枚で起動かけ られるLinuxで、fdisk -lの状態は、どうなんでしよう。 MBRのhexdumpによる分析をしてみるぐらいですね。 たぶん、1テラを小分けにしてパーティションテーブルを4エントリ つぶしている可能性が高いと思われます。
補足
アドバイスありがとうございます。 回答が遅れてしまって申し訳ありませんです。 パーティションエントリについて、私の認識では、基本領域(sda1)*1個とそれ以外は全て拡張領域*1個の中に入っているので、全部で2個と思っていますが、正しいでしょうか? 質問文の状態から、sda6~sda8をいったん削除し、sda6について1Tのサイズで確保し(Windowsで作成)その後にFedoraをsda7,sda8に入れなおした所、やはりHD起動できなくなりました。 その際にFedora11インストールCDの修復モード(?)みたいので入ったときのfdiskの結果です(前半は同じでしたので省略します) Device Boot Start End Blocks Id System /dev/sda1 1 3917 31463271 7 HPFS/NTFS /dev/sda2 3918 182400 1433664697+ f W95 Ext'd (LBA) /dev/sda5 3918 7834 31463271 7 HPFS/NTFS /dev/sda6 7835 141509 1073744406 7 HPFS/NTFS /dev/sda7 * 141510 141519 76799+ 83 Linux /dev/sda8 141519 145426 31385599+ 83 Linux sda6のサイズ以外に変化はないように見えます。 hexdumpは保存していなかったのですが(あの、バイナリの表示がどうもニガテで(汗))、mbrの512バイトは保存してあります。パーティションテーブルの4つ分を確認するということでしょうか?sda6は特に意図的な分割はしていません。
- 486HA
- ベストアンサー率45% (1013/2247)
私の場合は、一台のパーティションを 1、Windows Recovery Environment Are (Hidden Protected) 2、Windows VISTA Ultimate sp2 3、Windows7 RC 4、Linux (ext3) 5、linux swap ... のように切って使用していますが、ブートマネージャーとして 下記のURLから入手できる「Multiple Boot Manager」を利用しています。 そえぞれのOSのパーティションをリサイズしてもお構いなしです。
お礼
レスありがとうございます。 回答が遅くなってしまいましてすいません。 別のブートマネージャを利用するのもよい手ですね! 今のところはgrubでやってみたいと考えていますので、いよいよ行き詰った時にはぜひ検討してみます。
- biraman
- ベストアンサー率16% (29/174)
GRUBはLilloと違いどこにインストールしても構わないけどインストールされている位置が変わると駄目になる事があるね 極端な話ドライブにデフラグを掛ける事でGRUBがおかしくなる事があるからね もう一度GRUBをインストールし直してあげましょう
補足
書き込みありがとうございます。 質問文に記載したディスク構成ですが、Fedoraの領域は毎回完全に削除してから新たに領域を作成し、Fedoraのインストールも新規インストールで実施しています。 また、質問文では省略してしまいましたがsda6を1.4Tにして同様の症状が出ました。 その際はgrubを(というかOSごと)何度か再インストールしましたが、症状は改善しませんでした。 逆に、300G以下のサイズでも何度か試していますがその場合はいずれも問題なくgrubのメニューが起動しました。 そのため、インストール場所が特定のアドレス以降になると使えないのではないかと考えたのですがいかがでしょうか?
お礼
いろいろとアドバイスありがとうございました。 最初に検討していた構成とは少し変わってしまいましたが、皆様のおかげでなんとか満足いくマシンになりました。 提案していただいた構成案なども取り入れて次のような感じになりました。 /dev/sda1 基本 XP 64bit /dev/sda2 基本 XP 32bit /dev/sda3 基本 Fedora (/boot) /dev/sda4 拡張 /dev/sda5 論理 ntfs(共有データ) /dev/sda6 論理 Fedora (/) パーティション設定には、Fedoraに入っていたpartedを使いました。 事情説明が後回しになってしまいましたが、もともとはメインで使うXPと勉強で使いたいFedoraのデュアルブートでよかったのですが、今回新しいPCを組んだついでにXPを64bit版にしたんです。 そしたら手持ちのSymantec(アンチウィルス)がXP対応と明記されていたにもかかわらず密かに64bit版は非対応だったんです。 32bitにするとせっかく増設した大容量メモリが生かせないし、かと言ってメールをするにはアンチウィルスが必要だったので、64bit対応のアンチウィルスを購入するまでは32bitのXP環境も必要になってしまいました。 Symantecについては事前の確認不足だったと反省していますが、おかげさまでいろいろ勉強になりました いろいろと教えてくださった方々、ありがとうございました。