2006年12月に購入し放置中の
P5B-V
をマルチブートにしたい。
つながっているデバイスは、Maxtor 7H500F0(500GのHDD)、パイオニア製のスーパーマルチドライブ
DVR-A12J とFDD。材料はその他に
DOSフォーマット済みのフロッピーが2枚と、FedoraCore6のDVDとSolaris10のDVD。
ちなみにCPUはE6600(確か2.4GHz)、メモリは3万で買ったブランド製1Gx2。年末に色々買ったが
全部放置してて償却できないままで非常にもったいない。
値段もずいぶん下がったしorz
そんなわけで使わないと勿体無いのでOSを色々入れる事から始める。OS入れるところはさっくりと 省略するが、1台のHDDに色々入れようとするとパーティションを切らないといけない。 Solarisのパーティションツールは非常に使い辛いし、Windowsのもunix系のパーティション を操作できないので、FedoraCoreのfdiskを使うのが一番簡単である。 そこで最初にFC6でパーティションを全部 切ってHDDを全部切り分けた後、FC6をインストールして、その後Solaris x86 11/06を入れようとしたが、 入らないorz
色々調べた結果、どうやら空きシリンダが1つSolarisには必要らしい。 FC6で余り0に切ってしまうとSolarisを入れることが出来ない。なんてこった。
気を取り直して最初からやり直し。パーティション情報を全部消して、今度は最初に Solarisを入れる。 Maxtor 7H500F0 は 60801 シリンダあるのだが、Solarisから見ると60800しか見えない。 どうやら1シリンダは何かのために必要な領域なのだろう。 Primaryパーティション1として15Gほど確保して残りは空き領域にしたまま、 Solarisをインストールしてから、Grubの設定を見る。 これらは後で必要になるので紙にメモっておく。
Primary2をlinux、Primary3をwindows、残り全部(Primary4)を拡張(Extended) パーティションにしてその中にswapを作る。メモリ2Gもあればswapなんぞ要らない 気がするが…。最終的にこんな風にきった。それぞれのパーティションにOSを1つずつ 入れるつもり。
FC6のインストール後、再起動すると、GrubメニューにSolarisが無い。 FC6しか立ち上がらない。ブートメニューを編集してSolarisブートするように指示 してもダメだった。結局MBRにSolaris起動できるローダーを入れ直す必要があるのだが、 今度はせっかくいれたFC6が立ち上がらなくなる恐れがあるので、FDにローダを いれてFC6をFDDから起動できるようにしておく。まず/dev/sda2 にローダを入れて、次にddでFDにコピーする。
念のためSolarisブート用フロッピーも作っておく。この手順もオンラインマニュアルに載っているが、 ボリュームマネージャを止めるという手順が書いてない。用意した2枚目のFDを ドライブにいれて下記の手順を実行する。
でアレコレ調べるとMBRに書くというオプション(-m)を入れ忘れていたのに気づいた。 実行するとさっきとメッセージが違うし慎重だw
WindowsXPをインストールするとMBRにWindowsのブートセレクタが入ってGrubが壊れちゃうので、 インストールする前に、MBRのバックアップを取る。フロッピーの1枚目はもう要らない(2枚目 で両方起動できる)ので、1枚目にコピっておく。
次にWindowsXPのインストール。Primary3のパーティションにインストールする。 インストーラからは"C:"ドライブに見えるので、そこをNTFSでクイックフォーマットして、 インストールする。
XPのインストールが終わってXPが起動したら、コマンドプロンプトを起動。ブートローダ 設定ファイルの隠し属性を取って編集できるようにする。
最後にキモをまとめておく。
しかも FedoraProjectのWiki に行ったら明日Fedora7が出るとか書いてあるしw
そんなわけで使わないと勿体無いのでOSを色々入れる事から始める。OS入れるところはさっくりと 省略するが、1台のHDDに色々入れようとするとパーティションを切らないといけない。 Solarisのパーティションツールは非常に使い辛いし、Windowsのもunix系のパーティション を操作できないので、FedoraCoreのfdiskを使うのが一番簡単である。 そこで最初にFC6でパーティションを全部 切ってHDDを全部切り分けた後、FC6をインストールして、その後Solaris x86 11/06を入れようとしたが、 入らないorz
色々調べた結果、どうやら空きシリンダが1つSolarisには必要らしい。 FC6で余り0に切ってしまうとSolarisを入れることが出来ない。なんてこった。
気を取り直して最初からやり直し。パーティション情報を全部消して、今度は最初に Solarisを入れる。 Maxtor 7H500F0 は 60801 シリンダあるのだが、Solarisから見ると60800しか見えない。 どうやら1シリンダは何かのために必要な領域なのだろう。 Primaryパーティション1として15Gほど確保して残りは空き領域にしたまま、 Solarisをインストールしてから、Grubの設定を見る。 これらは後で必要になるので紙にメモっておく。
# cd /boot/grub # cat menu.lst title Solaris 10 11/06 s10x_u3wos_10_X86 root (hd0,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title Solaris_failsafe root (hd0,0,a) kernel /boot/multiboot kernel/unix -s module /boot/x86.miniroot-safeSolarisを入れ終わったら、今度はFC6を入れる。FC6のDVDを入れて起動し、 インストールの画面を出す。P5B-Vはなぜかtextモードじゃないとうまく いかないので、boot: linux text と最初に入れて起動する。 言語やキーボードを選んだ後、パーティションタイプを選ぶ所まできたら、 Alt+F2 を押してシェルを出し、ここでパーティションを切る。
sh-3.1# fdisk /dev/sda Device Boot Start End Blocks Id System /dev/sda1 2 1914 15366172+ bf SolarisなるほどSolarisで作ったPrimary1のパーティション/dev/sda1が シリンダ2から始まっている。最初にこれがわかっていれば無駄な苦労をしなくて済んだ のになあ。
Primary2をlinux、Primary3をwindows、残り全部(Primary4)を拡張(Extended) パーティションにしてその中にswapを作る。メモリ2Gもあればswapなんぞ要らない 気がするが…。最終的にこんな風にきった。それぞれのパーティションにOSを1つずつ 入れるつもり。
sh-3.1# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 2 1914 15366172+ bf Solaris /dev/sda2 1915 3828 15374205 83 Linux /dev/sda3 3829 25888 177196950 7 HPFS/NTFS /dev/sda4 25889 60801 280438672+ 5 Extended /dev/sda5 25889 26524 5108638+ 82 Linux swap / Solaris /dev/sda6 26525 48584 177196918+ 7 HPFS/NTFS /dev/sda7 48585 49856 10217308+ b W95 FAT32 /dev/sda8 49857 51770 15374173+ 83 Linux /dev/sda9 51771 53684 15374173+ 83 Linux /dev/sda10 53685 60801 57167271 7 HPFS/NTFSインストールの設定をフガフガと入力し、GRUB Boot Loader の設定のところまで来た。 FC6のローダならSolarisも読んでくれると過大な期待をして、デフォルトの MBR にGrubを入れてしまった(今思えば/dev/sda2の先頭に 入れておくんだった)。
FC6のインストール後、再起動すると、GrubメニューにSolarisが無い。 FC6しか立ち上がらない。ブートメニューを編集してSolarisブートするように指示 してもダメだった。結局MBRにSolaris起動できるローダーを入れ直す必要があるのだが、 今度はせっかくいれたFC6が立ち上がらなくなる恐れがあるので、FDにローダを いれてFC6をFDDから起動できるようにしておく。まず/dev/sda2 にローダを入れて、次にddでFDにコピーする。
# grub-install /dev/sda2 # dd if=/dev/sda2 of=/dev/fd0 bs=512 count=1このFDからブートできるのを確認したら、FC6 の grub.conf もメモって置く。
# cd /boot/grub # cat menu.lst title Fedora Core 6 (2.6.18-1.2798.fc6) root (hd0,1) kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img次は起動しなくなったSolarisのレスキュー。Solaris のDVDから起動し、インストーラの Grubが立ち上がったところで、すかさず "e" を押してEdit。前にメモっておいた Solaris のmenu.lst になるように編集する。キーマップが異なるのがツライ。 まだかろうじて指がASCII 配列を覚えているがそろそろヤバいw
root (hd0,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archiveをを。これでインストールしたSolarisが起動する。Solarisでgrubをインストール し直すのだが、その前に、grubのメニューにFC6を追加。
# cd /boot/grub # vi menu.lst # cat menu.lst (一部省略) title Solaris 10 11/06 s10x_u3wos_10_X86 root (hd0,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title Solaris_failsafe root (hd0,0,a) kernel /boot/multiboot kernel/unix -s module /boot/x86.miniroot-safe title Fedora Core 6 (2.6.18-1.2798.fc6) root (hd0,1) kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.imgmenu.lstに追加したら、これをMBRにインストールすればいいんだけど、Solarisでどうやるんですかね。 とりえず man grub; man installgrub と辿って書いてあることをそのまま実行。
# cd /boot/grub # installgrub ./stage1 ./stage2 /dev/rdsk/c1d0s0 stage1 written to partition 0, sector 0 (abs 16065) stage2 written to partition 0, 233 sectors starting at 50 (abs 16115)MBRがでかくなるからHDDの先頭1シリンダが使えないのかなあ。でもなんか違う気もする。 スライス情報を記憶する場所が必要なのかな?まあいいや。man だと c0d0s0 になってるけど、自分とこはなぜかc1d0s0だ。
念のためSolarisブート用フロッピーも作っておく。この手順もオンラインマニュアルに載っているが、 ボリュームマネージャを止めるという手順が書いてない。用意した2枚目のFDを ドライブにいれて下記の手順を実行する。
# /etc/init.d/volmgt stop # mkdir /mnt2 # mount -F pcfs /dev/diskette /mnt2 # mkdir -p /mnt2/boot/grub # cp /boot/grub/* /mnt2/boot/grub # umount /mnt2 # cd /boot/grub # /sbin/installgrub stage1 stage2 /dev/rdiskette作ったフロッピーからSolarisとFC6が起動するのを確認してOKだった。フロッピーを ドライブから抜いて、MBRからSolarisをブートしようとしたら、立ち上がらない。というか メニューにSolarisが無い。さっきインストールしたはずなのに。
でアレコレ調べるとMBRに書くというオプション(-m)を入れ忘れていたのに気づいた。 実行するとさっきとメッセージが違うし慎重だw
# cd /boot/grub # installgrub -m ./stage1 ./stage2 /dev/rdsk/c1d0s0 Updating master boot sector destroys existing boot managers (if any). continue (y/n)?y stage1 written to partition 0, sector 0 (abs 16065) stage2 written to partition 0, 233 sectors starting at 50 (abs 16115) stage1 written to master boot sector再起動して、MBRのGrubからSolarisとFC6が起動するのを確認してOKだった。 フロッピーの2枚目からも両方起動できるのを確認済みなので、次はWindowsXPを入れる。
WindowsXPをインストールするとMBRにWindowsのブートセレクタが入ってGrubが壊れちゃうので、 インストールする前に、MBRのバックアップを取る。フロッピーの1枚目はもう要らない(2枚目 で両方起動できる)ので、1枚目にコピっておく。
# uname Linux # mformat a: # mount -t vfat /dev/fd0 /mnt # cd /mnt # dd if=/dev/sda of=./mbr_grub.bin bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.0183814 secounds, 27.9 kB/s # mdir a: mbr_grub.binこのようにして作ったmbr_grub.binは大事に取っておく。
次にWindowsXPのインストール。Primary3のパーティションにインストールする。 インストーラからは"C:"ドライブに見えるので、そこをNTFSでクイックフォーマットして、 インストールする。
XPのインストールが終わってXPが起動したら、コマンドプロンプトを起動。ブートローダ 設定ファイルの隠し属性を取って編集できるようにする。
c:hoge>cd c:>attrib SH C:boot.ini c:>attrib -s -h boot.iniCドライブのルートに現れた boot.ini を編集する。1行を書き加える。
c:mbr_grub.bin="Grub (Solaris 10, Fedora Core 6)"あと1枚目のFDに作ったはずの mbr_grub.bin を C:において置く。 これで再起動すると、MBRに入ったWindowsブートローダからGrubを呼び出せるようになる。 FC6とSolarisがちゃんと起動できるのを確認し、ついでに、GrubからWindowsを起動できるように 設定する。Solarisを起動して menu.lstを編集し3行追加する。
# cd /boot/grub # vi menu.lst # cat menu.lst (中略) title Windows Boot Loader rootnoverify (hd0,2) chainloader +1これでWindowsのブートローダとgrubを行ったり来たり出来るようになる。 2枚目のフロッピーのmenu.lstも同様に変更し、大事に取っておく。
最後にキモをまとめておく。
- 最初にSolarisをインストールしてSolarisのパーティションだけ作る(Primary1)。
- 次にPrimary2にlinuxを入れてfdiskでパーティションを全部切る。
- grub は Solarisのを使う。
- Windowsは一番最後にいれるがその前に必ずMBRをバックアップする。
しかも FedoraProjectのWiki に行ったら明日Fedora7が出るとか書いてあるしw