お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-12-19 20:37:10

SOkada
メンバ
From: 四国
登録日: 2009-01-28

MBR温存、Windows XP、7とのデュアルブート NTLDR?

たびたび取り上げられているトピックと思いますが、目に留めていただければ幸いです。

上司にMBRを書き換えることを大変嫌う方がおります。
ubuntuとWindows XP、7をデュアルブートさせたいのですが、grub 2になって、さてどうしたものかと悩んでおります。

grub 1の時には、grubの1st stageをファイル化して、c:\ におき、NTLDRでWindows XPとLinuxをデュアルブートさせることが出来ました。(Debianですが、)

grub 2の場合、MBRを温存してubuntuとWindows XPをデュアルブートさせることはできるでしょうか?

また、Windows 7の場合はどうすればよいでしょうか?

よろしくお願いします。

オフライン

 

#2 2010-12-19 21:30:24

hir0
メンバ
登録日: 2008-09-28

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

GRUB2でダメな場合はGRUBに変更できます。
$ sudo apt-get install grub
$ sudo grub-install /dev/sd**

GRUB2に戻す場合は
$ sudo apt-get install grub-pc
もしくは
$ sudo apt-get install grub2

別解としては、grub4dosを使用すれば同等の事が比較的楽に達成は出来ます。

ただ、#1の方法もgrub4dosもWindowsの起動メニューにエントリを追加しなければいけません。
XPではテキストエディタからboot.iniを編集しましたがVista移行はコマンドラインからの操作になります。
その辺は上司の方に受け入れられるでしょうか。
GUIでのフリーソフトもあります http://mikasaphp.net/easy_bcd.html 

grub4dos は http://download.gna.org/grub4dos/grub4dos-0.4.4-2009-06-20.zip から。
最悪の場合はPCに起動ディスクを挿して起動させる方法ですと懸念されている問題は大丈夫なはずです。
起動ディスクは使用するPCが対応している必用が有りますが、フロッピー、CD、USBメモリ 等が使用できます。

オフライン

 

#3 2010-12-19 21:48:46

hmatsue
アドバイザ
登録日: 2009-03-10

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

試したことは無いし、良い記事も見つからなかったのですが、EasyBCDのVer 2.0以降あたりがWindows7とgrub2に対応しているとのことなので、PBRにgrub2をインストールしてEasyBCDでgrub2に飛ばす項目を作るのが簡単なのでは無いかと思います。
http://topics.jp.msn.com/digital/lifehacker/column.aspx?articleid=347017
http://www.lifehacker.jp/2010/07/easybcd_20windows7.html

オフライン

 

#4 2010-12-19 22:23:47

Crush
メンバ
登録日: 2009-02-10

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

ブートフラグを見ない仕様外のブートコードなんでしょうか?
あとは、ブートフラグはMBRと同じセクタのパーティションテーブルに含まれるから変更不可?
だとパーティションテーブルもさわれなくなってしまうけど。

元がリカバリの為にブートフラグを無視して決めうちで処理を決めていない限りは、PBRにGRUB\GRUB2を書き込み、ブートフラグをそっちにつけてやれば、GRUBとか、GRUB2が、Windowsをチェインロードできるようにインストールしてくれるんじゃないかと。
多分それが一番「現状維持がされる」とは思います。
それが使えない場合は、それ以外の部分で仕掛けを作るか、外から(リムーバブルデバイスから起動してそこから起こす)起動してやるのが素直な気はします。
むしろ変に途中で仕掛けを作るとその方が別の問題を連れてくる可能性がありそうな気がするんですけども。
特にアップデートとか、インストーラ自身が書かないような設定の場合は、考慮して設定してくれない可能性は出てきます。

オフライン

 

#5 2010-12-20 08:27:56

SOkada
メンバ
From: 四国
登録日: 2009-01-28

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

みなさん、ご回答ありがとうございます。
初心者なもので、お尋ねしていいでしょうか?

hir0さん、
>GRUB2でダメな場合はGRUBに変更できます。
この方法が自分には処理しやすく思います。

grub4dosというのはどのようなソフトでしょうか?また、grldrとは?

hmatsueさん、
すみません、「PBR」の意味を教えていただけないでしょうか?

Crushさん、
ブートフラグは見ています。なるほどブートフラグを付け替えるという方法もありですね。

オフライン

 

#6 2010-12-20 12:53:48

Crush
メンバ
登録日: 2009-02-10

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

PBR=Partition Boot Record.
MBRのブートコードは、ブートフラグをみて、対象パーティションの先頭にあるブートコードを読み込み、処理を移します。
標準のインストールでは、MBRへGrub2の一部と、その後ろを起動する部分を書き込みます。
が、Linuxのカーネルローダは、MBR以外に、パーティションの先頭にもインストールすることができます。
MBRにインストールしたときには見た目の動作は同じですから、「MBRはそのまま」でWindowsパーティションのブートコードではなく、Ubuntuを入れたパーティションのブートコードへ処理を移し、そこで起動するパーティションを選択する様にすれば、MBRのコード自体は変更せずに、起動パーティションの選択が可能になりますし、「インストール後はブートフラグを変更する必要は無いです。」。

オフライン

 

#7 2010-12-21 01:31:34

hir0
メンバ
登録日: 2008-09-28

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

grub4dosは(多分 GRUB for DOS)Windowsで採用されているファイルシステムで試用できるGRUBです。

grldrはgrub4dosのアーカイブを解凍すると存在します。
Cドライブに置き、XPではboot.iniにC:\grldr="メニュー表示タイトル"として起動時に選択することでgrldrに制御が移ります。
grldrはCドライブに有る(正確には優先順位順にmenu.lstを探す)menu.listを探して見慣れたGRUBの起動画面が表示されます。

と、表面的な事しか分かりません「grldrとは?」がgrldrの本質的な事を聞いているのでしたらゴメンなさいです。
身近な所ではwubiに採用されています(カスタマイズされていますが)。

オフライン

 

#8 2010-12-21 10:33:28

physitron
メンバ
登録日: 2010-05-07

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

grub4dos の利用法については Wiki で詳しく解説してありますよ。
参考にしてみてください。

https://wiki.ubuntulinux.jp/UbuntuTips/UsbInstall/BootUbuntuInUsbWithBiosWithoutSupportForUsb/Grub4dos

オフライン

 

#9 2010-12-21 22:56:00

SOkada
メンバ
From: 四国
登録日: 2009-01-28

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

みなさま、どうもご教示有り難うございました。

では、
/dev/sda1 Windows XP (ntfs) C:ドライブ
/dev/sda2 ubuntu 10.04 & grub 2 (ext3)
/dev/sda5 スワップ

のようにインストールし、C:にgrub4dosを導入して
/dev/sda2 の menu.lst をC:\ にコピーすればよろしいでしょうか?

あとは、C:\ の boot.ini の最後に「c:\grldr="grub4dos"」を追記すれば完了となりますでしょうか?

ちょっと自信がありません。
実は、ubuntuをインストールしたことがなく、Debianのインストーラーしか見たことがありません。
パーティショニングで「最大の空き領域を使う」が選択できるか、
インストールの最後に「GRUB ブートローダのインストール」が現れるのか不明です。

今一度、新しいトピックを書き込みますので、御指南いただければ幸いです。

オフライン

 

#10 2010-12-22 00:59:47

hir0
メンバ
登録日: 2008-09-28

Re: MBR温存、Windows XP、7とのデュアルブート NTLDR?

grub4dosを使用する場合ですね。

/dev/sda1 Windows XP (ntfs) C:ドライブ
/dev/sda2 ubuntu 10.04 & grub 2 (ext3)
/dev/sda5 スワップ

(インストール時にGRUBは/dev/sda2 にインストールしておくと困ったときの助けになる場合も有ります。)

grub4dosのアーカイブをダウンロードして解凍。
中に有るgrldrをC:\に置く。
C:\ の boot.ini の最後に「c:\grldr="grub4dos"」を追記、" " に挟まれた部分は起動時のメニュー画面に表示される文字なので任意に変更可。

menu.lst の置き場所はC:\で良いです。
GRUB2はmenu.listの代わりにgrub.cfgを使用していて書式も変更されているのでコピペではダメです。
端末から
$ blkid
を実行して/dev/sda2 のUUIDを調べて<2ae*****-9e17-***-8eb3-35d1c0d6**>と入れ替えて下さい。

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

title        Ubuntu 10.04 (/dev/sda2)Link to the latest kernel
uuid        2ae*****-9e17-***-8eb3-35d1c0d6**
kernel        /vmlinuz root=UUID=2ae****-9e17-***-8eb3-35d1c0d6** ro quiet splash
initrd        /initrd.img
quiet

title        Ubuntu 10.04 (/dev/sda2)latest kernel(recovery mode)
uuid        2ae*****-9e17-***-8eb3-35d1c0d6**
kernel        /vmlinuz root=UUID=2ae****-9e17-***-8eb3-35d1c0d6** ro  single
initrd        /initrd.img


title        Microsoft Windows XP
root        (hd0,0)
savedefault
chainloader    +1

これをコピペして    menu.listとして保存。
指定しているカーネルは最新のカーネルへのリンクなので、Ubuntuのアップデート時にカーネルのバージョンが上がっても自動で最新のカーネルが起動します。
デメリットは、カーネルのバージョンが上がったことによる不具合が出たときは手動で(固定は出来る)変更しなければいけません。

/dev/sda2にGRUB2を入れてgrub4dosからGRUB2を呼び出すことも出来ます。
メリットは通常の使用状態と同じなのでアップデート後の設定などの心配は要りません、良い事も悪い事も、皆と同じだから」。
デメリットはメニューが二度出る2段階の起動になることです、grub4dosの方のタイムアウトを0にすると回避できるかもしれません。

10.04起動時に
$ sudo apt-get install grub
$ sudo update-grub

を実行すれば、menu.listが生成されて(GRUB2からGRUBに変更)コピペしたものをC:\に配置することも出来ます。
メリットはシステムが書き込む設定なので間違いは無いこと。
デメリットはカーネル等の更新時にmenu.listも更新されますが、あくまで/dev/sda2のUbuntu内の/boot/grub/menu.list であって、/dev/sda1の/menu.listでは無い事。

ここを忘れると幾らバージョンが上がってもgrub4dosのmenu.listはっ古いカーネルを呼び出すことになります。
と、色々有りますので気にしなければ何でも無い事ですし、多少なれ気にかかるのでしたらUbuntuを使って行く上で苦にならない(都合の良い)方法を選ぶか、希望を書かれると良いかもしれません。

オフライン

 

Board footer

Powered by FluxBB