Mount (日本語) - ArchWiki

# Mount (日本語)

関連記事

- fstab
- udev
- udisks
- ファイルのパーミッションと属性
- umask
- ファイルシステム
- USB ストレージデバイス
- アプリケーション一覧#マウントツール
- 光学ディスクドライブ
- QEMU#raw ディスクイメージの中にパーティションをマウントする

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`。

## mtab

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

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

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

## ファイル定義

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

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

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

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

- 自分でカーネルをコンパイル
- スクリプトを使う
- fstab を編集する
- udev / udisks ルールを作成する - Linux カーネルのデバイスマネージャ。

サポートされているファイルシステムなら大抵は 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=y` は NTFS ファイルシステムの読み書きサポートを有効化します。また、読み書きモードで ntfs-3g ドライバーが使われるようにカーネルを定義します。オプションによって読み書きモードも有効にできますが、カーネルに組み込まれている NTFS ファイルシステムのサポートは読み取りのみです。

Note:

- 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) がマウントされたときのアクションを追加できます。

## 参照

- カーネルによってサポートされているファイルシステムのドキュメント: kernel.org
- mount コマンドのマニュアル: linux.die.net
- Wikipedia:Mount (Unix)
- Creating and using disk images mini-howto: darkdust.net

Category:

- File systems (日本語)