お知らせ

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

#1 2010-05-12 01:20:46

haruo22
メンバ
From: Canada
登録日: 2009-12-15

GRUB2 をインストールする場所について(直接MBRへ?)

既に自力で解決できたことなのですが、どうも疑問に思うのでこのトピックに書かせて頂いています。

Windows の入っているパソコンに、後から Ubuntu をインストールする場合(デュアル=ブートにするためは)、
Ubuntu をインストールする(予定の)先頭のパーティション(つまり、"/boot"のある部分)に GRUB を入れる、と覚えていました。 
ところがそうしなくても、デュアル=ブート仕様に出来てしまったのが不思議で、ここに書いています。

私のデスクトップパソコンには、ハードドライブが二つ付けてあります。
一つ(/dev/sda)は Windows XP が入っており、もう一つ(/dev/sdb)は Ubuntu 用にしてあります。

つまり、
            boot
/dev/sda1   *    nstp,                Windows XP
/dev/sda2    nstp,                データファイル用( Win, Lin 共有)

/dev/sdb1   *   ext4, /              Ubuntu 10.04
/dev/sdb2       swap     Ubuntu
/dev/sdb3       ext4, /home     Ubuntu

です。

Ubuntu 10.04 をインストールする際、最後のステップで、
GRUB をどこにインストールするか、と訊ねられる画面で、(/dev/sdb)としました。

というのも、下のサイトで、GRUB2 の再インストールの際、番号をつけるなと書いてあったからです。(例えば、/dev/sdb1 等ではなく)
Grub 2 Basics  (13節 「 Reinstalling GRUB 2 from LiveCD 」を参照。)
http://ubuntuforums.org/printthread.php?t=1195275


ところが、インストールが終わって、パソコンを再起動させると、「GRUB loading...   error 15」と出て、
GRUB メニューが現れず、失敗に終わりました。

再度、Ubuntu をインストールしてみました。 
「やっぱり、番号をつけて、/boot (私は、/boot と / を分けていませんので、/ )の場所をしてしないとダメなのかな?」と思い、
GRUB のインストール位置を /dev/sdb1 としました。
でもやっぱり、失敗でした。GRUB のメニューが現れません。

そこで、LiveCD で Ubuntu を立ち上げ、上記のサイトの説明に従い、

   sudo mkdir /mnt/ubuntu
   sudo mount /dev/sdb1 /mnt/ubuntu

として、「Windows のあるドライブ自体の先頭に入れてしまったら・・・」と思って、

   sudo grub-install --root-directory=/mnt/ubuntu /dev/sda

と打ちました。

結果は成功でした。
実際、過去にも何度かデュアル=ブート仕様にするためのインストールをしたことがありますが、
うまくいく時もあり、失敗した時もありました。
どういうときにうまく行って、どういう時に失敗したのかがいまいちよく分かりません。

つまり、デュアル=ブート仕様にするときのインストールでは、上記の様にして、
MBR 自体に書き込んでしまえば良い、ということなのでしょうか?
(つまり、/dev/sda のように、ドライブ番号を指定しない。)

どなたか、御存知の方は、ヒントをください。

オフライン

 

#2 2010-05-12 02:03:28

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

Re: GRUB2 をインストールする場所について(直接MBRへ?)

確かにパーティション(PBR)を指定しないとなっていますね、GRUB2のメッセージでは推奨しないとなって警告がでます。
どちらが正しいのかは置いといて、現実にはPBRへのインストールを必要とします。


デュアルブートにするための? 前知識としては

電源を入れると起動優先順位が一番目のデバイスのMBRが読み込まれる。
この動作は恐らく不変です。

MBRのブートローダー(GRUB)は2つの機能を持ちます。
A)直接カーネル(OS)を起動する。
B)PBRのブートローダーを起動する。


/dev/sdaにGRUBを入れると、別パーティションのlinuxのカーネルを直接起動させてデュアルブート出来ます。
GRUBは直接Windowsのカーネルを起動で着ないのでPBRのWindowsのブートローダーを起動させます。

ここに問題が生じます。
一つは環境によってWindowsのブートローダーを呼び出せない不具合。
次にGRUBで上書き消去されたMBRのブートローダーはリカバリーディスクでは元に戻せない。
この問題のとき、又はMBRのWindowsのブートローダーは触りたくない時に、Ubuntu側はPBRにブートローダーを仕込むことになります。

*ブートローダーの復旧は、XPでは起動ディスクの作成、Vistaでは用意されていない、Win7ではシステムに組み込まれている。

しかし、WindowsのブートローダーはLinuxのカーネルを起動することが出来ず、PBRのブートローダーを起動することも出来ません。
(自社製品同士なら可能)
そこでそれを可能にする方法を用いるときにPBRにGRUBを仕込むことになります。
(他の理由でPBRを使用する場合も有りますが、起動とは少し関係ない)

HDDが2つの場合のデュアルブートは通常/dev/sda にWindowsが入っていますので、/dev/sdb (MBR)にGRUBを入れて、BIOSから起動順位を/dev/sdbが一番さ最初になるようにすれば、お互いのブートローダーはそのまま&上記の可能にする方法等を使わずにすみます。

しかしWindowsは/dev/sdaにインストールされていなければ起動しない場合が有りますのでGRUBの設定ファイルに2行ほど書き足す必要が有るかもしれません。

PBRにインストールする必要は基本的には有りません。

オフライン

 

#3 2010-05-12 09:03:24

funatogawa
メンバ
From: 関東
登録日: 2009-02-01

Re: GRUB2 をインストールする場所について(直接MBRへ?)

こんにちは
① BIOSで起動順序を変更せず、Grub-menuを表示させたいなら、sdaのMBRに入れると思います。これはHDDが2つありますが、Dualbootと同じです。

② 起動の度にBIOSで起動順序を変更し、Windowsのときにはファーストドライブをsdaに、Ubuntuのときにはsdbにできれば、
Grubはsdbに入れた方が簡単です。これは、HDDは2つですが、singlbootと同じです。なお、BIOSに入るキー(たいがいF2か、DEL)を押すかわりに、F8を押すと、起動ドライブの選択画面が出てきますので、そこからも選択できます。

③ ①で起動画面を出したいなら、WindowsのbootloaderにGrubを登録すれば、できると思います。あとからUbuntuを消すにしても、Windowsを消すにしてもトラブルが少ないので、こちらを推奨したいのですが、他の皆さんの意見と違うようです。

オフトピ:私は、もっと簡単にモバイルラックを使い、HDDを換装しています。

オフライン

 

#4 2010-05-12 09:29:58

GHO
メンバ
From: 東京郊外
登録日: 2008-05-07

Re: GRUB2 をインストールする場所について(直接MBRへ?)

HDD を分けてインストールする場合は、基本的には、Ubuntu の入っている HDD の先頭(MBR)に grub2 をインストールしてそこから起動すればいいのですが、インストール前に起動ドライブを変更しておく必要があります。
インストール後に起動する HDD を変更するとエラーで起動できなかったはずです。少なくとも私の環境では失敗しました。

手順としては次のようになるかと思います。
1.BIOS を /dev/sdb から起動するように変更する
2.Ubuntu を /dev/sdb に入れる
3.Grub2 を /dev/sdb(番号は付けない)に入れる
4.再起動して Ubuntu と Windows の起動をそれぞれ確認する

マザーボードとの接続をきりかえてしまって、Ubuntuを入れる HDD が /dev/sda として認識されるようにしてしまい、 /dev/sda から起動するのも手です。
私は Vista とのデュアルブートですが
/dev/sda → Ubuntu 10.04
/dev/sdb → Windows Vista
このような設定で問題なく起動できています。

また、Windows の入っている HDD の先頭にgrub をインストールするのは避けておいた方が無難です。
どちらかの HDD が壊れた時に両方の OS が起動不能になってしまう可能性が高いからです。

オフライン

 

#5 2010-05-13 12:20:35

haruo22
メンバ
From: Canada
登録日: 2009-12-15

Re: GRUB2 をインストールする場所について(直接MBRへ?)

hir0 さん、funatogawa さん、GTO さん、お返事ありがとうございました。

お恥ずかしい話ですが、BIOS をチェックしていませんでした。
BIOSを見ると、/dev/sda(Windows XP 側)がマスター、/dev/sdb(Ubuntu 側)がスレイブでした。
ですから、パソコンのスイッチを入れると、機械が、/dev/sda を最初に読みに行くので、
/dev/sdb にインストールした GRUB2 は、この段階では読まれない、ということですね。
分かりました。

もう少しご意見を聞かせてください。

デスクトップとは別に、ノートパソコンを持っていて、こちらもデュアル=ブート仕様にしてあります。
実はこちらも、/dev/sda に GRUB2 を入れ直しました。

以前、アップデートした後に再起動したら、GRUB2 が壊れてしまい、
GRUB メニューが出なくなったことがありました。 
その時、上記の
Grub 2 Basics
http://ubuntuforums.org/printthread.php?t=1195275
というサイトを見たのです。

私のノートパソコンには、もちろんHDDは一つしかありません。

Device     Boot          System
/dev/sda1            HPFS/NTFS [Win recovery]
/dev/sda2   *        HPFS/NTFS [Win Vista]
/dev/sda3            Extended
/dev/sda4            HPFS/NTFS [storage]
/dev/sda5            Linux swap
/dev/sda6            Linux      [/, Ubuntu]
/dev/sda7            Linux      [/home, Ubuntu]

この時、/dev/sda6 に GRUB2 を入れることが出来ず、
結局、/dev/sda に GRUB2 を入れ直しました。

hir0 さん による投稿:

/dev/sdaにGRUBを入れると、別パーティションのlinuxのカーネルを直接起動させてデュアルブート出来ます。
GRUBは直接Windowsのカーネルを起動で着ないのでPBRのWindowsのブートローダーを起動させます。

ここに問題が生じます。
一つは環境によってWindowsのブートローダーを呼び出せない不具合。
次にGRUBで上書き消去されたMBRのブートローダーはリカバリーディスクでは元に戻せない。

GHO さん による投稿:

また、Windows の入っている HDD の先頭にgrub をインストールするのは避けておいた方が無難です。
どちらかの HDD が壊れた時に両方の OS が起動不能になってしまう可能性が高いからです。

質問1
Windows の入っている HDD の先頭に GRUB2 を入れるのは避けた方が良いということですが、
この場合は、HDD が一つしかありませんから、仕方ない、ということになるのでしょうか?

質問2
それから、XP とは違って、Vista の MBR は書き換えることが出来ない、
と理解していたのですが、/dev/sda に GRUB2 を入れたということは、
Vista の MBR を書き換えることが出来てしまった、ということなのでしょうか?

余談ですが、Vista の MBR が書き換えることが出来ない、
ということだったので、デュアル=ブートにする時、NT loader を使いました。
ですから、パソコンの電源を入れると、
まず、NT loader が立ち上がり、Windows にするか、Ubuntu にするか尋ねられ、
そのあと、GRUB メニューが立ち上がるという仕組みになっていました。

今は、いきなり、GRUB メニューが立ち上がるので、
Ubuntu を始めるステップが一つ減ったので、すっきりした感じになりました。

オフライン

 

#6 2010-05-13 21:00:34

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

Re: GRUB2 をインストールする場所について(直接MBRへ?)

質問1
Windows の入っている HDD の先頭に GRUB2 を入れるのは避けた方が良いということですが、
この場合は、HDD が一つしかありませんから、仕方ない、ということになるのでしょうか?

言葉(名称)の使い方を間違っているかもしれませんが、PCが最初にアクセスするMBRのブートローダーは設定により直接カーネルを起動させるかPBRのブートローダーを呼び出します。

HDDが一つの場合は当然MBRも一つなので、そこに「何のブートローダーを入れるか」と言う選択肢が生まれます。

GRUBの場合はデフォルトでLinuxは直接カーネルを起動してWindowsはPBR(Windowsのあるパーティションの先頭)のブートローダーを起動させます。
GRUBをMBRに入れた場合は上記のような流れです。


WindowsのブートローダーはLinuxのファイルシステムを検知出来ないので起動できませんので「質問2」にあるような対策が必要です。
Windowsのファイルシステム(FAT16,32  NTFS)で動くGRUB「grub4dos」を使うのが個人的に好きです。


質問2
それから、XP とは違って、Vista の MBR は書き換えることが出来ない、
と理解していたのですが、/dev/sda に GRUB2 を入れたということは、
Vista の MBR を書き換えることが出来てしまった、ということなのでしょうか?

正確?な情報としては

>Vista の MBR は書き換えることが出来ない、

「Vista の MBR は新規に書き換えることが出来ない」つまり修復できない。

Windows98,XP はMicrosoft社のダウンロードサイトからツールを入手出来ます。
Vistaではブートシステムが変更になり、ツールの配布も行われなくなりました。
Win7ではOSに組み込まれる仕様になり、どの様な環境のPCでもツールを使用できます。

その他の正規な手段は全ての環境でMicrosoft社のインストールディスクから行う方法と、メーカー製のPCの場合はメーカーがHDDに仕込む等の配慮がされている事を願う?


*Vistaでトラブったときは「修復できない」は純正のブートローダーの正規な配布が行われていないの意味です。

オフライン

 

#7 2010-05-13 22:05:03

GHO
メンバ
From: 東京郊外
登録日: 2008-05-07

Re: GRUB2 をインストールする場所について(直接MBRへ?)

質問1
Windows の入っている HDD の先頭に GRUB2 を入れるのは避けた方が良いということですが、
この場合は、HDD が一つしかありませんから、仕方ない、ということになるのでしょうか?

二つある場合は完全に分ける方がより利点が大きいので分けた方が無難という話です。
HDD が一つの場合はしかたがないでしょう。
ただし、Gurub を使ってOSを起動していた場合、Windows の再インストールをした時は、MBR が上書きされますので、Ubuntu が起動でなくなります。
この場合は LiveCD から起動してGrub を再インストールする必要がある訳ですが、それなりに手間がかかります。
ですから、環境が許せば物理的に分けてしまった方がよりよいと思います。

質問2
それから、XP とは違って、Vista の MBR は書き換えることが出来ない、
と理解していたのですが、/dev/sda に GRUB2 を入れたということは、
Vista の MBR を書き換えることが出来てしまった、ということなのでしょうか?

通常、OSを再インストールすると、自動的にMBRは書きかえられてしまいます。
Vista はMBR のみの修復が難しい(ツールがなかったりする)だけで、クリーンインストールをすれば戻ります(Grubは消えます)。
ですから 「Vista の MBR は書き換えることが出来ない」というのは情報としては正しくはないと思います。

オフライン

 

#8 2010-05-14 15:31:16

jackalope
メンバ
登録日: 2009-01-01

Re: GRUB2 をインストールする場所について(直接MBRへ?)

hir0さん による投稿:

「Vista の MBR は新規に書き換えることが出来ない」つまり修復できない。

http://support.microsoft.com/kb/927392/ja
Microsoftが間違った情報を提供しているとも思えないのですが。

haruo22さん による投稿:

質問1
Windows の入っている HDD の先頭に GRUB2 を入れるのは避けた方が良いということですが、
この場合は、HDD が一つしかありませんから、仕方ない、ということになるのでしょうか?

いいえ。
Grubをsda6にインストールしてVistaのbootmgrでGrubを起動する事ができます。

haruo22さん による投稿:

質問2
それから、XP とは違って、Vista の MBR は書き換えることが出来ない、
と理解していたのですが、/dev/sda に GRUB2 を入れたということは、
Vista の MBR を書き換えることが出来てしまった、ということなのでしょうか?

はい。
MBRはOSに関係なく書き換え可能です。

オフライン

 

#9 2010-05-14 17:09:13

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

Re: GRUB2 をインストールする場所について(直接MBRへ?)

haruo22さんが解釈していた部分
Vista の MBR は書き換えることが出来ない、

書き方が悪かったですね、すみません。  省略されている部分を強調表示で書きます。

jackalopeさん による投稿:

hir0さん による投稿:

「Vista の MBR は新規に書き換えることが出来ない」つまり修復できない。

http://support.microsoft.com/kb/927392/ja
Microsoftが間違った情報を提供しているとも思えないのですが。

hir0 #6 による投稿:

>Vista の MBR は書き換えることが出来ない、

「Vista の MBR は新規に書き換えることが出来ない」つまり修復できない。

Windows98,XP はMicrosoft社のダウンロードサイトからツールを入手出来ます。
Vistaではブートシステムが変更になり、ツールの配布も行われなくなりました。
Win7ではOSに組み込まれる仕様になり、どの様な環境のPCでもツールを使用できます。

その他の正規な手段は全ての環境でMicrosoft社のインストールディスクから行う方法と、メーカー製のPCの場合はメーカーがHDDに仕込む等の配慮がされている事を願う?


*Vista でトラブったときは「修復できない」は純正のブートローダーの正規な配布が行われていないの意味です。

URLは上記の「その他の正規な手段」の手順の説明ですね。

オフライン

 

#10 2010-05-15 00:58:51

haruo22
メンバ
From: Canada
登録日: 2009-12-15

Re: GRUB2 をインストールする場所について(直接MBRへ?)

hir0 さんを始め皆さん、いろいろと教えていただき、ありがとうございました。
私は、Vista の MBR について、誤解をしておりました。

jackalope さん による投稿:

Grubをsda6にインストールしてVistaのbootmgrでGrubを起動する事ができます。

こういう方法があるとは知りませんでした。ありがとうございました。Google で検索すると、いくつかサイトを見つけることができました。

オフライン

 

Board footer

Powered by FluxBB