Fedoraのダブルインストール
- Fedoraダブルインストールの経緯
Fadora 7ではInspiron 1501の外部モニタが思う様に使えないので、一旦、Fedora Core 6に戻して、当初の目的であるVMware Serverをインストールしてみたが、どうも良くない。VMをShutdownするとVMのサービス自身がゾンビ化して、ホストマシンをシャットダウンできなくなってしまう。(以前、試しにF7にインストールした時はこういった不具合はなかったのだが。)
FC6でVMware Serverが使えないのであれば(XENも3.0しか使えないし)FC6にする必要もない。そこで画面の問題は未解決だがF7をベースに仮想マシンの環境を構築することにした。外部モニタの件に関しては「(Radeonドライバのxorg.confで)PanelSizeオプションを使って外部モニタだけをつかう」方法をとる。この方法だとInspiron 1501本体の液晶は使えなくなってしまうが、普段は外部モニタ、外部キーボード、外部マウスで作業するので問題はないだろう。持ち運んで使うときはPanelSizeオプションを外したxorg.confに差し替えて使うことにする。(液晶の同期がとれていない状態で使い続けることで液晶の寿命を縮めるのではないか、という一抹の不安はあるが。)まぁ、ATIさんには期待せずにFedora 7でも使えるドライバが出てくるの待とう。(でも、RedhatやFC6で動いているのであればATIの問題ではなくてFedora側の問題のような気もするが。)
さて、F7をベースとなるとVMware ServerにするのかオープンソースXENにするのか迷う。操作性やVMware Playerとの連携を考えるとVMwareかな、と思うのだが、VMwareだとカーネルのバージョンとかが上がって行く内に何回も設定をし直さなければならない不安もある。XENであればF7のレポジトリに入っているので、何も考えずにyum updateすれば済む。また、XENのVMファイルはLinuxのファイルシステムをベースしているので、直接マウントしてファイルを設定できるという利点もある。
「え〜い、両方インストールしちゃえ」ということになった。当然1つのLinuxシステムにVMwareとXENの両方をインストールは出来ないので、1台のホストマシン(この場合Inspiron 1501である)にVMware用とXEN用の2つのLinuxをインストールする。
Linux2つの他にInspiron 1501にバンドルされていたWindows XPも使いたいので次のようなパーティション構成にした。
/dev/sda1 Windows XP 8GB /dev/sda2 /boot 102MB /dev/sda3 swap(2つのLinuxで共有する)3GB /dev/sda4 以下sda5〜sda7の拡張パーティション /dev/sda5 XEN用ルートファイルシステム 8GB /dev/sda6 /home(2つのLinuxで共有する。/home以外の共有ディレクトリも格納予定) /dev/dsa7 VMware用ルートファイルシステム 8GB
2つのLinuxは同時に立ち上げないので、swapと/homeは共有する形になる。(本当はsda6をVMware用、sda7を/homeとしたかったのだが、F7のインストール・ソフトでやると何故か逆になってしまった。VMware用ルートとswapの距離が出てしまうのでメモリ負荷の多いときの性能が落ちる様な気もするが、(指定の順序を間違えたのだと思うが)やり直すのも面倒なので、このままにした。別に商用サーバを立てるわけでもあるまし。)また2つのLinuxのルートファイルシステムは同じ大きさ(同じセクタ数)にしておいた。そうすればイメージコピーが出来るので。
【後日談】
BIOSの設定の問題もあり、再度インストールすることになったので、パーティションの配置を確認したところ次のようになっていた。
パーティション 開始シリンダ 終了シリンダ /dev/sda1 1 1044 /dev/sda2 1045 1057 /dev/sda3 1058 1439 /dev/sda4 1440 9729 /dev/sda5 1440 2459 /dev/sda6 2460 3479 /dev/dsa7 3480 9729
つまり、名前はsda5、sda7と飛んでいるが実は連続して配置されていた。
【後日談終】
しかし、仮想マシンを構築しようとしているのに、生OSが幾つも搭載されているのはちょっと本末転倒のような気もしなくは無い。
尚、今回は論理パーティションを使わずに全部物理パーティションに分けた。インストールする2つのLinuxは仮想マシンのホストOSとして動けば良いので、拡張性とかは余り必要ないだろう。必要であれば仮想マシンのゲストOSの方で何とでもなるから。それよりは少しでも性能重視の方が良い。仮想マシンは重そうなので。
- Linuxダブルインストールの手順
インストールは以下の手順で行なった。
1. 通常にFedora 7をインストールする。
上のパーティション構成で/dev/sda5(将来のXEN用ルート)にF7を通常通りインストールする。インストール後、直ちにパッケージの更新を行なっておく。また必要に応じて初期の設定(/etc/X11/xorg.conf、/etc/hosts、/etc/fstab等)と追加のパッケージをダウンロードしておく。(このルートファイルシステムが、もう一つのルートのコピー元となるため。設定を別々に2回行なうのはメンドクサイので。)特にfstabに関しては次のように変更した。
インストールしたばかりのオリジナルのfstabは次のようなになっている。
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=/home /home ext3 defaults 1 2 LABEL=/foreign /foreign ext3 defaults 1 2 LABEL=SWAP-sda3 swap swap defaults 0 0
LABELを使ってデバイスを指定しているが、分かりやすい様にデバイス名を使って次のように書き換えておく。
/dev/sda5 / ext3 defaults 1 1 /dev/sda2 /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda6 /home ext3 defaults 1 2 /dev/sda7 /foreign ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0
2. LiveCDを使ってルートファイルシステムをコピーする。
一通り設定が終了したらshutdownして、LiveCDを使って立ち上げる。(Fedora 7のLiveCDである必要はない。ファイルシステムがmountできてddでコピーできれば。)
LiveCDで立ち上げておいて、先程インストールした/dev/sda5から/dev/sda7へファイルシステムをコピーする。
先ず念のために各ファイルシステムをマウントして内容を確認する。
# mkdir /mnt5 /mnt7 # mount /dev/sda5 /mnt5 # ls /mnt5 bin etc lib media net root srv usr boot foreign lib64 misc opt sbin sys var dev home lost+found mnt proc selinux tmp # mount /dev/sda7 /mnt7 # ls /mnt7 lost+found # umount /mnt5 /mn7
次にXEN用ルートファイルシステムをディスクイメージとしてVMware用ファイルシステムへコピーする。
# dd if=/dev/sda5 of=/dev/sda7 bs=8M
パーティションサイズが8メガバイト単位でしか変更できなかったので、8M毎に読み書きするようにした。途中離席したので正確にはわからないが大体10分位でコピーできたと思う。(今回はメンドクサイかったので2つのパーティションの大きさを全く同じにしてイメージコピーしていまったが、パーティションの大きさが異なる場合はパイプによるtarコマンドの連結でファイルシステムをコピーできる。(cpioでもいいけど。))
3. 2番目のルートファイルシステムの設定をする
LiveCDの状態で、2番目のファイルシステムの/etc/fstabを設定する。
XEN用ファイルシステム(/dev/sda5)の/etc/fstabは先ほど次のように書き換えておいた:
/dev/sda5 / ext3 defaults 1 1 /dev/sda2 /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda6 /home ext3 defaults 1 2 /dev/sda7 /foreign ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0
これに対して、VMware用ファイルシステム(/dev/sda7)の/etc/fstabを次のように変更する。
/dev/sda7 / ext3 defaults 1 1 /dev/sda2 /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda6 /home ext3 defaults 1 2 /dev/sda5 /foreign ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0
「/」と「/foreign」のデバイスが入れ替わっていることに注意。
この書き変え作業は次のように行う。
# mount /dev/sda7 /mnt7 # vi /mnt7/etc/fstab /dev/sda5 と /dev/sda7 を交換する # umount /mnt7
これで一旦リブートする。単にリブートすれば1番目の(XEN用の)ルートファイルシステムで立ち上がる。
4. ブートローダの設定
/boot/grub/grub.confに2番目のルートファイルシステムからもブートできる様に項目を追加する。
default=0 timeout=5 splashimage=(hd0,1)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.21-1.3228.fc7) root (hd0,1) kernel /vmlinuz-2.6.21-1.3228.fc7 ro root=LABEL=/ acpi=off rhgb quiet initrd /initrd-2.6.21-1.3228.fc7.img title Fedora (2.6.21-1.3194.fc7) root (hd0,1) kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ acpi=off rhgb quiet initrd /initrd-2.6.21-1.3194.fc7.img title Windows XP rootnoverify (hd0,0) chainloader +1
これに対して次のように変更する。(「Fedora 7b」の部分の追加)
default=0 timeout=5 splashimage=(hd0,1)/grub/splash.xpm.gz hiddenmenu title Fedora 7a (2.6.21-1.3228.fc7) root (hd0,1) kernel /vmlinuz-2.6.21-1.3228.fc7 ro root=LABEL=/ acpi=off rhgb quiet initrd /initrd-2.6.21-1.3228.fc7.img title Fedora 7b (2.6.21-1.3228.fc7) root (hd0,1) kernel /vmlinuz-2.6.21-1.3228.fc7 ro root=/dev/sda7 acpi=off rhgb quiet initrd /initrd-2.6.21-1.3228.fc7.img title Fedora (2.6.21-1.3194.fc7) root (hd0,1) kernel /vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ acpi=off rhgb quiet initrd /initrd-2.6.21-1.3194.fc7.img title Windows XP rootnoverify (hd0,0) chainloader +1