4.12. 複数マウントの結合とコンテキスト依存のパス名
GFS2 ファイルシステムではコンテキスト依存のパス名 (CDPN) には対応していません (コンテキスト依存のパス名を使用すると可変のファイルやディレクトリーをポイントするシンボリックリンクを作成することが可能)。GFS2 では、
mount
コマンドの bind
オプションを使用すると同様の動作を行わせることができます。
mount
コマンドの bind
オプションを使用すると、ファイル階層の一部をオリジナルの場所で使用可能な状態のまま別の場所でも再マウントできるようになります。コマンドの形式を以下に示します。
mount --bind olddir newdir
このコマンドを実行すると、
olddir
ディレクトリーのコンテンツは olddir
と newdir
の 2 ヶ所で使用できるようになります。またこのオプションを使用するとひとつのファイルが 2 ヶ所でアクセスできるようになります。
例えば、以下のコマンドを実行すると、
/root/tmp
のコンテンツが以前にマウントした /var/log
ディレクトリーの内容と全く同じになります。
[root@menscryfa ~]#cd ~root
[root@menscryfa ~]#mkdir ./tmp
[root@menscryfa ~]#mount --bind /var/log /root/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
定義する基準 (ファイルシステムの
%fill
の値など) に応じて異なる複数のディレクトリーをマウントすることができるため、マウントの結合によりコンテキスト依存のパス名より高い柔軟性を得ることができます。コンテキスト依存のパス名の場合は対象範囲がより限定されています。ただし、%fill
の値などの基準に応じて、独自のマウント用スクリプトを記述する必要があるので注意してください。
警告
bind
オプションでファイルシステムをマウントしたときにオリジナルのファイルシステムが rw
でマウントされている場合、ro
フラグを使用してもこのファイルシステムは rw
でマウントされることになります。 つまり、ro
フラグは警告なしに無視されます。このような場合には、/proc/mounts
ディレクトリー内でそのファイルシステムに ro
の印が付いている可能性があります。このため意図しない結果となっている場合があります。