ファイル・システムのマウント

ファイル・システムの内容にアクセスするには、ファイル・システムのブロック・デバイスをディレクトリ階層のマウント・ポイントにアタッチする必要があります。任意のディレクトリをマウント・ポイントとして使用できます。

通常は、マウント・ポイント用にディレクトリを作成します。既存のディレクトリを使用する場合は、その上にあるファイル・システムをアンマウントするまで、コンテンツは非表示のままになります。

mountコマンドについて

mountコマンドを使用して、ファイル・システムが格納されたデバイスをマウント・ポイントにアタッチします。次に例を示します。

sudo mount [options] device mount_point

デバイスは、その名前、UUIDまたはラベルを参照することでマウントできます。たとえば、前の項で作成したファイル・システムを/var/projectsにマウントする場合は、次のコマンドを実行してディレクトリを作成してから、その次のいずれかのコマンドを使用できます。

sudo mkdir /var/projects
sudo mount /dev/sdb1 /var/projects
sudo mount UUID="ad8113d7-b279-4da8-b6e4-cfba045f66ff" /var/projects
sudo mount LABEL="Projects" /var/projects

mountコマンドを単独で発行すると、マウントされているすべてのファイル・システムが表示されます。次の例では、コマンドの出力の抜粋で次の内容を示しています。

  • ext4ファイル・システムの/dev/sdb1は、読取りと書込みの両方のために/var/projectsにマウントされます。

  • LVM論理ボリューム/dev/mapper/vg_host01-lv_rootext4ファイル・システムで、読取りと書込みの両方のために/にマウントされます。

sudo mount

前述のコマンドの出力は、次のようになります。

/dev/sdb1 on /var/projects type ext4 (rw)
/dev/mapper/vg_host01-lv_root on / type ext4 (rw)
...

または、cat /proc/mountsコマンドを使用して、マウントされているファイル・システムについて情報を表示できます。

df -hコマンドは、ファイル・システムとそのディスク領域の使用状況に関する情報を表示します。

Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda3        46G   18G   29G  39% /
/dev/sda2       795M  452M  344M  57% /boot
/dev/sda1       100M  5.7M   95M   6% /boot/efi
...

複数のマウント・ポイントに単一のブロック・デバイスをアタッチまたはバインドするには、mount -Bコマンドを使用します。

完全なファイル・システムではない、ある場所のディレクトリ階層の一部を再マウントすることもできます。たとえば、/var/projects/project1/mntにマウントする場合は、次のコマンドを使用します。

sudo mount -B /var/projects/project1 /mnt

各ディレクトリ階層は、他のミラーとして機能します。同じファイルは、いずれの場所でもアクセスできます。ただし、サブマウントはレプリケートされません。これらのミラーでは、データ冗長性は提供されません。

ファイルを別のファイルにマウントする場合は、次のコマンドを使用します。

sudo touch /mnt/foo
sudo mount -B /etc/hosts /mnt/foo

前述の例のマウント・ポイント/etc/hosts/mnt/fooは同じファイルを表します。マウント・ポイントとして機能する既存のファイルは、その上にあるファイルをアンマウントするまでアクセスできません。

ミラーにサブマウントを含めるには、-Rオプションを使用して再帰バインドを作成します。

-Bまたは-Rオプションを使用すると、ファイル・システムのマウント・オプションは元のマウント・ポイントのオプションと同じままになります。mountのオプションを変更するには、別個のremountコマンドを使用します。次に例を示します。

sudo mount -o remount,ro /mnt/foo

マウント・ポイントにあるサブマウントを、共有、プライベートまたはセカンダリとしてマークできます。次のオプションを指定できます。

mount --make-shared mount_point

指定したマウント・ポイントの下でのマウントまたはアンマウントは、作成したあらゆるミラーに伝播され、このマウント階層には、他のミラーに適用したマウント変更やアンマウント変更が反映されます。

mount --make-private mount_point

指定したマウント・ポイントの下でのマウントまたはアンマウントは他のミラーに伝播されず、このマウント階層には、他のミラーに適用したマウント変更やアンマウント変更は反映されません。

mount --make-slave mount_point

指定したマウント・ポイントの下でのマウントまたはアンマウントは他のミラーに伝播されませんが、このマウント階層には、他のミラーに適用したマウント変更やアンマウント変更が反映されます。

-Bまたは-Rオプションを使用してマウントがミラーリングされないようにするには、そのマウント・ポイントをバインド不可(unbindable)としてマークします。

sudo mount --make-unbindable mount_point

マウントされたファイル・システム、ディレクトリ階層またはファイルをマウント・ポイント間で移動するには、-Mオプションを使用します。たとえば:

sudo touch /mnt/foo
sudo mount -M /mnt/foo /mnt/bar

ファイル・システムをアンマウントするには、umountコマンドを使用します。

sudo umount /var/projects

または、ブロック・デバイスが単一マウント・ポイントにのみマウントされている場合は、そのブロック・デバイスを指定できます。

詳細は、mount(8)およびumount(8)の各マニュアル・ページを参照してください。

mountコマンドのその他のオプションの使用

mountコマンドの動作は、-oオプションを使用してカンマ区切りリストでオプションを指定することで特定できます。これらのオプションの一部を次に示します。

ノート:

こうしたオプションは、/etc/fstabファイルに入力することもできます。

auto

mount -aコマンドを使用することで、ファイル・システムの自動マウントを許可します。

exec

ファイル・システムにあるバイナリ・ファイルが実行されるようにします。

loop

ループ・デバイス(/dev/loop*)を使用して、ファイル・システム・イメージが格納されたファイルをマウントします。ファイル・システムのイメージを含むファイルのマウント別のファイル・システム内のファイルへのファイル・システムの作成およびlosetup(8)のマニュアル・ページを参照してください。

ノート:

使用可能なループ・デバイス数のデフォルトは8です。カーネル・ブート・パラメータmax_loop=Nを使用して、最大255個のデバイスを構成できます。または、次のエントリを/etc/modprobe.confに追加します。

options loop max_loop=N 

前述の例では、Nは、必要なループ・デバイスの数(0から255)でシステムを再起動します。

noauto

mount -aが発行されたときに、ファイル・システムが自動的にマウントされないようにします。

noexec

ファイル・システムにあるバイナリ・ファイルが実行されないようにします。

nouser

rootユーザー以外のユーザーがファイル・システムをマウントまたはアンマウントできないようにします。

remount

ファイル・システムがすでにマウントされている場合にそれを再マウントします。通常は、このオプションをrorwなどの別のオプションと組み合せて、マウント済のファイル・システムの動作を変更します。

ro

ファイル・システムを読取り専用でマウントします。

rw

ファイル・システムを読取り/書込み用でマウントします。

user

任意のユーザーによるファイル・システムのマウントまたはアンマウントを許可します。

次の例は、mount -oコマンド構文の様々な使用方法を示しています。

  • /dev/sdd1ファイル・システムを読取り専用アクセス権で/testとしてマウントし、そのファイル・システムのマウントまたはアンマウントをrootユーザーにのみ許可します。

    sudo mount -o nouser,ro /dev/sdd1 /test
  • ループ・ドライブを使用して読取り専用アクセスでISOイメージ・ファイルを/mount/cdromにマウントします。

    sudo mount -o ro,loop ./Linux-Server-dvd.iso /media/cdrom
  • /testファイル・システムを読取り/書込みアクセス権で再マウントし、そのファイル・システム内のすべてのバイナリ・ファイルの実行を禁止します。

    sudo mount -o remount,rw,noexec /test

ファイル・システムのイメージを含むファイルのマウント

ループ・デバイスを使用すると、ブロック・デバイスとしてファイルにアクセスできます。たとえば、次のように、DVD ISOイメージを含むファイルをマウント・ポイント/ISOディレクトリにマウントできます。

sudo mount -t iso9660 -o ro,loop /var/ISO_files/V33411-01.iso /ISO

必要に応じて、ファイル・システムの永続エントリを/etc/fstabファイルに作成します。次に例を示します。

/var/ISO_files/V33411-01.iso          /ISO      iso9660    ro,loop     0 0

ファイル・システムのマウント表について

/etc/fstabファイルにはファイル・システムのマウント表が含まれています。この表では、ブロック・デバイスをマウントするためやマウントのバインドを実装するためにmountコマンドで必要となる情報がすべて示されます。ファイル・システムを追加する場合は、そのファイル・システムが起動時に確実にマウントされるように、/etc/fstabファイルに適切なエントリを作成する必要があります。次に、このファイルの一般的なエントリを示します。

/dev/sda1         /boot   ext4     defaults  1 2
/dev/sda2         /       ext4     defaults  1 1
/dev/sda3         swap    swap     defaults  0 0

前の出力の各フィールドの説明は次のとおりです。

  • 最初のフィールドはマウントするデバイスを示します。これは、デバイス名、UUID、デバイス・ラベルまたはリモート・ファイル・システムの仕様によって指定されます。デバイス名が変わる可能性がある場合は、デバイス名ではなくUUIDまたはデバイス・ラベルを使用してください。たとえば:

    LABEL=Projects    /var/projects  ext4  defaults  1 2

    なお、最初のフィールドでは、2番目のフィールドで示されているマウント・ポイントにマウントされるファイル・システム、ディレクトリ階層またはファイルのパスが示されます。3番目と4番目のフィールドには、noneおよびbindを指定します。

  • 2番目のフィールドは、ファイル・システムのマウント・ポイントまたはスワップ・パーティションを示すswapです。このマウント・ポイントは、ファイルまたはディレクトリへのパスにする必要があります。

  • 3番目のフィールドは、ファイル・システム・タイプ(ext4swapなど)です。

  • 4番目のフィールドにはマウント・オプションを指定します。

  • 5番目の列では、dumpコマンドでファイル・システムがダンプされる(1)かダンプされない(0)が示されます。

  • 6番目の列は、fsckコマンドがブート時にファイル・システムのチェックを実行する順序を示します。rootファイル・システムのその値は1ですが、他のファイル・システムは2です。値が0の場合は、チェックがスキップされます。これは、スワップの場合、起動時にマウントされていないファイル・システムの場合、および既存のマウントのバインドの場合に適しています。

バインド・マウントの場合は、先頭から4個のフィールドのみを指定します。たとえば:

path    mount_point    none     bind

詳細は、fstab(5)マニュアル・ページを参照してください。