FreeBSD Daily Topics

2010年7月12日/と/usrとリードオンリーにして堅牢に運用する方法

tips

How to setup robust FreeBSD / and /usr

FreeBSDではカーネルやシステムの起動に必要になるソフトウェアやライブラリは/パーティションにインストールし、ベースとなるユーザランド関連のソフトウェアやライブラリ、ドキュメントは/usrにインストールします。/や/usrは運用時にはデータを書き込む必要がなく、書き込み権限がなくてもとくに問題ありません。書き込みが発生する領域は/varや/usr/localを使うように切り分けが実施されています。

何らかの原因で/や/usrの必要なものが壊れると、それに引きずられてシステムが起動しなくなったり、起動してもおかしな挙動を見せることがあります。こうしたケースを避け、より堅牢なシステム運用を実現するテクニックのひとつに/と/usrをリードオンリーでマウントして利用するというテクニックがあります。/etc/fstabの該当部分をro指定にして、リードオンリーでマウントさせるようにします。

/と/usrをリードオンリーでマウントする設定 - /etc/fstab
/dev/ada0s1a  /     ufs ro 1 1
/dev/ada0s1e  /usr  ufs ro 2 2

/と/usrが読み書き可能である状態と比べて、不慮の操作でしてはいけない作業をしてしまうという危険性も減ります。ただしこれでは、ユーザの追加や/etc/以下のファイルの書き換え、それにカーネルやシステムのビルドやインストールができません。/や/usr以下の変更が必要になる場合、次のようにmount(8)コマンドを使うことでオンザフライでリードオンリーから読み書き可能へ変更できます。

オンザフライでリードオンリーから読み書き可能へ変更 mount(8)
sudo mount -u -o rw /
sudo mount -u -o rw /usr

変更を伴なう作業が終わったら、次のように再びリードオンリーへ戻しておきます。

リードオンリーへ戻す
sudo mount -u -o ro /
sudo mount -u -o ro /usr

最新のカーネルモジュールや最新のベータドライバを使うと頻繁にシステムがフリーズしたり再起動することがあります。H/Wとの兼ね合いもありますが、あまり頻繁にクラッシュやフリーズを繰り返すと、システムが起動しなくなることがあります。このように/と/usrとリードオンリーで運用する仕組みに変更することで、そうした問題を回避しやすくなるでしょう。

おすすめ記事

記事・ニュース一覧