Manpages

名 前

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() の 呼 び 出 し で 、 正 常 に 未 使 用 の フ ァ イ ル シ ス テ ム に 期 限 切 れ の 印 を つ け る こ と が で き た 。

EBUSY

使 用 中 (busy) の た め 、 target を ア ン マ ウ ン ト で き な か っ た 。
EFAULT

target が ユ ー ザ ー ア ド レ ス 空 間 の 外 を 指 し て い る 。

EINVAL

target が マ ウ ン ト ポ イ ン ト で は な い 。

EINVAL

MNT_EXPIRE が 指 定 さ れ た umount2() で 、 MNT_DETACHMNT_FORCE が 同 時 に 指 定 さ れ た 。

EINVAL (Linux 2.6.34 以 降 )

flags に 無 効 な フ ラ グ が 指 定 さ れ て umount2() が 呼 び 出 さ れ た 。

ENAMETOOLONG パ ス 名 の 長 さ が MAXPATHLEN よ り 長 か っ た 。

ENOENT パ ス 名 が 空 で あ る 。 も し く は 指 定 さ れ た パ ス が 存 在 し な い 。

ENOMEM カ ー ネ ル が フ ァ イ ル 名 や デ ー タ を コ ピ ー す る た め の 空 き ペ ー ジ を 確 保 で き な か っ た 。

EPERM 呼 び 出 し 元 が 必 要 な 権 限 を 持 っ て い な い 。

バ ー ジ ョ ン

MNT_DETACHMNT_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/ に 書 か れ て い る 。