umount - ファイルシステムをアンマウントする
概要
umount -a [-dflnrv] [-t fstype] [-O option...]
umount [-dflnrv] {directory|device}
umount -h|-V
説明
^ mount コマンドは、指定されたファイルシステムをファイル階層から切り離します。ファイルシステムは、マウントされているディレクトリを指定することで指定します。特殊なデバイス(ファイルシステムが存在するデバイス)を指定することもできますが、これは推奨されません。なぜなら、そのデバイスが複数のディレクトリにマウントされている場合、コマンドは失敗する可能性があるからです。
ファイルシステムが「ビジー」状態の場合(たとえば、ファイルが開かれている、プロセスが現在の作業ディレクトリとして使用している、またはスワップファイルが使用されている場合など)、ファイルシステムはアンマウントできません。問題のあるプロセスは、umount 自体である可能性もあります。umount は libc を開き、libc はロケールファイルを開く可能性があります。遅延アンマウントは、この問題を回避しますが、他の問題を引き起こす可能性があります。--lazy の説明を参照してください。
オプション
-a, --all
^ proc/self/mountinfo(または非推奨の /etc/mtab)に記述されているすべてのファイルシステム(proc、devfs、devpts、sysfs、rpc_pipefs、および nfsd ファイルシステムを除く)をアンマウントします。このファイルシステムのリストは、--types umount オプションによって置き換えることができます。
-A, --all-targets
指定されたファイルシステムについて、現在のマウント名前空間内のすべてのマウントポイントをアンマウントします。ファイルシステムは、マウントポイントのいずれか、またはデバイス名(または UUID など)で指定できます。このオプションを --recursive と共に使用すると、ファイルシステム内のすべてのネストされたマウントが再帰的にアンマウントされます。このオプションは、/etc/mtab が /proc/mounts へのシンボリックリンクであるシステムでのみサポートされます。
-c, --no-canonicalize
パスの正規化を行いません。パスの正規化は、stat(2) および readlink(2) システムコールに基づいています。これらのシステムコールは、場合によってはハングする可能性があります(たとえば、NFS でサーバーが利用できない場合など)。このオプションは、マウントポイントへの正規化されたパスと共に使用する必要があります。
このオプションは、root 以外のユーザーに対しては無視されます。
詳細については、mount(8) の man ページを参照してください。umount は、このオプションを /sbin/umount.type ヘルパーに渡しません。
-d, --detach-loop
アンマウントされたデバイスがループデバイスの場合、そのループデバイスも解放します。このオプションは、mount(8) によって初期化されたデバイスには必要ありません。この場合、「自動クリア」機能がデフォルトで有効になります。
--fake
実際にはシステムコールまたは umount ヘルパーの実行を除いて、すべてを実行します。これは、ファイルシステムを「フェイク」アンマウントします。以前に -n オプションを使用してアンマウントされた、非推奨の /etc/mtab からのエントリを削除するために使用できます。
-f, --force
アンマウントを強制します(到達不能な NFS システムの場合)。
このオプションを使用しても、umount コマンドがハングしないことが保証されるわけではありません。到達不能な NFS で不要な [readlink]({filename}../../readlink)(2) および [stat]({filename}../../stat)(2) システムコールを避けるために、絶対パスでシンボリックリンクを使用しないことを強くお勧めします。
-i, --internal-only
/sbin/umount.filesystem ヘルパーが存在する場合でも、それを呼び出さないようにします。デフォルトでは、そのようなヘルパープログラムが存在する場合は呼び出されます。
-l, --lazy
遅延アンマウント。ファイルシステムをファイル階層からすぐに切り離し、このファイルシステムへのすべての参照がビジーでなくなった時点でクリーンアップします。
システムは近い将来に再起動されるはずです。このオプションをネットワークファイルシステムまたはサブマウントを持つローカルファイルシステムで使用する場合。umount -l の推奨される使用例は、ダウンしたサーバーまたはネットワークの断絶により、通常の umount がハングする、到達不能なネットワーク共有でのハングを防ぐことです。共有の再マウントはできません。
-N, --namespace ns
指定された ns で umount を実行します。ns は、そのネームスペースで実行されているプロセスの PID、またはそのネームスペースを表す特別なファイルです。
umount は、/etc/fstab を読み取り、/etc/mtab (または /run/mount) に書き込み、umount(2) システムコールを呼び出すときに、ネームスペースに切り替わります。それ以外の場合は、元のネームスペースで実行されます。つまり、ターゲットのマウントネームスペースには、umount(2) コマンドの実行に必要なライブラリやその他の要件が含まれている必要はありません。
詳細については、mount_namespaces(7) を参照してください。
-n, --no-mtab
/etc/mtab への書き込みを行わずにアンマウントします。
-O, --test-opts option...
/etc/fstab で指定されたオプションが設定されているファイルシステムのみをアンマウントします。複数のオプションをカンマ区切りのリストで指定できます。各オプションの前に no を付けて、そのオプションに対してアクションを実行しないことを示すことができます。
-q, --quiet
「マウントされていない」というエラーメッセージを抑制します。
-R, --recursive
指定された各ディレクトリを再帰的にアンマウントします。各ディレクトリの再帰は、チェーン内のいずれかのアンマウント操作が何らかの理由で失敗した場合に停止します。マウントポイント間の関係は、/proc/self/mountinfo エントリによって決定されます。ファイルシステムは、マウントポイントパスで指定する必要があります。デバイス名 (または UUID) による再帰的なアンマウントはサポートされていません。バージョン 2.37 以降、同じマウントポイント上のすべてのオーバーマウントされたファイルシステムもアンマウントされます。
-r, --read-only
アンマウントが失敗した場合、ファイルシステムを読み取り専用で再マウントします。
-t, --types type...
指定されたタイプのファイルシステムに対してのみアクションを実行するように指定します。複数のタイプをカンマ区切りのリストで指定できます。タイプのリストの前に no を付けて、リストに示されているすべてのタイプに対してアクションを実行しないことを示すことができます。umount は、カーネル (/proc/mounts) からマウントされたファイルシステムに関する情報を読み取ることに注意してください。ファイルシステムの名前は、/etc/fstab で使用されるファイルシステムの名前とは異なる場合があります (例: "nfs4" 対 "nfs")。
-v, --verbose
詳細モード。
-h, --help
ヘルプテキストを表示して終了。
-V, --version
バージョンを表示して終了。
スーパーユーザーではないユーザーによるアンマウント
通常、ファイルシステムをアンマウントできるのはスーパーユーザーのみです。ただし、/etc/fstab に user オプションが設定された行がある場合、誰でも対応するファイルシステムをアンマウントできます。詳細については、mount(8) のマニュアルページを参照してください。
バージョン 2.34 以降、umount コマンドを使用して、カーネルのマウントテーブルにユーザー ID が含まれている場合に、FUSE ファイルシステムに対してもアンマウント操作を実行できます。この場合、/etc/fstab の user= マウントオプションは必要ありません。
バージョン 2.35 以降、umount コマンドは、内部の libmount セキュリティルールによってユーザーの権限が不十分な場合に、エラーで終了しません。代わりに suid 権限を解除し、通常の非 root ユーザーとして処理を続行します。これは、root 権限が不要なユースケース (例: FUSE ファイルシステム、ユーザー名前空間など) をサポートするために使用できます。
ループデバイス
umount コマンドは、mount(8) コマンドによって以前に初期化されたループデバイスを、/etc/mtab に関係なく自動的にデタッチします。
この場合、デバイスは "autoclear" フラグで初期化されます (losetup(8) の出力で詳細を確認できます)。それ以外の場合は、--detach-loop オプションを使用するか、losetup -d デバイスを呼び出す必要があります。 autoclear 機能は、Linux 2.6.25 以降でサポートされています。
Linux v3.7 以降、カーネルは "遅延デバイス破棄" を使用することに注意してください。システムは、ループデバイスに autoclear フラグを付けて、後で破棄します。ループデバイスの完全な削除を待つ必要がある場合は、umount の後に udevadm settle を呼び出してください。
終了ステータス
umount コマンドは、次の終了ステータスのいずれかを返します (ビットを OR で組み合わせることができます)。
0 成功
1 不正な呼び出しまたは権限がない
2 システムエラー (メモリ不足、フォークできない、ループデバイスが不足)
4 内部マウントバグ
8 ユーザー割り込み
16 /etc/mtab への書き込みまたはロックに失敗
32 マウントに失敗
64 アンマウントに一部成功
umount -a コマンドは、0 (すべて成功)、32 (すべて失敗)、または 64 (一部成功、一部失敗) を返します。
126 外部の /sbin/umount.<type> マウントヘルパーの実行に失敗 (util-linux v2.41 以降)
外部ヘルパー
外部アンマウントヘルパーの構文は次のとおりです。
umount.suffix {directory|device} [-flnrv] [-N namespace] [-t type.subtype]
ここで、suffix はファイルシステムの種類です (または、/etc/mtab ファイルの uhelper= または helper= マーカーの値です)。-t オプションは、サブタイプをサポートするファイルシステムで使用できます。たとえば、次のようにします。
umount.fuse -t fuse.sshfs
/etc/mtab ファイルに uhelper=something マーカー (権限のないヘルパー) が表示されるのは、通常のユーザーが /etc/fstab に定義されていないマウントポイントをアンマウントできるようにする必要がある場合です (たとえば、udisks(1) によってマウントされたデバイスの場合)。
/etc/mtab ファイルに helper=type マーカーがある場合、すべてのアンマウント要求は、UIDに関係なく、/sbin/umount.type ヘルパーにリダイレクトされます。
/etc/mtab は現在非推奨であり、helper= やその他のユーザー空間マウントオプションは libmount によって管理されていることに注意してください。
ヘルパープログラムの終了ステータス値は、umount(8) の終了ステータスとして返されます。値 126 は、マウントヘルパープログラムが見つかったが、execl() が失敗した場合に使用されます。
環境変数
LIBMOUNT_FSTAB=<パス>
デフォルトの fstab ファイルの場所を上書きします(suid の場合は無視されます)。
LIBMOUNT_DEBUG=all
libmount のデバッグ出力を有効にします。
ファイル
/etc/mtab
マウントされたファイルシステムのテーブル(非推奨で、通常は /proc/mounts へのシンボリックリンクに置き換えられます)。
/etc/fstab
既知のファイルシステムのテーブル。
/proc/self/mountinfo
カーネルによって生成された、マウントされたファイルシステムのテーブル。
歴史
umount コマンドは、Version 6 AT&T UNIX に登場しました。
関連項目
umount(2), losetup(8), mount_namespaces(7), mount(8)
バグ報告
バグ報告には、[https://github.com/util-linux/util-linux/issues] のイシュー トラッカーを使用してください。
入手方法
umount コマンドは、util-linux パッケージの一部であり、Linux Kernel Archive [https://www.kernel.org/pub/linux/utils/util-linux/] からダウンロードできます。