2.2.3. マウントの共有
システム管理作業の中には、同じファイルシステムにディレクトリーツリー内の複数の場所からのアクセスしないといけない場合があります (chroot 環境を準備する場合など)。このような要件に対処するために、mount コマンドは、特定のマウントを複製する手段を提供する
--bind オプションを実装します。以下のような使用法になります。
mount --bind old_directory new_directory
mount --bind old_directory new_directory
上記のコマンドは、両方の場所からファイルシステムにアクセスできますが、元のディレクトリー内にマウントされているファイルシステムには適用されません。これらのマウントも含めるには、次のように入力します。
mount --rbind old_directory new_directory
mount --rbind old_directory new_directory
さらに、Red Hat Enterprise Linux 5.10 は可能な限り柔軟性を提供するために、共有サブツリー と呼ばれる機能を実装します。この機能により、以下の 4 つのマウントタイプを使用できます。
- 共有マウント
- 共有マウントを使用すると、特定のマウントポイントの正確なレプリカを作成できます。共有マウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映され、その逆も同様です。共有マウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-shared mount_point
mount --make-shared mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。mount --make-rshared mount_point
mount --make-rshared mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用例は、例2.4「共有マウントポイントの作成」 を参照してください。 - スレーブマウント
- スレーブマウントを使用すると、指定したマウントポイントの限定的な複製を作成できます。スレーブマウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映されますが、スレーブマウント内のマウントは元のマウントに反映されません。スレーブマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-slave mount_point
mount --make-slave mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。mount --make-rslave mount_point
mount --make-rslave mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用例は、例2.5「スレーブマウントポイントの作成」 を参照してください。例2.5 スレーブマウントポイントの作成
/mediaディレクトリーのコンテンツが/mntにも表示されるようにし、/mntディレクトリーのマウントを/mediaに反映させないようにするとします。これを実行するには、rootで、最初に/mediaディレクトリーを 「共有」 としてマークします。mount --bind /media /media mount --make-shared /media
~]# mount --bind /media /media ~]# mount --make-shared /mediaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、その複製を/mntで作成します。ただし、「slave」 としてマークします。mount --bind /media /mnt mount --make-slave /mnt
~]# mount --bind /media /mnt ~]# mount --make-slave /mntCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、/media内のマウントが/mntにも表示されることを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ディレクトリーが存在する場合は、以下のコマンドを実行します。mount /dev/cdrom /media/cdrom ls /media/cdrom ls /mnt/cdrom
~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom EFI GPL isolinux LiveOSCopy to Clipboard Copied! Toggle word wrap Toggle overflow また、/mntディレクトリーにマウントされているファイルシステムが/mediaに反映されて いない ことを確認することもできます。たとえば、/dev/sdc1デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/ディレクトリーが存在する場合は、以下を入力します。mount /dev/sdc1 /mnt/flashdisk ls /media/flashdisk ls /mnt/flashdisk
~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow - プライベートマウント
- プライベートマウントを使用すると、通常のマウントを作成できます。プライベートマウントが作成されると、元のマウントポイント内の後続のマウントがそれに反映されず、プライベートマウント内のマウントは元のマウントに反映されません。プライベートマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-private mount_point
mount --make-private mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。mount --make-rprivate mount_point
mount --make-rprivate mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用例は、例2.6「プライベートマウントポイントの作成」 を参照してください。例2.6 プライベートマウントポイントの作成
例2.4「共有マウントポイントの作成」 でシナリオを考慮に入れて、rootで以下のコマンドを使用して共有マウントポイントを作成していることを前提としています。mount --bind /media /media mount --make-shared /media mount --bind /media /mnt
~]# mount --bind /media /media ~]# mount --make-shared /media ~]# mount --bind /media /mntCopy to Clipboard Copied! Toggle word wrap Toggle overflow /mntディレクトリーに 「private」 のマークを付けるには、次のように入力します。mount --make-private /mnt
~]# mount --make-private /mntCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、/media内のマウントが/mntに表示されないことを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ディレクトリーが存在する場合は、以下のコマンドを実行します。mount /dev/cdrom /media/cdrom ls /media/cdrom ls /mnt/cdrom
~]# mount /dev/cdrom /media/cdrom ~]# ls /media/cdrom EFI GPL isolinux LiveOS ~]# ls /mnt/cdrom ~]#Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、/mntディレクトリーにマウントされているファイルシステムが/mediaに反映されていないことを確認することもできます。たとえば、/dev/sdc1デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/ディレクトリーが存在する場合は、以下を入力します。mount /dev/sdc1 /mnt/flashdisk ls /media/flashdisk ls /mnt/flashdisk
~]# mount /dev/sdc1 /mnt/flashdisk ~]# ls /media/flashdisk ~]# ls /mnt/flashdisk en-US publican.cfgCopy to Clipboard Copied! Toggle word wrap Toggle overflow - バインド不可能なマウント
- バインド不可能なマウントを使用すると、特定のマウントポイントが重複しないようにすることができます。バインド不可能なマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-unbindable mount_point
mount --make-unbindable mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。mount --make-runbindable mount_point
mount --make-runbindable mount_pointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用例は、例2.7「バインド不可能なマウントポイントの作成」 を参照してください。例2.7 バインド不可能なマウントポイントの作成
/mediaディレクトリーが共有されないようにするには、rootとして、シェルプロンプトで次のように入力します。mount --bind /media /media mount --make-unbindable /media
~]# mount --bind /media /media ~]# mount --make-unbindable /mediaCopy to Clipboard Copied! Toggle word wrap Toggle overflow こうすることで、これ以降、このマウントの複製を作成しようとすると、以下のエラーが出て失敗します。mount --bind /media /mnt
~]# mount --bind /media /mnt mount: wrong fs type, bad option, bad superblock on /media/, missing code page or other error In some cases useful info is found in syslog - try dmesg | tail or soCopy to Clipboard Copied! Toggle word wrap Toggle overflow