*トリプルブート [#q6bf226c]
-概要~
MacOSX、WindowsXP、Linuxのトリプルブートを実現する。~
~
-パーティション分割の方針~
| # | Format | Size| MacOSX(GPT)&br;での見え方| Linux(GPT)&br;での見え方 | WinXP(MBR)&br;での見え方 | 備考 |h
| 1 | FAT32 | 200M |>|>|BGCOLOR(gray): - | EFI |
| 2 | HFS+ | 90G | Macintosh HD| /dev/sda2 |BGCOLOR(gray): |MacOSX|
| 3 | ext2 → FAT32 | 5G | share | /dev/sda3 (/share) | Gドライブ |共有領域 |
| 4 | NTFS | 30G | - | /dev/sda4 | Cドライブ |WindowsXP |
||||||||
| 5 | Linux swap | 1G |BGCOLOR(gray): | swap |BGCOLOR(gray):|Linux|
| 6 | HFS+ | 200M | LinuxBoot | /dev/sda6 (/boot) |~|~|
| 7 | Reiserfs |21G |BGCOLOR(gray):| /dev/sda7 (rootfs) |~|~|
~
-設定のツボ
--WinXPは第4パーティションのCドライブへインストールする必要がある。
--第3パーティションをFAT32以外(例えばLinux)に設定しておくことで、第4パーティションがCドライブになる。~
--OSX、10.4.6付属のdiskutilコマンドでresizeVolumeすると楽。
--GUIDパーティションをサポートするMactel版Linuxカーネルを使用すると、パーティション数の制限が緩和される。~
---第5パーティション以降にLinux環境が構築可能になる。~
---第3パーティションをファイル共有用として確保できる。~
---Linux swap パーティションなんかも使用可能になる。
~
-&color(red){注意事項};~
&color(red){WindosXP等のMBRベースのOSとMacOS等のGUIDベースのOSが一つのHDD内に混在した環境ではGNU Partedを使用しないほうが良さそうです。なぜならば、そのような状態でpartedを使うと、フェイルセーフ機能が作動して、MBRの内容が初期化されてしまうからです};
**MacOSXのインストールとBoot Campの準備 [#q5339a56]
-MacOSXを単一パーティションでインストール。
-OSX(10.4.6へ)、Firmware(CSM)のアップデートを行った後、BootCampをインストール。
-BootCampを実行してドライバCDだけを作成する。(パーティショニングは行わない。)
**パーティショニング [#p043dac1]
-diskutilコマンド~
10.4.6において、diskutilコマンドが大幅に機能拡張され、オンザフライでパーティションのリサイズが可能なった。~
さらには、パーティショニングの際、GPTとMBRに保持されるパーティションテーブルの同期処理を自動で行ってくれるようになった。~
~
次にdiskutilコマンドの実行例を示す。~
/dev/disk0s2領域(MacOSX領域)を90GBに縮小後、空いた領域に新規パーティションを任意のフォーマット、名前、サイズで、複数個作成した。~
第3パーティションはFAT32以外(Linux)を指定し、第4はWinXP用にFAT32を指定。~
第5、第6、第7は、linux swap、Linuxのブート用(HFS+)、rootfs用のパーティションを指定した。~
#pre{{
# diskutil resizeVolume disk0s2 90G \
&color(blue){Linux share 5G}; &color(green){"MS-DOS FAT32" winxp 30G}; \
&color(blue){ Swap swap 1G}; &color(green){ HFS+ LinuxBoot 200M}; &color(blue){ Linux Linux 20G};
}}
-diskutil実行前
#pre{{
# gpt -r show /dev/disk0
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B &color(red){← EFI};
409640 311909984 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC &color(red){← MacOSX};
312319624 262151
312581775 32 Sec GPT table
312581807 1 Sec GPT header
}}
~
-diskutil実行後
#pre{{
# gpt -r show /dev/disk0
gpt show: /dev/disk0: Suspicious MBR at sector 0
start size index contents
0 1 MBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409640 188743680 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
189153320 262144
189415464 10485760 3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
199901224 62914560 4 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
262815784 2097152 5 GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
264912936 409600 6 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
265322536 47259232 7 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
312581768 7
312581775 32 Sec GPT table
312581807 1 Sec GPT header
}}
**WindowsXPのインストール [#zd6ed243]
-インストールCDから起動~
インストールCDを挿入して再起動を行う。起動音が鳴ったら、オプションキーを押してブートセレクタを呼び出し、インストールCDから起動させる。~
~
-パーティション選択画面にて~
4番目のパーティションを選択(写真参照)する。~
(その直後に表示される選択肢では、ファイルシステムNTFSでクイックフォーマットを選択した。)~
~
&ref(part01.jpg,nolink);~
~
-リブート後~
リブート後、オプションキーを押してブートセレクタを呼び出し、HDD(Windows)から起動させる。~
~
-ドライバのインストール~
インストール終了後、BootCampで作成したドライバーCDをインストールする。
-以上でWindowsXPのインストールは終了です。
~
**Linuxのインストール準備 [#tc5ac75e]
-概要~
ここでは、RAMDISK(initrd)ベースで動作する小さなLinuxシステムを6番目のパーティション(LinuxBoot)へインストールする。~
本Linuxシステムは、次節でUbuntu-ja Linuxをインストールするための作業環境として使用する。~
-LinuxBootパーティションの作成
--MacOSXを起動。
--6番目のパーティションをHFS+フォーマットで初期化する。
#pre{{
$ diskutil eraseVolume HFS+ LinuxBoot /dev/disk0s6
}}
--LinuxBootボリュームが作成され、デスクトップへ自動的にマウントされる。~
-LinuxBootパーティションへeliloを導入して、Linuxのブート設定を行う。~
--[[LinuxBoot7.dmg.zip:http://eggplant.ddo.jp/www/download/intel-mac-linux/LinuxBoot7.dmg.zip]] を解凍して、その中身を全て、LinuxBootパーティションへ格納する。~
(LinuxBoot7.dmg.zipは、Mactel-Linux で公開されるブートに必要なファイル一式(elilo、カーネル、initrd)を格納したアーカイブです。)~
~
--そして次のコマンドをターミナルから実行。~
すると、起動時、オプションキーを押し続けることで、ブートセレクトメニューが表示されるようになります。~
#pre{{
$ cd /Volumes/LinuxBoot
$ sudo bless --folder . --file e.efi --labelfile linux.volicon
}}
--elilo.confの修正~
linuxとinitrdの2つのラベルがあらかじめ定義されています。~
赤文字の部分を各自の環境に合わせて変更してください。~
---default=&color(red){initrd}; … RAMDISK(initrd)ベースで起動
---video=imacfb:&color(red){i17}; … iMac 17 or MBP
---video=imacfb:&color(red){i20}; … iMac 20
---video=imacfb:&color(red){mini}; … Mac mini
--
#pre{{
# force chooser to textmenu
chooser=simple
legacy-free
default=&color(red){initrd};
delay=0
#prompt
image=vmlinuz-2.6.16.5-imac
label=linux
append="video=imacfb:&color(red){i17}; acpi=force irqpoll &color(red){root=/dev/sda7}; libata.atapi_enabled=1"
image=vmlinuz-2.6.16.5-imac
label=initrd
initrd=initrd-parted.gz
append="video=imacfb:&color(red){i17}; acpi=force irqpoll root=/dev/ram0 rw libata.atapi_enabled=1"
}}
~
-Ubuntu-jaのイメージと各種設定ファイルの取得~
下記ファイルをあらかじめ内蔵ディスクへ格納しておいてください。~
--[[ubuntu-ja-5.10-live-i386-20051024.iso:http://www.ubuntulinux.jp/download/]] … Ubuntu 5.10 Japanese Live CD Image
--[[ubuntu-ja-overwrite-20060314.tgz:http://eggplant.ddo.jp/www/download/intel-mac-linux/]] … LiveCDイメージに対する差分ファイル~
--[[kernel-image-2.6.16.5-imac_20060414b_i386.deb:http://eggplant.ddo.jp/www/download/intel-mac-linux/]] … カーネルとドライバモジュールのセット~
~
-Linuxの起動~
再起動を行う。起動音が鳴ったら、オプションキーを押して、EFI Bootから起動させる。~
&ref(boot.jpg,nolink);~
~
-RAMDISKベースで動作する小さなLinuxシステムが立ち上がったはずです。
**Ubuntu-jaのインストール [#mc6ba2df]
-概要~
本節では次のようなパーティションで構成されたファイルシステム上に、Ubuntu-ja linuxを構築します。~
--/dev/sda5 swap
--/dev/sda6 /boot
--/dev/sda7 rootfs
-ファイルシステムの作成
#pre{{
# mkfs.reiserfs /dev/sda7
# mkswap /dev/sda5
}}
-コピー先rootfsのマウント
#pre{{
# mount -t reiserfs &color(red){/dev/sda7}; /mnt
# mkdir /mnt/boot
# mount -t hfsplus &color(red){/dev/sda6}; /mnt/boot
}}
-MacOSX領域(/dev/sda2)をマウントして、各種ファイルをコピーする。
#pre{{
# mkdir /osx
# mount -t hfsplus /dev/sda2 /osx
# cp /osx/XXXXXX/ubuntu-ja-5.10-live-i386-20051024.iso /mnt
# cp /osx/XXXXXX/ubuntu-ja-overwrite-20060314.tgz /mnt
# cp /osx/XXXXXX/kernel-image-2.6.16.5-imac_20060414b_i386.deb /mnt
# umount /osx
}}
-isoファイルから、LiveCDイメージ(filesystem.loop)を抜き出す~
#pre{{
# mkdir /iso
# mount -t iso9660 -o loop /mnt/ubuntu-ja-5.10-live-i386-20051024.iso /iso
# extract_compressed_fs /iso/casper/filesystem.cloop > /mnt/filesystem.loop
# umount /iso
# rm /mnt/ubuntu-ja-5.10-live-i386-20051024.iso
}}
-rootfs(filesystem.loop)の展開
#pre{{
# mount -t ext2 -o loop /mnt/filesystem.loop /iso
# cp -a /iso/* /mnt/
# umount /iso
# rm /mnt/filesystem.loop
}}
-カーネル等の展開~
#pre{{
# cd /mnt
# chroot .
sh-3.00# tar vxzpf ubuntu-ja-overwrite-20060314.tgz
sh-3.00# dpkg -i kernel-image-2.6.16.5-imac_20060414b_i386.deb
sh-3.00# rm ubuntu-ja-overwrite-20060314.tgz
sh-3.00# rm kernel-image-2.6.16.5-imac_20060414b_i386.deb
}}
-&color(blue){必要ならばパスワードの変更をしてください!};
#pre{{
# passwd ubuntu
Enter new UNIX password: &color(blue){password};
Retype new UNIX password: &color(blue){password};
passwd: passwd updated successfully
}}
-/etc/fstab を必要に応じて修正します。~
#pre{{
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
&color(red){/dev/sda7}; / reiserfs defaults 0 1
&color(red){/dev/sda5}; none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
&color(red){/dev/sda6}; /boot hfsplus defaults 0 0
}}
-/boot/elilo.conf~
default指定を修正します。~
#pre{{
# force chooser to textmenu
chooser=simple
legacy-free
default=&color(red){linux};
&color(red){#default=initrd};
delay=0
#prompt
…省略…
}}
-後片付け&再起動
#pre{{
sh-3.00# exit
# cd /
# umount /mnt/boot
# umount /mnt
# reboot
}}
-~
-Linux(EFI Boot)から再起動します。~
~
-ログインマネージャgdmが立ち上がると思います。~
user:ubuntu、passwd:ubuntu でログインします~
~
-必要に応じて、ネットワークの設定を行ってください。~
デフォルトでは、DHCPでIPアドレスを取得します。~
~
**共有領域の設定 [#tf12eee1]
-第3パーティションを共有領域へ~
第3パーティションを FAT32形式でフォーマットして、MacOSX、Linux、WindowsXPから相互にアクセス可能な共有領域を作成します。~
(ちなみに、本手順通りにインストールを行った場合、第3パーティションはLinuxパーティション(ext2)になっているのはずです。)~
-Linuxで起動後~
--rootになって、
#pre{{
$ sudo su
}}
--FAT32形式でフォーマット、マウントポイント share を作成
#pre{{
# mkfs.vfat /dev/sda3
# mkdir /share
}}
--/etc/fstabへ一行追加
#pre{{
/dev/sda3 /share vfat defaults 0 0
}}
--リマウント
#pre{{
root@ubuntu:/# mount -a
root@ubuntu:/# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda7 23628840 1405964 22222876 6% /
tmpfs 515660 4 515656 1% /dev/shm
/dev/sda6 204800 15740 189060 8% /boot
&color(red){/dev/sda3 5232640 24 5232616 1% /share};
tmpfs 10240 2656 7584 26% /dev
}}
--パーティション3のタイプの変更~
fdiskで/dev/sda3のパーティションタイプを"b"(W95 FAT32)へ変更します。~
#pre{{
root@ubuntu:/# fdisk -lu /dev/sda
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 409639 204819+ ee EFI GPT
Partition 1 does not end on cylinder boundary.
/dev/sda2 409640 189153319 94371840 af 不明
Partition 2 does not end on cylinder boundary.
/dev/sda3 189415464 199901223 5242880 &color(red){b W95 FAT32};
Partition 3 does not end on cylinder boundary.
/dev/sda4 * 199901224 262815783 31457280 7 HPFS/NTFS
Partition 4 does not end on cylinder boundary.
}}
--念のためMBRのバックアップを取っておく
#pre{{
root@ubuntu:/# dd if=/dev/sda of=/boot/MBR.bak bs=512 count=1
}}
-MacOSXで起動
--デスクトップアイコン「Untitled」を「SHARE」とリネームしておきましょう!!
-Windows XPから起動
--マイコンピュータを開いてローカルディスクが追加されていればOK
**コメント欄 [#vfc3b46f]
-トリプルブートに関するページ -- [[管理人]] &new{2006-04-12 (水) 22:53:45};
--[[Triple Boot via BootCamp@onmac.net:http://wiki.onmac.net/index.php/Triple_Boot_via_BootCamp]]
--[[Resizing Partitions at Last!:http://www.afp548.com/article.php?story=20060405181503909]]
--[[IntelMacでXenが動きました。:http://webleverage.jp/xen/wiki/]]
-diskutil resizeVolume disk0s2 30G JHFS+ Users 40G JHFS+ Applications 60G "MS-DOS FAT32" winxp 30Gってリサイズしたんですが、Windowsをインストールできませんでした。どういう法則があるんでしょうか? -- [[ちく]] &new{2006-04-12 (水) 12:53:51};
--WinXPは第4パーティションにインストールする必要があります。上の例では、第2を縮小して、第3、第4、第5を新規作成という意味ですから、WinXPは第5になってしまっています。 -- [[管理人]] &new{2006-04-12 (水) 21:13:15};
-- diskutil resizeVolume disk0s2 30G JHFS+ Users 45G "MS-DOS FAT32" winxp 6G JHFS+ Applications 65Gって入力したらOKでした!どうもありがとうございました。さらに修正して、Windowsのユーザーパーティションを作るかどうか検討中です。管理人さんのようにコメントをインデントするにはどうしたらいんですか? -- [[ちく]] &new{2006-04-13 (木) 23:04:43};
--詳細はWikiのヘルプ参照。まぁ、こちらでやります。 -- [[管理人]] &new{2006-04-14 (金) 20:14:39};
-resizeVolumeについて質問ですが、現在、MacOSとWinXPがインストール済みで、MacOSのりサイズをしてLinuxをインストールしようと考えています。この際、resizeVolumeをしてインストール済みのMacOSとWinXPには影響はないのでしょうか? -- [[hiro]] &new{2006-04-13 (木) 09:44:53};
-diskutil resizeVolume なんてのがあったとは orz -- [[raku]] &new{2006-04-13 (木) 17:39:12};
--rakuさんの方式を使えば、拡張(or 論理)パーティションをFDISKで作成後、gptへマッピングするなんてこともできそうですね。P.S. 最新版partedを使えばセクタ単位で設定できるんだ。 -- [[管理人]] &new{2006-04-13 (木) 19:22:51};
-第3パーティションを拡張にして、共有、Swap、Linuxをそこに入れてみたら、第4のWinXPが起動しなくなりました(hal.dllが無い、ってエラーで)。一度やってみただけで、その後詳しく検証していませんが。 -- [[raku]] &new{2006-04-18 (火) 17:48:28};
--hal.dllの件は、たぶんこれかな! http://homepage2.nifty.com/winfaq/w2k/boot.html#1208 ~
その他、WINXPはプライマリーからしかブートできない。拡張パーティションの後にプライマリーを作ってはいけない。というルールがあるので拡張パーティションを使う場合、XPは3番目に入れる必要があります。 -- [[管理人]] &new{2006-04-18 (火) 19:08:48};
-操作ミスと思うのですが、外付けHDDのOSXのラベル(optionキーでブートした時)が”EFI boot"となってしまいました。起動は問題ないのですが、Linuxも同じラベル名なので気になります。labelfileの作成法が解りません。 -- &new{2006-05-08 (月) 12:06:22};
-初めまして、質問したいのですがこの1行ではたりません(^_^;)どこかに掲示板などありませんでしょうか? -- [[糸]] &new{2006-05-22 (月) 23:30:06};
-Linuxbootを使わずに、Bootable CDからUbuntuをインストールできませんか? -- [[unagi]] {2006-06-05 (月) 11:24:30};
--でたばっかの[[Ubuntu 6.06 LTS 日本語化版:http://www.ubuntulinux.jp/News/News20060602]]はまだ対応してないのかな?と言ってみる。 -- [[管理人]]{2006-06-05 (月) 18:47:28};
- 5.05上からアップデートして6.06にできました!ただし,BTキーボードが使えなくなりました。 -- [[Mako]] {2006-06-30 (金) 13:42:56};
- デュアルブート(データ専用領域もつくる)ということを目指してここに来ました。このWikiの共有領域の第三パーティションを,第五(一番最後)にまわして,第四にXPをインストールしました(第二はOSX用データ領域)。…が,第五がXP,OSX共にマウントされません。ディスクユーティリティでも消去・再フォーマットの際MS-DOSファイルシステムを選べません。この場合「共有領域の設定」セクションの操作で設定すべきなのでしょうか。もし必要なら,OSXのコマンドラインから可能でしょうか。長文すみません。 -- [[なかつ]] &new{2006-12-01 (金) 13:29:31};
-- 詳細説明は省略しますが、共有領域は第三パーティションでないとダメだったような気がします。 -- [[管理人]] &new{2006-12-01 (金) 19:13:32};
#comment