3.11. Bind マウントとコンテキスト依存のパス名

GFS2 ファイルシステムはコンテキスト依存のパス名 (CDPN) をサポートしません。CDPN は ユーザーが使用できる目的地ファイルやディレクトリへポイントするシンボリックリンクを作成 できるようにするものです。GFS2 内でのこの機能には、mount コマンドで bind オプションを使います。
mount コマンドの bind オプションにより、 ユーザーはファイル階級の一部を本来の場所でまだ使用できる間に別の場所で再マウントできる ようになります。このコマンドの形式は以下のようになります。
mount --bind olddir newdir
このコマンドを実行した後、olddir ディレクトリの内容は、2つの 場所、 olddirnewdir で利用できるようになります。 また、このオプションを使用して個別ファイルを2つの場所で利用できるようにすることが可能です。
例えば、以下のコマンド群を実行した後は、/root/tmp の内容は 以前にマウントされていた /var/log ディレクトリの内容と同一に なります。
[root@menscryfa ~]# cd ~root
[root@menscryfa ~]# mkdir ./tmp
[root@menscryfa ~]# mount --bind /var/log /tmp
別の方法として、/etc/fstab ファイル内のエントリを使用して、 マウント時に同じ結果を達成できます。以下の /etc/fstab エントリは /root/tmp の内容が /var/log ディレクトリの 内容と同一になる結果を得ます。
/var/log                /root/tmp               none    bind            0 0
ファイルシステムをマウントした後、mount コマンドを使用して、 以下の例のようにファイルシステムがマウントされていることを確認できます。
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
コンテキスト依存のパス名をサポートするファイルシステムでは、/bin ディレクトリを コンテキスト依存のパス名として定義しておくと、それがシステムアーキテクチャに応じて以下のパスの1つへ 解決されるでしょう。
/usr/i386-bin
/usr/x86_64-bin
/usr/ppc64-bin
これと同じ機能は空の /bin ディレクトリを作成することで 達成できます。その後は、スクリプトか、/etc/fstab ファイル内の エントリを使用して、mount -bind コマンドで、個別アーキテクチャディレクトリの それぞれを /bin ディレクトリにマウントできます。例えば、スクリプト内の1行として 以下のコマンドを使用することができます。
mount --bind /usr/i386-bin /bin
別の方法として、/etc/fstab ファイル内に以下のエントリを使用できます。
/usr/1386-bin             /bin               none    bind            0 0
bind マウントはコンテキスト依存のパス名よりもより大きな柔軟性を提供します。 この機能を使用して、定義する如何なる基準(ファイルシステムの %fill の値など)に応じても異なるディレクトリにマウントすることができます。 コンテキスト依存のパス名はそれらが担当できるものに限定されます。しかし、%fill の値などの基準に応じてマウントの為の自分のスクリプトを書く必要が あることに注意してください。

警告

オリジナルのファイルシステムが rw でマウントされている場合、ro フラグを使用して bind オプションでファイルシステムをマウントしても、 新規のファイルシステムは rw でマウントされます。 ro フラグは少々無視されます。このケースでは、新規のファイルシステムは /proc/mounts ディレクトリ内で ro とマークが 付くかもしれませんが、これは間違いとなります。