スポンサーリンク

MOUNT_UNIONFS(8) FreeBSD システム管理者マニュアル MOUNT_UNIONFS(8)

名称

mount_unionfs − ユニオンファイルシステムをマウントする

書式

mount_unionfs [−br] [−o options] directory uniondir

解説

mount_unionfs ユーティリティは directoryuniondir の上に接続し、そこか ら両方のディレクトリツリーの内容が見えるようにします。デフォルトでは、 directory が 上の層に、 uniondir が 下の層になります。

オプションには以下のものがあります:

       −b

デフォルトの上下関係を反転します。つまり、 directory が下の層に、 uniondir が上の層になります。ただし、マウントポイントは uniondir のままになります。

−o
−o
フラグの後には、オプション文字列をコンマで区切って指定します。 指定可能なオプションと、その意味については mount(8) を参照してく ださい。

−r
mount_nullfs(8) でマウントした場合と同様に、下の層を完全に隠すよ うになります。

ファイルシステムのセキュリティを維持するため、ファイルシステムをマウント するユーザは、スーパユーザか、マウントポイントのディレクトリに書き込み許 可を持つ者でなければなりません。さらに、普通のユーザがファイルシステムを マウントするを許可するには、 vfs.usermount sysctl(8) 変数を 1 に設定しな ければなりません。

ファイルの検索は、上の層、下の層の順におこなわれます。上の層にはエントリ のないディレクトリが、下の層で見つかった場合には、上の層に シャドウディレ クトリが作られます。このディレクトリはユニオンマウントを実行したユーザの 所有になり、モードは ‘‘rwxrwxrwx’’ (0777) をその時点で有効な umask で修正 したものになります。

あるファイルが上の層に存在している場合、下の層にある同じ名前のファイルを アクセスする方法はありません。どうしても必要なら、ループバックマウントと ユニオンマウントを組み合せることで、別のパス名を使って下の層のファイルを アクセスできるようにしておくことができます。

オブジェクトへのアクセスは、それがディレクトリである場合を除き、通常の ファイルシステムのアクセス権チェックのあとで実行されます。ディレクトリの 場合には、アクセスをおこなうユーザは上の層と下の層の両方のディレクトリの アクセス権を持っていなければなりません (両方のディレクトリが存在している 必要があります)。

いくつかの特別な場合を除き、 uniondir 中のオブジェクトの作成や変更の要求 は上の層に渡されます。下の層に存在するファイルを書き込み用にオープンしよ うとすると、そのファイルの 完全なコピーが上の層に作成され、それから上の層 のコピーがオープンされます。同様に、下の層のファイルを切り詰めてサイズを 0 にしようとすると、空のファイルが上の層に作成されることになります。これ 以外の、本当に下の層の変更が必要となる操作は失敗し、 EROFS が返されます。

ユニオンファイルシステムは、個々のファイルシステムを扱うというよりも名前 空間を扱うものです。ユニオンマウントは uniondir 以下のディレクトリツリー に再帰的に影響します。このため uniondir 以下にマウントされたファイルシス テムは、すべてユニオン効果を持つようになります。これが mount(8)union オプションとは異なる点です。 union オプションでは、ユニオン効果はマウント ポイントだけに働き、ファイル名の探索のみに使われます。

使用例

コマンド

      mount -t cd9660 -o ro /dev/cd0a /usr/src
      mount -t unionfs /var/obj /usr/src

は、CD-ROM ドライブ /dev/cd0a/usr/src にマウントし、その上に /var/obj を重ねます。ほとんどの場合、これはソースツリーが実際には CD-ROM 上にある にもかかわらず、書き込みが可能になるという効果を目的としています。

コマンド

      mount -t unionfs -o -b /sys $HOME/sys

は、ユーザのホームディレクトリの下の sys ディレクトリに、システムのソース ツリーを下の層として重ね合わせます。これにより、個々のユーザがそのソース ツリーに対して個人的な変更を加えて、新しいカーネルを構築することができる ようになります。他のユーザはその変更に関知しません。下の層のファイルは、 そのまま /sys からアクセスできることに注意してください。

関連項目

intro(2), mount(2), unmount(2), fstab(5), mount(8), mount_nullfs(8)

バグ

本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能 しないということです) し、実際のところ使用するとシステム上のデータを破壊 するかもしれません。自己責任において使用してください。猛犬注意。濡れてい て滑ります。

危険性を減らすためには、このコードもまた所有者を必要としています - 真面目 なハッカーの方はメールを ⟨hackers@FreeBSD.org⟩ に送って引き継ぎの意思を宣 言してください。

上の層を支えているファイルシステムで、ホワイトアウトがサポートされていな いため、下の層のオブジェクトに対して削除や名前変更の操作をおこなう方法は ありません。このような操作や、下の層を変更する操作、たとえば chmod(1) の ような操作に対しては、 EROFS が返されます。

ユニオンツリーの上で find(1) を実行すると、上の層にシャドウディレクトリの ツリーが作成されてしまうという副作用があります。

歴史

mount_unionfs ユーティリティは 4.4BSD ではじめて登場しました。最初に動作 したのは FreeBSD -(要記入) です (訳注: 原文 は FreeBSD-(fill this in))。

FreeBSD 10.0 March 27, 1994 FreeBSD 10.0

スポンサーリンク