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

3. Linux と FreeBSD でのスワップ共有

この章では Linux と FreeBSD でスワップパーティションを共有する方法を述 べます.同様のことを実現する他の方法もあるかもしれません.FreeBSD を Linux の前にインストールすることもできますが,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がスワップということになります.

スワップパーティションを有効にするため,Linux の /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 を再インストー ルするしか方法はありません.経験は偉大な教師です. :-)


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