前のページ 次のページ 目次

3. Linux と FreeBSD でスワップを共有する

この章では Linux と FreeBSD でスワップパーティションを共有する方法を述 べます。同様のことを実現する他の方法もあるかもしれません。ここで述べる 方法は Red Hat Linux 4.1 と 4.2 (Linux カーネル 2.0.29 と 2.0.30) と FreeBSD 2.2.2 を想定しています。Linux より先に FreeBSD をインストール することもできますが、FreeBSD のスライス内のパーティションの順番には注 意してください。

3.1 Linux のインストール

最初に、Linux を普通にインストールします。ハードディスクには FreeBSD のスライスに割り当てる分は残しておかなければなりません。Linux のスワッ プパーティションは作る必要はありません。もし必要な場合には、FreeBSD に 割り当てる予定のパーティションを指定しておます。こうしておけば、後で Linux のスワップパーティションを削除して、 FreeBSD で用いることができ ます。

Linux のインストールが終ったら、次はカーネルを再構築します。カーネル再 構築が初めてならば、The Linux Kernel HOWTOを読むといいでしょう。 カーネルは、UFS ファイルシステムBSD ディスクラベル (FreeBSD のパーティションテーブル)をサポートするようにしておかな ければなりません

UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
(NEW) y

新しいカーネルをインストールして、コンピュータを再起動します。Linux ス ワップパーティションを作った場合には、/etc/fstabファイルから swapを含む行を削除します。新しいカーネルが入っていて Linux の ブートディスクがあることを確認してください。以上で FreeBSD をインストー ルする準備ができました。

3.2 FreeBSD のインストール

FreeBSD の文書に従って、FreeBSD をインストールします。Linux のスワップ パーティションを作った場合には、これを消去します(FreeBSD のfdisk を使ってかまいません)。FreeBSD スライスでの、パーティションの順番には 注意してください。デフォルトのラベル指定を行った場合には、2番目のパー ティションがスワップになります。FreeBSD を全てインストールし、 Linux のブートディスクを使ってLinux をブートします。

3.3 Linux で FreeBSD のスワップパーティションを使う設定をする

Linux が起動したらdmesgを実行します。出力は次のようになります。

Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

この出力は /dev/hda4 がFreeBSDのスライスであり、 /dev/hda5, /dev/hda6, /dev/hda7, /dev/hda8 が FreeBSD のパーティショであることを表しています。 スワップがスライス内の2番目のパーティションであれば、 /dev/hda6がスワップということになります。

スワップパーティションを有効にするため、/etc/fstabに次の行を 追加します。

/dev/hda6       none            swap            sw              0       0

FreeBSD ではどんなパーティションでもスワップとして使うことができますが、 Linux のスワップパーティションには特別な印(signature)が書かれていなけ ればなりません。この印はmkswapが作成します。スワップパーティショ ンを共有すると、FreeBSD がこの印を壊してしまいますから、Linux を起動す るたびに毎回mkswapを実行しなければなりません。これを自動的に行う ために、起動時にswaponを実行するスクリプトを見つけて変更します。 Red Hat Linux の場合には/etc/rc.d/rc.sysinitです。以下の行を swapon -aに挿入します。

awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

これによって、起動時に毎回/etc/fstabに記述されている全てのス ワップパーティションに対して、mkswapが実行されるようになります。 これはコメントアウトされている(行の先頭の文字が``#''である)場合に は実行されません。

Linux を再起動した後、freeコマンドでスワップの大きさを確認します。 また、FreeBSD を起動して、きちんと動作しているかどうかを確認します。う まく動作しない場合には、たぶん間違ったパーティションをスワップとして使っ ていると思われます。こうなってしまった場合には、FreeBSD を再インストー ルするしか方法はありません。経験は偉大な教師です。 :-)


前のページ 次のページ 目次