
Ubuntu日本語フォーラム

ログインしていません。
初めて投稿します。
ubuntuがマルチブートできません。
【ubuntu version】
8.10 Desktop
8.10 Server
【ハードウェア】
自作PC
Mother Gigabyte EP35-DS3R
CPU Intel Core2Duo E8400
Memory 2 x 1GB
CD/DVDドライブ HL-DT-STBD-RE GGW-H20N
HDD 3 x 500GB STA接続
(内訳 2 x 500GBはICH9Rの機能を用いてRAID1 Windows Vista
1 x 500GBにubuntuをインストール )
【起動方法】
Windows Vistaのブートマネージャを使用
【ubuntuのインストール方法】
/dev/sda , /dev/sdb Windows Vistaで使用
/dev/sdc DISKすべてを用いてLVMにてインストール
GRUBは、(hd2,0)にインストール
ddコマンドにて、/dev/sdc1の最初の512バイトをイメージファイル作成
上記のファイルをブートマネージャに登録
【現象】
ブートマネージャより、ubuntuを選択し、実行すると、画面の右上に「GRUB」と出力されたまま、ubuntuのブートシーケンスに移行しない。
Desktop/Serverともトライしましたが、現象かわらず。
オフライン
気づいた点が有りましたので報告です。
GRUBは、(hd2,0)にインストール
ddコマンドにて、/dev/sdc1の最初の512バイトをイメージファイル作成
上記のファイルをブートマネージャに登録
grub のインストールされた /dev/sdc の先頭(hd2,0)512バイトを抜き取りvista にエントリーしてみて下さい。
sdcから呼び出されたgrub が /boot/menu.list にしたがって /dev/sdc1 もしくは /dev/sdc2 の先頭512バイトにアクセスするはずです。
/dev/sdc と /dev/sdc1 これは一見同じようですがパーティションという枠から見ると別な存在となります。
別の回避方としては /dev/sdc1にgrubをインストールすることですが将来的に構成の変更等を考えるとgrubはhd2,0のままの方がいいかも。
オフライン
hir0さん
Replyありがありがとうございます。
早速、トライしてみました。
GRUB Loading stage1.5.
で止まってしまいました。
次に、GRUBのbootCDを作成し、確認してみました。
-----------------------------------------------------
grub> root (hd2,0)
grub> find /boot/grub/stage1
(hd1,0)
grub> find /boot/grub/stage2
Error 15: File not found
-----------------------------------------------------
きちんと、grubが設定されていないと言うことでしょうか?
オフライン
試行錯誤中ですが、RAID構成にしている為、物理デバイスと論理デバイスで、番号が異なるようです。
grubでは、hd1(物理デバイスではhd2)なので、
LiveCDでブートし、menu.lstの(hd2,0)--->(hd1,0)に変更後、
grub > root (hd1,0)
grub > chainloader +1
grub > boot
では正常に起動しました。
その後、LiveCDで起動し、
dd if=/dev/sdc of=ubuntu.bin bs=512 count=1
でイメージファイルにし、Vistaのbootmgrに登録、起動を試みましたが、
GRUB Loading stage1.5.
まま、起動シーケンスに移りません
bootmgrを使用した起動は、現象変わらず。
オフライン
RAIDに対しての知識が無いのですが
hd0とhd1はRAIDで一つのドライブと認識されているので3つ目のHDDはhd1と言うことでしょうか?
そうすると認識されている構成は (hd0,0)(hd0,1)(hd1,0)(hd1,1)[sda1,sda2,sdb1,sdb2]?
しかし #3 でgrub> root (hd2,0)で
Error 21: Selected disk does not exist
が出ていないのは3つ目のHDDの存在を認識している事に。
そしてstage1=(hd1,0)
#4 で chainloader +1 と言う事は
2番目のHDDにgrubをインストールして起動時に呼び出してchainloader +1で次の、すなわち3つ目のHDDのOSの領域にアクセスしていると私は考えます。
はずしているかも、、、
------------------------------------------------------------------
grubのインストールから一度仕切り直したいのでが、もしよろしければ。
HDDのubuntuを起動させます。
ライブCDで「コンピュータに変更を加えないで起動する」を選択して[F6]キーを押すと、画面の下方に「起動オプション」が現れます。カーソルキーで移動して
起動オプション file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/〜......
と有るので「boot=casper」を「root=/dev/sdc1」と書き換えて[Enter]キーを押し、Ubuntuを起動して下さい。
端末を起動させて、
$ grub
と打つとgrubシェルが起動して
grub>
に変わります。
grub> root (hd2,0)
次に
grub> setup (hd2)
grubシェルを終了させます。
grub> quit
$ sudo dd if=/dev/sdc of=ubuntu.bin bs=512 count=1
でubuntu.binをcドライブの物と置き換えて下さい。
これで(hd0)のMBRと(hd2)のstage1と(hd2,0)のstage2の関係が満たされるはずですが。
あとはRAID構成とvistaのブートローダを使用すると言う所で引っ掛からなければ良いのですが。
-----------------------------------------------------
最後の編集者: hir0 (2009-04-10 05:42:29)
オフライン
単純にマルチブートするなら BIOS を変更して Ubuntu の入った HDD からGrubを使って起動すると上手くいくのではないでしょうか?
ただ RAID については不勉強なので BIOS を変更してしまって問題ないかどうか不明です。
Vista の起動に関しては menu.lst を編集して、起動用のエントリの次のようにします。
title Windows Vista root (hd1,0) map (hd0) (hd1) map (hd1) (hd0) chainloader +1
map~ の記述は無くても起動には、おそらく問題がありませんが、ハイブリッドスリープが使えないなどの症状が出たりするので、記述しておいた方が無難です。
Ubuntu の起動エントリについては Ubuntu8.10 からは UUID を使って root を指定しているので、HDD の起動順を変えても書換えの必要はありません。
もしくは、grub4dos を使い、/dev/sdc のGrub をチェインロードする方法も考えられます。
http://download.gna.org/grub4dos/
ここから Grub4dos をダウンロードしてきて、解凍。grldr.mbr をCドライブ直下に配置。
http://gleentea.seesaa.net/article/111341064.html
ここの、「grub4dosの準備」あたりを参考に Vista のブートマネージャーに Grub4dos を登録。
Cドライブ直下に menu.lst というファイルを作りこんな感じに記述。
hiddenmenu
timeout=0
title Grub
find --set-root /boot/grub/menu.lst
chainloader +1HDD の起動順を変更しても問題無い場合は前者を、起動順を変更したくない場合は後者がいいのではと思います。
オフライン
HDD の起動順を変更しても問題無い場合は前者を、起動順を変更したくない場合は後者がいいのではと思います。
そですね。
各HDDとGRUBの関係が整理されて問題が無ければ前者の方法は有りですね。
後者の方法は今行っている作業と同等ですが上手く行かない場合の手段にはなりそうです。
私の環境ではXPでnobuchanさんと似た方法で起動させています。
boot.ini
[boot loader]
timeout=15
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect
c:\sda.pbr="Ubuntu"
オフライン
うちも Vista とのデュアルブートなんでが、実は最初にnobuchanさんと同じ方法試した事がありまして。
結局ブートできずに、あきらめたんですよ。
vista だからなのか、HDD を分けているからなのか、あるいは他の要因なのか、結局原因は分からずじまいでした。
今取り組んでいただいている方法で上手くいくならばよし。いかない場合は参考にしてもらえればと。
grub4dos を使うのは本当に最終手段なので、まぁ、こんな方法もあるよと言う事で。
オフライン
こんばんは!!
スレッドを拝見していてふと思ったんですけど、どうもやろうとしていることが、ややこしくないですかね???
私は、RAIDについてはあまり詳しくないのであしからず。
いっそのことマスターにOSをまとめてインストールしてみてはどうでしょうか?
あと残ったスレーブを双方のOSで使えるようにNTFSでフォーマットすればいいんじゃないかと思います。
私は、貧乏ですからマスターしか載せてないのでそのやり方でやっております。
あと必要ならルータでネットワーク化すれば、別のPCからもHDの共有化も出来るので、やり方次第だと思います。
とにかく、マスターでデュアルブートあるいはマルチブートしてしまえばXPもVistaも何もせずともチェインロードされますよ。
最後の編集者: tnc (2009-04-10 23:03:19)
オフライン
スレッドを拝見していてふと思ったんですけど、どうもやろうとしていることが、ややこしくないですかね???
別にややこしくは無いですよ。
スレ主の意見を聞きその方法に可能性が有れば意見をする。もちろん可能性では無く具体的に何か有れば大歓迎ですけど。
只vistaのブートローダを使うのが現状の状況を言っているのか条件なのかの判断は今の所付いていないですが。
GHOさん私も同じですよ。
少し違うところが有りますがそれで「似た方法」と表現したのですが原因は取り合えず動いているから後回し状態です。
逆にxpではてこずったけどvistaならOKと思いましたがダメでしたか。これは環境によるのかネット上に蔓延している間違いか、、、
状況の再現をこちらの環境で実現できない以上nobuchanさんの報告まちですが、、、
オフライン
皆様、いろいろなご指導、ありがとうございます。
今回のマルチブートする方法で条件は、
1. RAID1構成(ICH9R)を用いた500GB(物理構成は2 500GB)にはvista 32bitをインストールし、500GBのHDDを増設し、そのHDDにubuntuをインストールする。
2. ubuntuのbootはgrubを使用
3. 上記のgrubは、vistaのbootmgrに登録する
です。
その後、調査したんですが、
grubのboot CDを使用し、stage1を検索する、
grub> find /boot/grub/stage1 (hd1,0)
ubuntuを起動後、statge1をgurb上で検索する。
grub> find /boot/grub/stage1 (hd2,0)
grubが誤操作しているように見えます。
オフライン
/boot/grub/device.mapを
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc
として
sudo grub
root (hd2,0)
setup (hd2,0)
quit
ddでファイルを作ってVistaに登録でどうでしょう。
オフライン
#5の考えははずしていました、すみません。
RAID構成のためBIOSではubuntuのHDDをhd1と認識している。
OS側では接続HDD数から自身をhd2と認識している。
起動はBIOSの認識しているデバイスにそって行われるので上記の盾が生じているのが原因なら #5 のコマンドをHDDにインストールしたUbuntuから行うのでは無く、作成されたgrubの起動ディスクからhd2 hd2,0 をhd1 hd1,0 に変更して実行することで状況の整理が出きると思いますが、この操作が無事に実デバイスのhd2に行われるかどうかが心配です。失敗すればRAID1の特性を生かして復旧というのは少々無責任な提案でしょうか。
もう一つ提案が有るのですが。 自作PCと言うことなので可能だと思いますが、
一旦RAIDを止めて2番目のHDD本体をPCら外してデュアルブートを構築。
そうすることでBIOS側からもOSが設定、作成するファイル情報もhd1,0 に対して行われる(あたりまえですけど、、、)
その後RAIDを再構築してもBIOS側からもOSが設定、作成するファイル情報もhd1,0のままなので矛盾が解消されるのでは。
考えとしては
dd if=/dev/sdc of=ubuntu.bin bs=512 count=1
で作成したファイルのディスク情報には hd2,0 登録されていると思いますが
起動ディスクから検索するとstage*,menu.lstの位置はhd1,0 /boot/grub/となっているので、上記作業で作成した
ubuntu.bin にはBIOSの起動順にあったhd1の情報が登録されてRAID1でのディスクの認識の矛盾が解消されるのでは。
です。,,
最後の編集者: hir0 (2009-04-11 17:25:13)
オフライン
nobuchan による投稿:
もう一つ提案が有るのですが。 自作PCと言うことなので可能だと思いますが、
一旦RAIDを止めて2番目のHDD本体をPCら外してデュアルブートを構築。
そうすることでBIOS側からもOSが設定、作成するファイル情報もhd1,0 に対して行われる(あたりまえですけど、、、)
その後RAIDを再構築してもBIOS側からもOSが設定、作成するファイル情報もhd1,0のままなので矛盾が解消されるのでは。その手がありましたね。
早速、やってみました。
結果は下記の様になりました。
GRUB Loading stage1.5.
GRUB loading, please wait...
Error 17
少し、進みました。
この「Error 17」はパーティションは存在するが、GRUBが解釈できないというエラーですよね。
GRUBのbootCDでGRUBを起動し、
grub> root (hd1,0)
grub> chainloader +1
grub> boot
で、きちんと起動するので、原因がよく理解できていません。
また、今回、Mirror diskの片側を外して、GRUBの再構築を行いました。
外したdiskをもとに戻したら、ICH9Rって自動的にミラーリングするんですね。。。。
500GBもミラーリング所要時間は長いです。
オフライン
HDDディスクを外してマルチブートが成功したのを確認して再度RAIDを行ったのかどうかに疑問は残りますが「500GBもミラーリング所要時間は長いです」、、、たしかに。
条件を曲げて(敗北?なのかな)GHOさんのおっしゃってるHDDディスクの起動順序を変えて3番目のHDDを先に読みにいくように変更も視野に入れておいた方がいいかも。
オフライン
hir0 による投稿:
HDDディスクを外してマルチブートが成功したのを確認して再度RAIDを行ったのかどうかに疑問は残りますが「500GBもミラーリング所要時間は長いです」、、、たしかに。
条件を曲げて(敗北?なのかな)GHOさんのおっしゃってるHDDディスクの起動順序を変えて3番目のHDDを先に読みにいくように変更も視野に入れておいた方がいいかも。
HDDを外した状態だと、/dev/sdc->/dev/sdbになってしまいませんかぁ~?
だとすると、fstabとか、menu.lstの/dev/sdc->/dev/sdbに変更する必要があるのでは?
なので、試していませんが、やった方がよいですかね?
最悪、GRUBのbootCDを使えば、起動するのでそれで良しとしますか。。。
オフライン
提案している内容では /dev/sdb になって良いんですよ。
必要なのは /dev/sdb から ddコマンドで抜き出したファイルの情報と実際に起動するかどうかの確認です。
GRUBのbootCDでドライブが一つずれるのならOSを起動させて抜き取った情報も一つずれた位置情報が書き込まれていれば、HDDを加えてRAIDでOSが sdb -> sdc になっても Vistaに登録しているドライブ情報は sdb のまま。
起動時にBIOSが認識するUbuntuのドライブもhd1のまま。
でいいのでは?
menu.lst等の問題はGrub が起動してからですね。
HDDを外した状態だと、/dev/sdc->/dev/sdbになってしまいませんかぁ~?
だとすると、fstabとか、menu.lstの/dev/sdc->/dev/sdbに変更する必要があるのでは?
なので、試していませんが、やった方がよいですかね?
Grubが起動する事でVistaへの登録に問題無いことが確定しますしOSを立ち上げることでRAID構築時に行う変更に要領を掴めるのではと思いますが実際に作業を行っているnobuchanさんの判断ですね。
#7 #8で、Vistaにエントリーして起動出きると言う情報の信憑性が薄まって来ているのでは?
オフライン
VistaとLinuxのデュアルブート
http://imasya.cocolog-nifty.com/imasya/2007/03/vistalinux_37de.html
ddで持ってくるのではなくbootpartを使用するのが味噌ですね。
bootpartでブートパーティションのブートローダーを取ってくるように書かれていますが
間違いです。bootpart独自のものを作成します。RAID問題もこの方法で解決します。
なお、/boot/grub/menu.lst内ではUUIDを使用していてhd0や/dev/sdc0などは
Windows用のみ使用しています。この辺も確認してみてください。
サンプル
title Ubuntu 8.10, kernel 2.6.27-11-generic
uuid d5dc4099-57f7-4bcd-8e8c-999b2e88dd33
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=d5dc4099-57f7-4bcd-8e8c-999b2e88dd33 ro quiet splash
initrd /boot/initrd.img-2.6.27-11-generic
quiet
オフライン
久々にVista にエントリ作ってみました。
結果あっさり起動できました。
多分当時私の操作がおかしかったんでしょうね(笑)
なので、nobuchanさんがマルチブートできない理由は、RAIDがらみと見ていいでしょう。
片肺のままbootできるか検証してみて欲しいところですが、戻した時にかなり時間がかかるそうなので無理強いはできませんね。
オフライン
なんだか明るい方向に情報が集まってきてますね。
のんきさんの提案だと条件を満たしているみたいですけど為されてみてはどうでしょうか。
最後の編集者: hir0 (2009-04-12 10:41:49)
オフライン
hir0さん、のんきさん 及び replyしてくださった皆様へ
ありがとうございます。bootpartを使用して抽出した、イメージファイルで正常動作できました。
オフライン