この章では Linux と FreeBSD でスワップパーティションを共有する方法を述 べます.同様のことを実現する他の方法もあるかもしれません.FreeBSD を Linux の前にインストールすることもできますが,FreeBSD スライスのパーティ ションの順序には注意してください.
最初に,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
をインストールする準備ができました.
FreeBSD の文書に従って,FreeBSD をインストールします.Linux のスワップ
パーティションを作った場合には,これを消去します(FreeBSD のfdisk
を使って構いません).FreeBSD スライスでの,パーティションの順番には
注意してください.デフォルトのラベル指定を行った場合には,2番目のパー
ティションがスワップになります.FreeBSD を全てインストールし,
Linux のブートフロッピーディスクを使ってLinux をブートします.
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 を再インストー
ルするしか方法はありません.経験は偉大な教師です. :-)