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

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

この章では Linux と FreeBSD でスワップパーティションを共有する方法を述 べます。同様のことを実現する他の方法もあるかもしれません。ここで述べる 方法は Red Hat Linux 4.1 と FreeBSD 2.2.2 を想定しています。

2.1 Linux のインストール

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

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

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

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

2.2 FreeBSD のインストール

FreeBSD の文書に書いてあるように FreeBSD をインストールします。Linux のスワップパーティションがある場合には消去します(FreeBSD のfdisk を使ってかまいません)。FreeBSD パーティションのどのスライスがスワップ になっているか覚えておきます。デフォルトでは2番目のスライスとなります。 FreeBSD を全部インストールし、Linux のブートディスクを使ってLinux をブートします。

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

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

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

この出力は /dev/hda4 がFreeBSDのパーティションであり、 /dev/hda5, /dev/hda6,/dev/hda7 がパーティショ ン内のスライスであることを表しています。スワップが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 を再インストールす るしか方法はありません。経験は偉大な教師です。 :-)


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