UMOUNT
Section: Linux Programmer's Manual (2)
Updated: 2009-09-03
Index
JM Home Page
roff page
名前
umount, umount2 - ファイルシステムをアンマウントする
書式
#include <sys/mount.h>
int umount(const char *target);
int umount2(const char *target, int flags);
説明
umount()
と
umount2()
は
target
にマウントされている (最上位の) ファイルシステムを外す。
ファイルシステムのアンマウントを行うには、
適切な権限 (Linux では
CAP_SYS_ADMIN
ケーパビリティ) が必要である。
Linux 2.1.116 から、
umount2()
システムコールが追加された。これは
umount()
と同様に
target
をアンマウントするが、
flags
が追加されており、操作時の振る舞いを制御できる。
- MNT_FORCE (2.1.116 以降)
-
使用中 (busy) でも強制的にアンマウントを実行する。
これを行うとデータを失う可能性がある。
(NFS マウント専用)
- MNT_DETACH (2.4.11 以降)
-
遅延アンマウントを行う。マウントポイントに対する新規のアクセスは
不可能となり、実際のアンマウントはマウントポイントがビジーで
なくなった時点で行う。
- MNT_EXPIRE (Linux 2.6.8 以降)
-
マウントポイントに期限切れの印をつける。
マウントポイントが現在使用中でない場合、このフラグをつけて
umount2()
を初めて呼び出すと
EAGAIN
エラーで失敗するが、マウントポイントには期限切れ (expire)
の印がつけられる。
そのマウントポイントはいずれかのプロセスがアクセスしない限り
期限切れの印がついたままとなる。
もう一度
MNT_EXPIRE
をつけて
umount2()
を呼び出すと、期限切れの印のついたマウントポイントが
アンマウントされる。
このフラグを
MNT_FORCE
もしくは
MNT_DETACH
と同時に指定することはできない。
返り値
成功した場合 0 が返る。
エラーの場合、-1 が返り、
errno
がエラーの内容にしたがって設定される。
エラー
以下に示すエラーは、ファイルシステムに依存しないものである。
それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、
独自の動作をすることもある。詳しくはカーネルのソースを見て欲しい。
- EAGAIN
-
MNT_EXPIRE
を指定した
umount2()
の呼び出しで、正常に未使用のファイルシステムに期限切れの印を
つけることができた。
- EBUSY
-
使用中 (busy) のため、
target
をアンマウントできなかった。
- EFAULT
-
target
がユーザアドレス空間の外を指している。
- EINVAL
-
target
がマウントポイントではない。
または、
umount2()
で、
MNT_EXPIRE
が指定された
umount2()
で、
MNT_DETACH
か
MNT_FORCE
が同時に指定された。
- ENAMETOOLONG
-
パス名の長さが
MAXPATHLEN
より長かった。
- ENOENT
-
パス名が空である。もしくは指定されたパスが存在しない。
- ENOMEM
-
カーネルがファイル名やデータをコピーするための空きページを確保できなかった。
- EPERM
-
呼び出し元が必要な権限を持っていない。
バージョン
MNT_DETACH
と
MNT_EXPIRE
はバージョン 2.11 以降の glibc でのみ利用できる。
準拠
この関数は Linux 固有の関数であり、移植を考慮したプログラムでは
使用すべきでない。
注意
元々の
umount()
関数は umount(device) の形で呼び出され、
ブロックデバイス以外を指定して呼び出すと
ENOTBLK
を返した。
Linux 0.98p4 で、無名デバイス (anonymous device) に対応するために
umount(dir) の形での呼び出しが加えられた。
Linux 2.3.99-pre7 で、umount(device) は削除され、
umount(dir) だけが残された
(一つのデバイスを複数の位置にマウント出来るようになったため、
デバイスを指定しただけでは不十分だからである)。
関連項目
mount(2),
path_resolution(7),
mount(8),
umount(8)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:27:00 GMT, April 25, 2010