マウント

提供: ArchWiki
2016年8月18日 (木) 22:37時点におけるKusakata (トーク | 投稿記録)による版 (→‎参照)
ナビゲーションに移動 検索に移動

関連記事

mount はファイルシステムやパーティションテーブル、共有フォルダにアクセスするのに使われるアプリケーションです。Linux カーネルによってサポートされているファイルシステムをマウントできるだけでなく、他のドライバーやアプリケーションを使って拡張することが可能です。例えば ntfs-3g を使えば NTFS ファイルシステムがマウントできるようになります。

サポートされているファイルシステム

使用しているカーネルと、カーネルの設定によってサポートされているファイルシステムを表示するには:

$ zgrep -e 'FS_' -e _FS -e 'CONFIG_ISO' -e  '_NLS=' -e CONFIG_NLS_ISO /proc/config.gz

サポートされるファイルシステムについては mount コマンドのマニュアルで読めます: man mount

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

/etc/fstab (fstab(5) を参照) ファイルには、どこにどのオプションを使ってデバイスをマウントするかを各行に記述します。/etc/fstab で指定したファイルシステムは起動時にマウントされます。これには例外があり、例えば noauto オプションが指定されたデバイスはマウントされません。他の OS のパーティションなどで使うと有用です。外付けデバイスは nofail オプションを付けることで、存在する場合はマウントされ、存在しない場合は無視されます。詳しくは Fstab#外部デバイス を参照してください。

fstab や mtab に書かれているファイルシステムをマウントする際は、デバイスまたはマウントポイントを指定するだけで十分です:

# mount /dev/sdXY 

デバイス (またはラベル/UUID) とディレクトリ (マウントポイント) が指定されている場合、mount プログラムは /etc/fstab ファイルを読み込みません。例えば:

# mount /dev/foo /dir

マウントポイントが存在しない場合、まず作成する必要があります。MYDIR1 にマウントするには:

# mkdir /mnt/mydir1
# mount /dev/sdXY /mnt/mydir1

詳しくは /etc/fstab, man fstab, man mount を見てください。

何がマウントされているか確認

/etc/mtab/proc/mounts ファイルを見ることで何がマウントされているか確認することができます。

mtab

/etc/mtab はシステムによって生成されるファイルであり、ファイルシステムをマウントしたりアンマウントしたときに mount アプリケーションによって作成・更新されます。

このファイルにはデバイスノードとマウントポイント、使用されるマウントオプションが記述されています。何も引数を付けないで mount プログラムを実行したときに、このファイルが出力されます。

ノート: /etc/mtab ファイルはマウントされているファイルシステムの現在の状態を表示するためだけに存在します。手動で編集しないでください。

mtab ファイル定義

ファイルの各行は現在マウントされているファイルシステムに対応しており、以下の情報が示されています:

  • ファイルシステム。
  • マウントポイント。
  • ファイルシステムのタイプ。
  • ファイルシステムのマウント中に使用されるマウントオプション。

既定のオプションを変更するのに使える方法

以下はマウント機能を拡張したりデフォルトのオプションを変更する方法の例です。カーネルのデフォルト設定を変更したいときは自分でカーネルをコンパイルする必要があります。スクリプトが存在しない場合、デフォルトのオプションが使われます。

サポートされているファイルシステムなら大抵は mount.X スクリプトまたはシンボリックリンクを使うことでデフォルトの mount のオプションを変更できます (X はファイルシステムの名前に置き換えてください)。mount.X スクリプトを無視するには -i オプションを使います: mount -i -t reiserfs /dev/sdXY /mnt/sdXY。変更された設定を見る方法は2つあります:

  • mount と書いて Tab キーを押す。
  • ls /usr/bin/mount.* を実行。

他のファイルシステム

VFAT, FAT, DOS

カーネルのデフォルトの mount 設定の例:

$ zgrep -e FAT -e DOS /proc/config.gz | sort -r 
# DOS/FAT/NT Filesystems
CONFIG_FAT_FS=m
CONFIG_MSDOS_PARTITION=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NCPFS_SMALLDOS=y

オプションの簡単な説明:

  • 言語設定: CONFIG_FAT_DEFAULT_CODEPAGE, CONFIG_FAT_DEFAULT_IOCHARSET
  • FAT パーティションの全てのファイル名を小文字に (有効化されている場合): CONFIG_NCPFS_SMALLDOS
  • FAT ファイルシステムのサポートの有効化: CONFIG_FAT_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS
  • 86x PC における FAT でパーティションされたハードディスクのサポートの有効化: CONFIG_MSDOS_PARTITION

mount によって検知されたパーティションタイプが VFAT の場合、/usr/bin/mount.vfat スクリプトが実行されます。

/usr/bin/mount.vfat
#!/bin/bash
#mount VFAT with full rw (read-write) permissions for all users
#/usr/bin/mount -i -t vfat -oumask=0000,iocharset=utf8 "$@"
#The above is the same as
mount -i -t vfat -oiocharset=utf8,fmask=0000,dmask=0000 "$@"

参照: FAT ファイルシステムのマウントに関する詳細

NTFS

デフォルト設定:

$ zgrep ^CONFIG_NTFS  /proc/config.gz
CONFIG_NTFS_FS=m
CONFIG_NTFS_RW=y

カーネルコンフィグオプション CONFIG_NTFS_RW=yNTFS ファイルシステムの読み書きサポートを有効化します。また、読み書きモードで ntfs-3g ドライバーが使われるようにカーネルを定義します。オプションによって読み書きモードも有効にできますが、カーネルに組み込まれている NTFS ファイルシステムのサポートは読み取りのみです。

ノート:
  • ntfs-3g がインストールされると /usr/bin/ntfs-3g にリンクするシンボリックリンク /usr/bin/mount.ntfs が作られます。
  • ntfs-3g マウントツールは linux の標準の mount ユーティリティによってサポートされているのと同じコマンドラインオプションを多数サポートしていますが、NTFS によってフォーマットされたパーティションのマウントに特化しています。
  • デフォルトではマウント時に ntfs-3g ドライバーは全てのユーザーに完全な読み書き権限を与えます。場合によっては完全な権限でアクセスされると問題を生じることがあります。NTFS のトラブルシューティングを見て下さい。

mount.ntfs を実行するときのデフォルトのマウントオプションは /usr/bin/mount.ntfs シンボリックリンクの名前を変更して、そこに適当なオプションを記述したスクリプトを作成することで変更できます。もしくは、-i オプションを使えば mount.X ファイルを全て無視することができ、カーネルによってネイティブにサポートされている機能が使われます。以下は NTFS を読み取り専用でマウントする例です:

/usr/bin/mount.ntfs
#!/bin/bash
#mount -i -oro "$@"
#mount with a read-only rights
ntfs-3g -oro  "$@" & disown

ntfs-3g ドライバーに関する詳細は man 8 ntfs-3g を見て下さい。

スクリプトを使うことで、USB ドライブやイメージファイル (ISO, img, dd) がマウントされたときのアクションを追加できます。

参照