
Ubuntu日本語フォーラム

ログインしていません。
こちらで質問をさせていただきます。
現在、Wubiを使用してWindows7とUbuntu 10.04のデュアルブートを行っているのですがWubiの不具合が多く、パーティションを切った正式な方法で再度、UbuntuをHDDにインストールさせたいのですが
grubに関しての質問です。
HDD 320GB
1.Windows 7 (NTFS) 200GB
2.Ubuntu (ext4) 100GB
windowsのMBRを基準にしてインストールを行いたいです。
PC起動
↓
MBR(日本語)が表示され
Windows 7
Ubuntu
二番目のUbuntu選択
↓
grubが起動し、Linuxのカーネルを選択
といったようにさせたいです。
HDD内にはWindows 7が入っているので普通にUbuntuをインストールしてしまうとgrubが上乗せされてしまうと思います。
その際、ブートローダのインストールデバイスをHDDの2番目のパーティションに選択すれば可能でしょうか?
(普通は(hd,0)だったと思うのですが)
また、可能でしたら以降のgrubアップデート時の注意点等があれば教えていただきたいです。
オフライン
PC起動
↓
MBR(日本語)が表示され
Windows 7
Ubuntu
二番目のUbuntu選択
↓
grubが起動し、Linuxのカーネルを選択
といったようにさせたいです。
MBRのプログラムにはOSを選択する画面を表示する機能はありません。
MBRはアクティブな領域のブートセクタの位置をBIOSに示すだけです。
デュアルブートの為にはwindwosブートマネージャかgrubのような
選択機能があるブートマネージャかブートローダを経由しなければなりません。
したがってMBRをオリジナルのままデュアルブートするにには
1.MBR→windowブートマネージャ→winload.exe→windows
→grub→ubuntu
2.MBR→grub→windwosブートマネージャ→winload.exe→windows
→ubuntu
のいずれかを選択しなければなりません。
いずれにしてもgrubはubutnuをインストールする領域のブートセクタにインストールします。
1.はBCDという設定書類を編集して手動でgrubへのエントリーを追加する必要があります。
easybcdを使うと楽でしょう。
2.はubuntuをインストールした領域をアクティブにします。
grubにwindowsの領域のブートセクタへのエントリーが自動的に追加されますので
オートマティックでデュアルブートになります。
(もちろんubuntuの領域が基本領域である必要があります。)
その際、ブートローダのインストールデバイスをHDDの2番目のパーティションに選択すれば可能でしょうか?
(また、可能でしたら以降のgrubアップデート時の注意点等があれば教えていただきたいです。
はい、2番目のっていうか、ubuntuをインストールした領域を選択します。
grubのアップデートは特に注意は必要ないと思います。
オフライン
早くも返答ありがとうございます。
easybcdは使用したことがありますのでバックアップを取りつつ実行したいと思います。
また問題が起こってしまったらこちらで質問させていただきます。
オフライン
すみません
さっそく問題が発生しました。
grubのインストール先が
HDD(/dev/sda)とwindows(/dev/sda1)の二つしかありませんでした。
現在はしょうがなく、/dev/sdaにインストールさせましたが
やはりgrub->windowsMBR->windows起動
という仕様になってしまいました。
grubのインストール先はどうすればいいでしょうか?
もう一つパーティションを切った方がいいでしょうか?
1.Windows
2.grub用(未フォーマット)
3.Ubuntu
オフライン
現在はしょうがなく、/dev/sdaにインストールさせましたが
やはりgrub->windowsMBR->windows起動
という仕様になってしまいました。
いや、そうではなくて貴方はgrubをMBRに上書きしてしまったのですよ。
だからwindowsMBRというものはもう存在しません。
(MBRのプログラムはIBMがPC/AT互換機の仕様として定めたもので
windwosMBRなどと呼ぶのはかなり語弊があるのですが。)
現在のwindowsのブートの機序は
grubからwindwosの領域のブートセクタを経由して->ウィンドウズブートマネージャ
->winload.exe->windows起動となってるはずです。
もうブートセクタにgrubをインストールする意味はありません。
そのままお使いください。
どうしても元々のMBRに戻したければwindows7のインストールディスクで起動して
bootrec /fixmbrでmbrを修復した後に
ubuntuの領域のブートセクタへgrubをインストールしなければなりません。
もしwindows7のインストールディスクをお持ち出なければちょっと厄介かも。
オフライン
やはりgrub->windowsMBR->windows起動
という仕様になってしまいました。
grubのインストール先はどうすればいいでしょうか?
MBRをWindowsのものに書き戻して再チャレンジということでしょうか?
それでしたら
$ sudo grub-install -f /dev/sda2
$ sudo update-grub
パーティションエディタを起動して/dev/sda2 にbootフラグを立てる。で解決しないでしょうか。
オフライン
MBRに関してはいろいろ試したことがあるので
一応インストールディスクとMicrosoft公式のツールでUSBにコピーさせているものと2つあります
再度チャレンジしてみたいのですが
grubのインストール先を変更
$ sudo grub-install -f /dev/sda2
$ sudo update-grub
その後、MBRに上書きしてしまったgrubを削除してMBRを修復
windowsからツール等を使用してMBRの表示の方に/dev/sda2のエントリーを追加
といった手順でよろしいのでしょうか?
できればもう少し詳しく教えていただきたいです。
オフライン
ubuntuが基本領域(通常は/dev/sda1~/dev/sda3 拡張領域を作成していない場合は/dev/sda4 も含みます)にインストールされている事が前提です。
/dev/sda2 のUbuntuを起動して/dev/sda2にGRUB2をインストールしgrub.cfgを更新させて起きます。
$ sudo grub-install -f /dev/sda2
$ sudo update-grub
GPartedを起動して/dev/sda2を右クリック。
「フラグ」を選択して[boot]にチェックを入れて閉じる。
HDDのMBRをWindowsのものに書き戻す。
再起動。
オフライン
間違い。
MBRにパーティションテーブルが含まれている場合はブートフラグも書き戻されるので、手順としてはHDDのMBRをWindowsのものに書き戻してから、GPartedでbootフラグを/dev/sda2 に付ける。です。
フラグの確認はコマンドpartedで出来たはずですが、GPartedで2度ほど/dev/sda2 と/dev/sda1 と交互に変更させてやればフラグの2重書き込みの心配も無いと思います。(fdiskはbootフラグを重複させてしまう)
オフライン
grubのインストール先を変更
$ sudo grub-install -f /dev/sda2
$ sudo update-grub
その後、MBRに上書きしてしまったgrubを削除してMBRを修復
ここまでは間違いありません。
windowsからツール等を使用してMBRの表示の方に/dev/sda2のエントリーを追加
といった手順でよろしいのでしょうか?
重ねて申し上げますが、MBRにはOSの選択やそれを表示する機能はありません。
MBRにエントリーを追加することは不可能です。
/dev/sda1がアクティブなら/dev/sda1のブートセクタに処理が渡りますし、
/dev/sda2がアクティブなら/dev/sda2のそれに処理が渡ります。
これは選択の余地がありません。
OSの選択の機能があるのはウィンドウズブートマネージャかgrubです。
いずれかを使ってOSを選択することになります。
ウィンドウズブートマネージャを使う場合は/dev/sda1をアクティブにして
easybcdなどでbcdにgrubへのエントリーを追加します。
(ウィンドウズブートマネージャは直接linuxを起動できませんので必ずgrub経由です。)
grubを使う場合は/dev/sda2をアクティブにすれば自動的にデュアルブートができます。
オフライン
sempookさん
すみません、癖でMBRと書いてしまいました。
現在、MBRを修復しました。
hir0さんが書かれた
GPartedでbootフラグを/dev/sda2 に付ける。
というのはUSBもしくはインストールディスクからUbuntuを起動させ、HDDの/dev/sda2にbootフラグをつければよいのでしょうか?
オフライン
追記です。
現在は/dev/sda1にbootと表示されています。
こちらは何もしなくてよろしいのでしょうか?
オフライン
bootフラグを変更しましたが
黒い画面のまま起動しませんでした
grubもインストールさせていませんが
/dev/sda2にbootフラグを付けてしまったら
ウィンドウズブートマネージャが起動しないのではないのでしょうか?
オフライン
ごめんなさい。
私が書いているのはMBRを含め、Windowsに変更を加えずにデュアルブートを行う方法です。
方法としては#8と#9を読んでください。
#10に説明が書かれているので読んでください。
>/dev/sda2にbootフラグを付けてしまったら
>ウィンドウズブートマネージャが起動しないのではないのでしょうか?
この質問の答えは#2を読んでください。
質問の内容が#1に書いてあるように「Windowsのブートローダーから起動したい」、つまりWindowsのメニュー選択画面からUbuntuを起動したいのでしたら#2にあるようにWin7のメニューにエントリーを追加して抜き取ったPBRかgrub4dosのgrldrを使用するとお望みの状態になるかと思います。
オフライン
現在の状況は
HDD
1.windows 7
2.ubuntu
MBR->windowブートマネージャ->Windows 7起動
といった状態で、grubをどこにもインストールしていません。
/dev/sda2へのインストールも不可能でした。(エラーは後日、記載します)
なのでWindows 7しか今のところ起動できません。
easybcdを使用する際、追加するエントリーの情報(BCD IDやBootloader Pathなど)はどのようにして得たらよいでしょうか?
オフライン
エラーコードです。
$ sudo grub-install -f /dev/sda2 /usr/sbin/grub-probe: error: cannot find a device for /boot/grub (is /dev mounted?). No path or device is specified. Try '/usr/sbin/grub-probe --help' for more information. Auto-detection of a filesystem module failed. Please specify the mount with the option '---modules' explicitly
ここで2つ質問したいことがあります。
いままでの上記の質問も踏まえて
1.grub2はどこへどのようにしてインストールするか(MBRに上書きさせない)
2.ウィンドウズブートマネージャに追加するエントリーの情報はどこから読み取るのか
この2つをお聞きしたいです。
オフライン
1、RAID でしょうか? RAID は分かりません。
2、https://forums.ubuntulinux.jp/viewtopic.php?pid=24922#p24922
URLのwubiとvistaな所は関係有りません。grub4dosを使用すれば解決しませんか?
オフライン
grub4dosを使用して起動することができました。
ありがとうございます。
たぶんこれが最後の質問になると思うのですが
MBR->ウィンドウズブートマネージャ->grub4dos->grub2->Ubuntuという起動になりますよね?
grub4dosはCドライブ直下のmenu.lstを読み込んで旧grubのように選択して起動できるようになっていますがそれを自動選択することは出来るでしょうか?
menu.lstの中には
title Linux Ubuntu root (hd0,3) kernel /boot/grub/core.img
と書いてあるだけです。
これ一つしかないのですがこれを自動選択することができれば
MBR->ウィンドウズブートマネージャ->Ubuntuを選択
(grub4dosが起動しLinux Ubuntuと表示されるのでEnter)←ここを省略し自動化
grub2起動->Ubuntu
という感じになりますよね?
これは可能でしょうか?
オフライン
https://forums.ubuntulinux.jp/viewtopic.php?pid=74434#p74434
>MBR->ウィンドウズブートマネージャ->grub4dos->grub2->Ubuntuという起動になりますよね?
menu.lst の記述によっては
MBR->ウィンドウズブートマネージャ->grub4dos->Ubuntu になります。
オフライン
できればUbuntuを起動させる前にgrub2を通したいです。
何かあった際、リカバリーモードから起動できるようにもしたいですし。。。
menu.lstを再度編集したのですが今度は適応されなくなりました。
defultやrebootを追加してみたのですが表示は変わらず
オフライン
私もコミュニケーションは不得手な方ですが、投げられたボールを投げ返すと次は違うボールが帰ってくるような、その都度、仕切り直しの様な対話形式でスレッドが成り立っている様に思えて状況が把握しきれていないのと、理解した部分も本当にそうなのか分からない状態です。
#20でgrub4dosを使用してGRUB2からUbuntuの起動に成功していますよね。
menu.lstを再度編集したのですが今度は適応されなくなりました。
defultやrebootを追加してみたのですが表示は変わらず
元に戻せば良いのではないですか?
(grub4dosが起動しLinux Ubuntuと表示されるのでEnter)←ここを省略し自動化
選択したエントリーに制御を渡すまでの秒数を短縮してメニューを非表示、自動で選択される項目を明示的に指定してやる事で望みの状態に近い動作が得られると思ったのですがURLの内容が分からなかったのでしょうか、それともgrub4dosもしくはsony5614さんの環境ではmenu.lstのオプションが適用されないのかな?
オフライン
誤解を招くような書き方をしてすみません。
menu.lst内のroot (hd0,3)
の数値を何度か変えてどの数値で起動できるか試していたのですが
その際、コード全体では
title Linux Ubuntu root (hd0,?) kernel /boot/grub/core.img
というコードにして保存し、実行していました。
数値が0,3で起動できることが確認できたので今度はこのコードに
メニューを非表示にさせるコードや新しくエントリーを追加してみようと思ったのですが上書き保存し、再起動しても反映されませんでした。
起動はするのですがその後に追加したコードすべてが反映してくれないという状況です。
オフライン
いや~、
誤解を招くような書き方をしてすみません。
menu.lst内のroot (hd0,3)
の数値を何度か変えてどの数値で起動できるか試していたのですが
その際、コード全体では
コード:
title Linux Ubuntu
root (hd0,?)
kernel /boot/grub/core.imgというコードにして保存し、実行していました。
数値が0,3で起動できることが確認できたので今度はこのコードに
メニューを非表示にさせるコードや新しくエントリーを追加してみようと思ったのですが上書き保存し、再起動しても反映されませんでした。
いや~、それはいろんな数値を宛がっても起動するはずが無く、、、、、、、、、、、、、
意味が分からず続けているのですたら分野が違いすぎるのでサヨナラです。
オフライン