名 前
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 と 同
時 に 指 定 す る
こ と は で き な
い 。
UMOUNT_NOFOLLOW (Linux 2.6.34 以 降 )
target が シ ン ボ リ ッ ク リ ン ク の 場 合 に 、 シ ン ボ リ ッ ク リ ン ク の 展 開 を 行 わ な い 。 こ の フ ラ グ を 使 う と 、 root に set−user−ID さ れ た プ ロ グ ラ ム に お い て 、 非 特 権 ユ ー ザ ー が フ ァ イ ル シ ス テ ム の ア ン マ ウ ン ト を で き て し ま う と い う セ キ ュ リ テ ィ 問 題 を 回 避 す る こ と が で き る 。
返 り 値
成 功 し た 場 合 、 0 が 返 さ れ る 。 失 敗 し た 場 合 、 −1 が 返 さ れ 、 errno に 適 切 な 値 が セ ッ ト さ れ る 。
エ ラ ー
以 下 に 示 す エ ラ ー は 、 フ ァ イ ル シ ス テ ム に 依 存 し な い も の で あ る 。 そ れ ぞ れ の フ ァ イ ル シ ス テ ム タ イ プ に は 固 有 の エ ラ ー が 存 在 す る 場 合 が あ り 、 独 自 の 動 作 を す る こ と も あ る 。 詳 し く は Linux カ ー ネ ル の ソ ー ス を 見 て 欲 し い 。
EAGAIN |
MNT_EXPIRE を 指 定 し た umount2() の 呼 び 出 し で 、 正 常 に 未 使 用 の フ ァ イ ル シ ス テ ム に 期 限 切 れ の 印 を つ け る こ と が で き た 。
使 用 中
(busy) の た め 、 target
を ア ン マ ウ ン
ト で き な か っ
た 。 target が ユ ー ザ ー ア ド レ ス 空 間 の 外 を 指 し て い る 。 EINVAL target が マ ウ ン ト ポ イ ン ト で は な い 。 EINVAL MNT_EXPIRE が 指 定 さ れ た umount2() で 、 MNT_DETACH か MNT_FORCE が 同 時 に 指 定 さ れ た 。 EINVAL (Linux 2.6.34 以 降 ) flags に 無 効 な フ ラ グ が 指 定 さ れ て umount2() が 呼 び 出 さ れ た 。 ENAMETOOLONG パ ス 名 の 長 さ が MAXPATHLEN よ り 長 か っ た 。
バ ー ジ ョ ン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) こ の 文 書 に つ い てこ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。 |