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すれば済む。また、XENVMファイルはLinuxファイルシステムをベースしているので、直接マウントしてファイルを設定できるという利点もある。

「え〜い、両方インストールしちゃえ」ということになった。当然1つのLinuxシステムにVMwareXENの両方をインストールは出来ないので、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

これでブートローダのメニューでどちらのルートファイルシステムからでも立ち上げられる様になる。