
Ubuntu日本語フォーラム

ログインしていません。
最近、兄弟forumのFedoraUsersForumで教わりながら、Windows->Fedora10->Ubuntu8.10マルチブートを一応やってみた者です。当forumのデュアルブート関連トピックも読ませていただき、今度はUbuntu8.10→Windows→Fedora10を次の手順で試みたいと思っています。
①Ubuntu8.10を20ギガのHDDにインストール
②GpartedLiveCDでext3を縮小し、空き領域を作成
③その領域にWindowsXPをインストール
④Ubuntu8.10インストールCDで①のUbuntuを起動し
⑤Ubuntuのgrubを第1パーティションに作成
⑥grubにWindowsの為のチェーンロード記述を加える
⑦取敢えずUbuntuとWindowsのデュアルブートを確認
②、④は初体験でしたが⑥までは順調に進みました。しかし⑦は選択画面も出ず、Windowsがパッと立ち上がって...、失敗です。
すみません、今Windowsでこれを書いています。ご迷惑でしょう(違反?)がここで一回送信させていただきます。④のUbuntu から後ほど続けます。(pw失念、Ubuntu未稼働の為少々時間がかかりそうです):rolleyes:
最後の編集者: akayuki (2008-12-16 20:30:34)
オフライン
>①Ubuntu8.10を20ギガのHDDにインストール
(hd0,0)にgrubがインストールされる。
>②GpartedLiveCDでext3を縮小し、空き領域を作成
>③その領域にWindowsXPをインストール
(hd0,0)にNTLDRがインストールされる。
>④Ubuntu8.10インストールCDで①のUbuntuを起動し
>⑤Ubuntuのgrubを第1パーティションに作成
(hd0,1)にgrubがインストールされる。
>⑥grubにWindowsの為のチェーンロード記述を加える
(hd0,1)の/boot/grub/menu.lstにWindowsXPのChainを設定
>⑦取敢えずUbuntuとWindowsのデュアルブートを確認
(hd0,0)のNTLDRが起動しWindowsXPが起動した。
こんな感じで動作を推測しましたがいかがでしょうか。
UbuntuとWindowsXPのデュアルブートをお望みなら
(hd0,0)のブートローダーをgrubか、NTLDRか、どちらにするかで
この後インストール方法が異なってきます。
お手軽なのはgrubです。
NTLDRをお使いになるのでしたBOOT.INIに設定を行ってください。
MBM、PARTBOOT、GRUB4DOSなどデュアルブート設定用アプリも
数あるようですのでお好きなのをご利用ください。
雑感
WindowsXPの物理的なパーティション配置はHDDの先頭の方が
良いように思います。WindowsXPの場合、システムパーティション
ブートパーティションと分けられますがNTLDRが最初にアクティブな
システムパーティションを探しに行きますので先頭の方が良いと
思います。OSのインストール順位はお好きな順番で良いと思います
メニューの並びはBOOT.INIか、/boot/grub/menu.lstの並びで
決まりますのでインストール順番を意識する必要はないです。
オフライン
のんきさん、ありがとうございます。100%ご推測の通りと思います。
のんき による投稿:
雑感
WindowsXPの物理的なパーティション配置はHDDの先頭の方が
良いように思います。WindowsXPの場合、システムパーティション
ブートパーティションと分けられますがNTLDRが最初にアクティブな
システムパーティションを探しに行きますので先頭の方が良いと
思います。OSのインストール順位はお好きな順番で良いと思います
メニューの並びはBOOT.INIか、/boot/grub/menu.lstの並びで
決まりますのでインストール順番を意識する必要はないです。
よく解りました。特に「NTLDRが最初にアクティブなシステムパーティションを探しに行きます」がモヤモヤしていたところです。
まずgrubをやってみてその後NTLDRでやって見ることにします。
最後の編集者: akayuki (2008-12-16 21:11:39)
オフライン
ubuntuからのlogin pwがわかるまで、まだWindows専用PCから送信します。
grubで続けます。HDDの構成は以下になっています。(操作コピー)
デバイス Boot Start End Blocks Id System
/dev/sda1 1 736 5911888+ 83 Linux
/dev/sda2 * 737 2373 13149202+ 7 HPFS/NTFS
/dev/sda3 2374 2482 875542+ 5 拡張領域
/dev/sda5 2374 2482 875511 82 Linux swap / Solaris
④⑤の結果です。(操作コピー)
a@a:~$ sudo grub-install /dev/sda1
Searching for GRUB installation directory ... found: /boot/grub
Installing GRUB to /dev/sda1 as (hd0,0)...
Installation finished. No error reported.
これはどうやらOKです。
⑥では$gedit /boot/grub/menu.lstで最終行に
title WindowsXP
root (hda0,1)
makeactive
chainloader +1
を加えて再起動の結果⑦となったのです。(ssh経由では表示されないので/menu.lstをコピーできないのですみません)
「WindowsXPの物理的なパーティション配置はHDDの先頭の (方が良い) ように思います」とありますが、今回は2番目(デュアルブートの解説のほぼ全てが先頭にを前提にしているので敢えて2番目にして見たのです)なのでroot (hda0,1)としました。それが間違っているのでしょうか?やっぱり理解できていないんだなと今思い知らされました。
よろしくご教示をお願い致します。
オフライン
図で説明出来れば良いのですが・・・
HDDの構成
・HDDの先頭にMBR(Master Boot Record)がある。
MBRはBIOSの起動デバイスとして割り当てられた時ブートアップローダーとして機能する。
・各パーティションがある。
・パーティションの先頭にPBR(Parttion Boot Record)がある。
PBRはMBRのローダーにより起動するブートアップローダーとして機能する。
①で行ったことは下記となります。
ubuntu 8.10 インストーラーで特にgrubの登録先を指定しない場合は
プライマリHDDのMBRにgrubを登録します。
③で行ったことは下記となります。
WindowsXP インストーラーは無条件に
プライマリHDDのMBRにNTLDRを登録します。
>a@a:~$ sudo grub-install /dev/sda1
この意味はgrubを第一パーティションのPBRに登録します。
ですからMBRにはまだNTLDRが登録されていることになります。
grubをMBRに登録するにはLive CD起動後
grubコマンドで
>root (hd0,0)
>setup (hd0)
>quit
を実行してください。
オフライン
akayuki様、
以下のgrubのシーケンスの中のrootコマンドの引数の記述は間違っています。
>title WindowsXP
>root (hda0,1) <-- これです(すみません、引用に付け加えて)。
>makeactive
>chainloader +1
root (hd0,1)
が正解だと思います。
それと、ubuntuには、update-grubって言うコマンドでmenu.lstを再構築出来る様です。
これでもブートしないなら、Win-XPの回復コンソールからFIXBOOTコマンドにて第二パーティションの第一セクタへNTDLR(及び必要なもの)を再度入れてみては如何でしょうか。
上記に於いても、のんき様がご教授されているようにMBRにgrubかMBMが入っている前提です。
最後の編集者: yamato (2008-12-17 10:15:34)
オフライン
のんきさん、yamatoさんありがとうございます。
成功しました!!
「ですからMBRにはまだNTLDRが登録されていることになります。grubをMBRに登録する」
これで眼の前が開けました。昨日のご教示「(hd0,0)のブートローダーをgrubか、NTLDRか、どちらにするか」がポイントだなと思っていましたが、「grubを(NTLDRが鎮座する)MBRに(手動で)登録する」なんて私にとっては聖域に踏込む行為でした。
menuにはデフォルトで載っているWindowsがトップに、最後に追加Window分が出ました。なるほど追加は不要なのですね。
さて、ここで復習し続いて、Fedora10を追加しようと思います。
yamatoさん、よく見るとroot (hd0,1)と記述していました。書き写しミスです。update-grub次回使ってみます。ありがとうございました。
最後の編集者: akayuki (2008-12-28 18:47:22)
オフライン
「menuにはデフォルトで載っているWindowsがトップに、最後に追加Window分が出ました。なるほど追加は不要なのですね。」これ真赤な嘘でした。のんきさん、びっくりさせてご免なさい。
自分でも、そんな馬鹿な?と思いmenu.lstを見直しましたら、トップに記入していたのを忘れていました。何が
「なるほど」だと自分でも呆れました。
取りあえず報告いたしました。
オフライン
sda4にfedora10をインストール後menu.lstにUbuntuの(hd0,0)を指定記入して、無事grubマルチブートが成功しました。chainloaderの意味通りですね。
デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 736 5911888+ 83 Linux
/dev/sda2 737 1190 3646755 7 HPFS/NTFS
/dev/sda3 2374 2482 875542+ 5 拡張領域
/dev/sda4 1191 1827 5116702+ 83 Linux
/dev/sda5 2374 2482 875511 82 Linux swap / Solaris
のんきさんお世話になりました。ありがとうございました。
次はNTLDRでやってみます。またよろしくお願い致します。
オフライン
さてNTLDRでやってみようと思っています。のんきさんの
「雑感
WindowsXPの物理的なパーティション配置はHDDの先頭の方が
良いように思います。WindowsXPの場合、…先頭の方が良いと
思います。OSのインストール順位はお好きな順番で良いと思います
メニューの並びはBOOT.INIか、/boot/grub/menu.lstの並びで
決まりますのでインストール順番を意識する必要はないです。」
で先頭Windowsはベストとは思うものの敢えてfedora->ubuntu->WindowsXPでNTLDRをと…。
デバイス Boot Start End Blocks Id System (80ギガHDD)
/dev/sda1 * 1 1961 15751701 83 Linux (fedora10)
/dev/sda2 1962 2101 1124550 82 Linux swap / Solaris (共用)
/dev/sda3 2102 3925 14651280 83 Linux (ubuntu8.10)
残り44.46gigaバイト 未アロケート
アクティブに(起動可)出来るpartitionの数は最大4つ、と何処かで見て、swapを共用にするなど工面してやっと上記のHDD構成まで辿り着きました。ところがいざ空き分へのWindowsXPのインストールで「partitionの最大数が存在するため選択した領域に新しいpartitionを作成できない」と出ました。何か大きな認識違いをしているのではないかと思いますが、よろしくご教示をよろしくお願い致します。
最後の編集者: akayuki (2008-12-22 19:56:59)
オフライン
Windowsシステムでは1つのHDDには基本領域(プライマリ)と拡張領域(エクステント)
合わせて4つのパーティションを作成することができます。
そしてWindowsXPのNTLDRはアクティブなプライマリ パーティションにのみインストール
出来ます。
このルールにayayukiさんの構成をのっけてみると最後のパーティションは拡張領域に
あたります。エラーメッセージは妥当な答えです。
お望みの設定をするのであればLinux Swap領域を拡張領域、論理パーティションに
割り当てれば可能になると思います。
WindowsXPをHDDの先頭に持っていくことがそんなにお嫌な理由は判りませんが
WindowsXPと共にデュアルブートシステムを作られるのであればWindowsXPを
HDDの先頭にもって行くほうがシステムのオーバーラップがなく速い動作になると
思います。
オフライン
ありがとうございます。確認させていただきますと
基本領域(3)+拡張領域(1)=4(max)は〇で
基本領域(4)+拡張領域(0)=4(max)は×なのですね。
早速Linux Swap領域を拡張領域、論理パーティションに割り当ててみます。(さて自分ひとりでできるかな?)
あの~、WindowsXPをHDDの先頭に持っていくことが嫌だなぞと全く思っておりません。今までWindowsXPが先頭でなければNTLDRでのマルチブートは絶対出来ないと思い込んでいたので、実際にやって見たかっただけです。今回成功したら、勿論Windowsを先頭にします。
オフライン
拡張領域作成はOKでしたが、論理パーティション作成がうまくいかず,linuxはswapnonで動いていました。今のところ支障ないので落着いてから事後対策。
さてwindowsXpインストール->アクティブパーティションには他のOSが入ってるからそのパーティションを非アクティブにせよ と出たので、検索してとにかく非にしました。その結果WindowsXPがsda4にインストールされ起動しました。
「メニューの並びはBOOT.INIか、/boot/grub/menu.lstの並びで
決ま」
るということで、無謀にもboot.iniの最後に2行追加してみました。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\Linux="Fedora10"
multi(0)disk(0)rdisk(0)partition(2)\Linux="Ubuntu8.10"
でGO!
失敗です。menuに3つは載るものの、1番上のWindowsは起動しましたが、Linuxどちらも「<Windows root>¥system32¥hall.dll が存在しないか壊れているのでWindowsが起動できないぞ」と出てしまいました。無知の涙です。
へこたれずやりますのでよろしくお願い致します。
オフライン
アクティブを1にするとFedora、3にするとubuntu、4でWindowsがそれぞれ起動します。3つ共activeにするとパーティションtable errorになる状況です。
現在boot.ini最後2行は
c:\grub.br="Linux"
に変えています。
オフライン
NTLDRはGRUBと異なり直接他のOSを起動することは出来ません。
そのため他のOSを起動する場合PBRを使用します。
各OSを登録しているパーティションのPBRにそれぞれGRUBを登録します。
そのGRUBの起動メニューは/boot/grub/menu.lstとなります。
ではそのPBRをキックする方法ですが下記のようになります。
準備
フロッピを1枚用意する。
操作
(1)Ubuntu Live CDを起動する。
(2)GRUBコマンドで各OSのPBRにGRUBを登録する。
(3)各PBRをフロッピィに書き出す。
$ sudo dd if=/dev/sda1 of=/media/fd0/fedora.pbr bs=512 count=1
$ sudo dd if=/dev/sda3 of=/media/fd0/ubuntu.pbr bs=512 count=1
(4)WindowsXPを起動する。
(5)C:\にフロッピィ内のfedora.pbr、ubuntu.pbrファイルを登録する。
(6)C:\のフォルダ属性を全て見せる、システムファイル更新許可に設定する。
(7)BOOT.INIの更新
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP
Professional" /noexecute=optin /fastdetect
C:\fedora.pbr="Fedora10"
C:\ubuntu.pbr="Ubuntu8.10"
最後の2行を追加
(8)C:\のフォルダ属性を元の状態に戻す。
(9)WindowsXP再起動
最後の編集者: のんき (2008-12-23 16:46:43)
オフライン
出来ました!
fdが附いていないPCなので、FTPなどで.pbrを作成する方に時間がとられましたが、首尾良く行きました。
お陰様でNTLDR、GRUB、WINDOWS、Ubuntu、Fedoraのマルチブートスクランブルを体験できました。特にNTLDRは本当に勉強になりました。のんきさんがWindowsXPをHDDの先頭に持っていくことを薦めている理由も納得がいきました。
これから、じっくり復習します。
ありがとうございました。
オフライン
最後の仕上げと思い、UbuntuとFedoraの共有swapを/dev/sda5に設定しました。
デバイス Boot Start End Blocks Id System
/dev/sda1 1 1961 15751701 83 Linux
/dev/sda2 1962 2101 1124550 5 拡張領域
/dev/sda3 2102 3925 14651280 83 Linux
/dev/sda4 * 3926 9728 46612597+ 7 HPFS/NTFS
/dev/sda5 1962 2101 1124518+ 82 Linux swap / Solaris
ところが結果は
$ sudo mkswap /dev/sda5
Setting up swapspace version 1, size = 1124512 KiB
no label, UUID=45f171e0-849a-4b99-8ac9-f5017c82ae0b
$ sudo swapon -a
swapon: cannot stat /dev/disk/by-uuid/f09ce585-f142-4d95-82fe-dba017b79ca8: No such file or directory
になってしまいました。ここ迄来たら、毒食わば皿まで、の心境です。
ウルサイとお思いでしょうが、よろしくご教示をお願い致します。
最後の編集者: akayuki (2008-12-25 16:53:11)
オフライン
/dev/disk/by-uuid/45f171e0-849a-4b99-8ac9-f5017c82ae0b が /dev/sda5 を指しているのに、/etc/fstab には f09ce585-f142-4d95-82fe-dba017b79ca8 が指定されていませんか?
オフライン
mizunoさん、ありがとうございます。おっしゃる通りです。
fstabは以下のようになっています。
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda2
UUID=f09ce585-f142-4d95-82fe-dba017b79ca8 none swap sw 0 0
現在/dev/sda2に存在しないので(none)になっている。そこでswapファイルがあるsd5に変えようとしていますがそのコマンドや方法がわからない、というのが真意です。
よろしくお願い致します。
オフライン
~$ sudo mkswap /dev/sda5 (初期化)
/dev/sda5: Device or resource busy (になってしまいます)
構わず
$ sudo swapon /dev/sda5
swapon: /dev/sda5: Device or resource busy(になってしまいます)
オフライン
busyとは働いているということだと覚りました。そもそも順序逆でした。fstabに記述してあるから起動時にそれに従うのですね。それで最終行にsda5にswap記述を加えました。uuidを使った方がいいそうですが取り敢えずデバイスで。
# /etc/fstab: static file system information.
#/dev/sda5
/dev/sda5 swap swap defaults 0 0
さて、本当にswapとして働いているのを確認する方法を教えていただければと思います。
オフライン
検索してみたらfreeコマンドに遭遇しました。
起動後のswap状態
# free
total used free shared buffers cached
Mem: 773720 365096 408624 0 13748 178080
-/+ buffers/cache: 173268 600452
Swap: 1124508 0 1124508
swapをoffにしてみました。
# swapoff /dev/sda5
# free
total used free shared buffers cached
Mem: 773720 385192 388528 0 14044 191068
-/+ buffers/cache: 180080 593640
Swap: 0 0 0
確かにsda5でswapが働こうとしていたのがわかりました。でも何かもっとスマートな方法がありそうに思います。
最後の編集者: akayuki (2008-12-26 22:52:48)
オフライン
knxg9001さんありがとうございます。グッとスマートですね。
$ swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 1124508 0 -1
どうやらこれで私のマルチブートへの旅は一応終りそうです。非常に勉強になりました。12月初頭迄mbr、pbr、ntldr,grub、基本領域、アクティブ、swap等の意味なんて考えたこともありませんでした。のんきさんはじめ皆様本当にありがとうございました。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン