2.2.3. マウントの共有


システム管理作業の中には、同じファイルシステムにディレクトリーツリー内の複数の場所からのアクセスしないといけない場合があります (chroot 環境を準備する場合など)。このような要件に対処するために、mount コマンドは、特定のマウントを複製する手段を提供する --bind オプションを実装します。以下のような使用法になります。
mount --bind old_directory new_directory
上記のコマンドは、両方の場所からファイルシステムにアクセスできますが、元のディレクトリー内にマウントされているファイルシステムには適用されません。これらのマウントも含めるには、次のように入力します。
mount --rbind old_directory new_directory
さらに、Red Hat Enterprise Linux 5.10 は可能な限り柔軟性を提供するために、共有サブツリー と呼ばれる機能を実装します。この機能により、以下の 4 つのマウントタイプを使用できます。
共有マウント
共有マウントを使用すると、特定のマウントポイントの正確なレプリカを作成できます。共有マウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映され、その逆も同様です。共有マウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-shared mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。
mount --make-rshared mount_point
使用例は、例2.4「共有マウントポイントの作成」 を参照してください。

例2.4 共有マウントポイントの作成

他のファイルシステムが一般的にマウントされる場所は 2 つあります。リムーバブルメディア用の /media ディレクトリーと、一時的にマウントされるファイルシステム用の /mnt ディレクトリーです。共有マウントを使用すると、この 2 つのディレクトリーで同じコンテンツを共有できます。そのためには、root で、/media ディレクトリーを shared としてマークします。
~]# mount --bind /media /media
~]# mount --make-shared /media
以下のコマンドを使用して、複製を /mnt ディレクトリーに作成します。
~]# mount --bind /media /mnt
これで、/media 内のマウントが /mnt にも表示されることを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。
~]# mount /dev/cdrom /media/cdrom
~]# ls /media/cdrom
EFI  GPL  isolinux  LiveOS
~]# ls /mnt/cdrom
EFI  GPL  isolinux  LiveOS
同様に、/mnt ディレクトリーにマウントされているファイルシステムが /media に反映されていることを確認できます。たとえば、/dev/sdc1 デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/ ディレクトリーが存在する場合は、以下を入力します。
~]# mount /dev/sdc1 /mnt/flashdisk
~]# ls /media/flashdisk
en-US  publican.cfg
~]# ls /mnt/flashdisk
en-US  publican.cfg
スレーブマウント
スレーブマウントを使用すると、指定したマウントポイントの限定的な複製を作成できます。スレーブマウントが作成されると、元のマウントポイント内のすべてのマウントがそれに反映されますが、スレーブマウント内のマウントは元のマウントに反映されません。スレーブマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-slave mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。
mount --make-rslave mount_point
使用例は、例2.5「スレーブマウントポイントの作成」 を参照してください。

例2.5 スレーブマウントポイントの作成

/media ディレクトリーのコンテンツが /mnt にも表示されるようにし、/mnt ディレクトリーのマウントを /media に反映させないようにするとします。これを実行するには、root で、最初に /media ディレクトリーを 共有 としてマークします。
~]# mount --bind /media /media
~]# mount --make-shared /media
次に、その複製を /mnt で作成します。ただし、slave としてマークします。
~]# mount --bind /media /mnt
~]# mount --make-slave /mnt
これで、/media 内のマウントが /mnt にも表示されることを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。
~]# mount /dev/cdrom /media/cdrom
~]# ls /media/cdrom
EFI  GPL  isolinux  LiveOS
~]# ls /mnt/cdrom
EFI  GPL  isolinux  LiveOS
また、/mnt ディレクトリーにマウントされているファイルシステムが /media に反映されて いない ことを確認することもできます。たとえば、/dev/sdc1 デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/ ディレクトリーが存在する場合は、以下を入力します。
~]# mount /dev/sdc1 /mnt/flashdisk
~]# ls /media/flashdisk
~]# ls /mnt/flashdisk
en-US  publican.cfg
プライベートマウント
プライベートマウントを使用すると、通常のマウントを作成できます。プライベートマウントが作成されると、元のマウントポイント内の後続のマウントがそれに反映されず、プライベートマウント内のマウントは元のマウントに反映されません。プライベートマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-private mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。
mount --make-rprivate mount_point
使用例は、例2.6「プライベートマウントポイントの作成」 を参照してください。

例2.6 プライベートマウントポイントの作成

例2.4「共有マウントポイントの作成」 でシナリオを考慮に入れて、root で以下のコマンドを使用して共有マウントポイントを作成していることを前提としています。
~]# mount --bind /media /media
~]# mount --make-shared /media
~]# mount --bind /media /mnt
/mnt ディレクトリーに private のマークを付けるには、次のように入力します。
~]# mount --make-private /mnt
これで、/media 内のマウントが /mnt に表示されないことを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。
~]# mount /dev/cdrom /media/cdrom
~]# ls /media/cdrom
EFI  GPL  isolinux  LiveOS
~]# ls /mnt/cdrom
~]#
また、/mnt ディレクトリーにマウントされているファイルシステムが /media に反映されていないことを確認することもできます。たとえば、/dev/sdc1 デバイスを使用する空でない USB フラッシュドライブがあり、/mnt/flashdisk/ ディレクトリーが存在する場合は、以下を入力します。
~]# mount /dev/sdc1 /mnt/flashdisk
~]# ls /media/flashdisk
~]# ls /mnt/flashdisk
en-US  publican.cfg
バインド不可能なマウント
バインド不可能なマウントを使用すると、特定のマウントポイントが重複しないようにすることができます。バインド不可能なマウントを作成するには、シェルプロンプトで以下を入力します。
mount --make-unbindable mount_point
または、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更できます。
mount --make-runbindable mount_point
使用例は、例2.7「バインド不可能なマウントポイントの作成」 を参照してください。

例2.7 バインド不可能なマウントポイントの作成

/media ディレクトリーが共有されないようにするには、root として、シェルプロンプトで次のように入力します。
~]# mount --bind /media /media
~]# mount --make-unbindable /media
こうすることで、これ以降、このマウントの複製を作成しようとすると、以下のエラーが出て失敗します。
~]# 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 so
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.