みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Windows7とFedoraのマルチブート設定

お世話になります。

EeePCをWindows7のみからFedoraとのマルチブートにしようと、下記の構成にしました。

sda1 Windows7/NTFS C: (hd0,0) 160GB
sda2 EeePCのリカバリ領域 (hd0,1) 10GB
sda3 EFI
sda4 Extend (hd0,3)
 sda5 /boot (hd0,4) 0.5GB
 sda6 LVM (hd0,5) 78GB

そしてMBRにはWBMを残し、WindowsのC:\にGRUB4DOSを設定し、Windowsは
WBMからそのまま起動、FedoraはWBM経由でGRUB4DOS→Fedora起動としたいです。
既にWBMの設定は無事完了し、Windows7を選択するとそのままWindows起動、
Fedoraを選択するとC:\に入れたGRUB4DOSが起動するようになっています。

まずGRUBコマンドラインで下記のように入力すると、正しく起動しました。

> root (hd0,4)
> kernel /vmlinuz-3.2.9-2.fc16.i686 ro root=/dev/VolGroup/lv_root
> initrd /initramfs-3.2.9-2.fc16.i686
> boot

次に、GRUB4DOSのmenu.lstに上記と同様の内容を書いて、titleを設定したのですが、
メニュー画面で該当項目を選択すると、再起動してWBMの画面に戻ってしまいます。
その際、一瞬エラー表示のようなものが表示されますが、一瞬過ぎて解りません。

そこで質問です。
1.ぶっちゃけ、何がまずかったのでしょうか?
2.エラー発生時に自動で再起動せずフリーズさせる、または
 一定時間で再起動させるにはどう設定すればよいでしょうか?

どうかご教示の程、よろしくお願いします。

投稿日時 - 2012-03-16 18:19:34

QNo.7365761

dmq

困ってます

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

menu.lstにつぎのように書いてみてはどうですか。

title Fedora
root (hd0,4)
kernel /boot/grub2/core.img

> まずGRUBコマンドラインで下記のように入力すると、正しく起動しました。
これで正しく起動したとは、信じられないのですがホントでしょうか。
なぜならコマンドでgrub2のfc16を起動するには
root指定は
set root=
kernel指定
linux
のように入力しなければいけないからです。

投稿日時 - 2012-03-17 21:45:35

お礼

ご回答ありがとうございます。
ビンゴでした。
kernel /boot/grub2/core.imgだとファイルがないと怒られましたが、
kernel /grub2/core.imgで行けました。
WindowsBootManager→GRUB4DOS→GRUB2と三段メニューになりちょっと不恰好では
ありますが、いずれにしてもメニュー操作のみで起動できるようになりました。

>> まずGRUBコマンドラインで下記のように入力すると、正しく起動しました。
>これで正しく起動したとは、信じられないのですがホントでしょうか。
間違いなく起動しました。
こちらは、GRUB2に来る以前の、GRUB4DOSにおける状態の入力です。

投稿日時 - 2012-03-18 01:19:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

:>そしてMBRにはWBMを残し、WindowsのC:\にGRUB4DOSを設定し、WBMからそのまま起動
WBMなどと聞きなれない用語に的外れな回答してもと思い躊躇していました。
MBRにあるブート・ローダーはWindows VISTA/7/8では[NT60 Bootsector]であって、
アクティブな基本パーティション上の[bootmgr]を読み込んでBCDファイルの記述に従ってOSを起動します。

 WindowsOSとLinuxのマルチ・ブート環境を構築する方法は幾つもありますが、
bootmgrからGrub4DOSをチェイン・ロードしてLinuxを起動するには、
1、BCDファイルに"Grub for DOS"エントリーを追加して[grldr.mbr]をチェイン・ロードするように設定する。
2、Windows VISTA/7/8に影響を及ぼさないようにBCDファイルを編集せず、
  代わりに次の三行を記述した[boot.ini]ファイルを作成して起動ドライブに置く。
boot loader]
[operating systems]
C:\grldr.mbr="Grub for DOS"

 上記の1/2では、起動ドライブにgrldr/grldr.mbr/menu.lstの三つのファイルを置いておく。
3、MBRにインストールされたGrub2でbootmgrをチェイン・ロードしてWindowsOSを起動する。
(Windows-PCにLinuxをインストールするときの標準的設定)
4、EasyBCDを利用してBCDファイルにLinux起動エントリーを追加する。
  (この場合、menu.lstは作成しない。)
5、MBRにMBMをインストールする。
  起動時に選択した任意のOSを直接起動する。(任意のOSを既定の起動OSとして設定することも可)
 私は、USB-HD/USBフラッシュ・メモリーにも対応するマルチ・ブート環境を実現しています。

 さて、質問に対して、次のmenu.lstの記述例を参考にしてください、どちらでも起動できるはずです。
default 0
timeout 16

title Fedora-16-i686
find --set-root --ignore-floppies --ignore-cd /boot/grub/core.img
kernel /boot/grub/core.img

title Fedora-16-i686
uuid ご自分の環境に合わせてください
kernel /vmlinuz root=/dev/sda5 ro
initrd /initrd.img

投稿日時 - 2012-03-17 16:16:47

ANo.3

NO.1の補足ですが・・・。
手作業でのGrub(fedora16なのでGrub2ですね)コマンド入力で起動できた、
と書いてありますので、デバイス root(0,4) の指定も正しいものとすれば、
GRUB4DOSのmenu.lstでは root(0,3) と指定してください。
理由は、Grub2ではデバイスのpartition のカウントは 1 origin(カウントは 1 から始まる)ですが
GRUB4DOS(Grub)では 0 origin (カウントは 0 から始まる)だからです。
つまり、menu.lstの記述が適切ではないということになります。
---
質問者さんのレスポンスが遅すぎるので私のフォローは終わりとします。

投稿日時 - 2012-03-17 10:26:51

ANo.2

> 1.ぶっちゃけ、何がまずかったのでしょうか?
UUIDの設定がないとだめなのかです。
「だめ元」で、
/boot/grub2/grub.cfg
の内容を持ってくるとかしてみる。

> 2.エラー発生時に自動で再起動せずフリーズさせる、または
>  一定時間で再起動させるにはどう設定すればよいでしょうか?
レスキューモードで、LiveCDで、
/var/log/sys.log
をのぞきデバッグする。

投稿日時 - 2012-03-17 09:24:30

お礼

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

念のため、/grub2/grub.cfgからuuidを持ってきて、下記のようにmenu.lstを作成しました。
文字コードはISO-8859-1、改行コードはLFのみです。

color blue/green yellow/red white/magenta white/magenta
timeout 10

title Fedora 16
fallback 1
root (hd0,4)
(後にfind --set-root --ignore-floppies --ignore-cd /vmlinuz-3.2.9-2.fc16.i686でも代用可能と判明)
uuid 84885b2a-f8b8-4c45-b772-b2b8ebd97df4
kernel /vmlinuz-3.2.9-2.fc16.i686 ro root=/dev/VolGroup/lv_root rhgb quiet
initrd /initramfs-3.2.9-2.fc16.i686

しかし、起動できませんでした。

ただし、エラー発生時に勝手に再起動する原因は判りました。
GRUB4DOSの2番目のメニューにrebootを入れていたので、
それを削除したところ、止まってくれるようになりました。
その結果、下記のようなエラーメッセージが見れるようになりました。

 Booting Fedora 16

Filesystem type is ext2fs、partition type 0x83
  [Linux-bxImage, setup=0x4000, size=0x459a80]
 Booting ≤€

≡≤€
≡≤€

Error 27: Unrecognized command

Press any key to continue..._

上記エラーで何か心当たりはありますでしょうか?

投稿日時 - 2012-03-18 01:11:41

ANo.1

> まずGRUBコマンドラインで下記のように入力すると、正しく起動しました。

間違いありませんか。
下記のように/bootディレクトリは存在していない環境なのでしょうか。
kernel /boot/vmlinuz・・・
initrd /boot/initramfs・・・

> 次に、GRUB4DOSのmenu.lstに上記と同様の内容を書いて・・・
「同様」とは言え、bootの行は不要ですが・・・。

投稿日時 - 2012-03-16 22:00:54

お礼

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

> 間違いありませんか。
> 下記のように/bootディレクトリは存在していない環境なのでしょうか。

間違いありません。MBR上書き以外はデフォルトのパーティション設定で
インストールしましたが、/bootパーティションにbootはありませんでした。
root (hd0,4) (/bootパーティション)した状態でlsコマンドを打つと
vmlinuzを含んだいくつかのファイルが出てきます。
bootディレクトリはその中にありませんでした。

なお、手作業もメニュー実行もすべてGRUB4DOS上です。
WindowsBootManager(mbr)→[GRUB4DOS(sda1)←ここ]→GRUB2(sda5)→Fedora16
念のためroot (hd0,3)なども指定してみましたが、起動できませんでした。

参考までに、現在のmenu.lstの情報です。
color blue/green yellow/red white/magenta white/magenta
timeout 10

title Fedora 16
fallback 1
find --set-root --ignore-floppies --ignore-cd /vmlinuz-3.2.9-2.fc16.i686
kernel /vmlinuz-3.2.9-2.fc16.i686 ro root=/dev/VolGroup/lv_root rhgb quiet
initrd /initramfs-3.2.9-2.fc16.i686

投稿日時 - 2012-03-18 00:37:07

あなたにオススメの質問