Manpages

名 前

mount − フ ァ イ ル シ ス テ ム を マ ウ ン ト /ア ン マ ウ ン ト す る

書 式

#include <sys/mount.h>

int mount(const char *source, const char *target,
const char *
filesystemtype, unsigned long mountflags,
const void *
data);

説 明

mount() は source で 指 定 さ れ た フ ァ イ ル シ ス テ ム (デ バ イ ス 名 で あ る こ と が 多 い が 、 デ ィ レ ク ト リ 名 や ダ ミ ー の 場 合 も あ る ) を target で 指 定 さ れ た デ ィ レ ク ト リ に 結 び つ け る 。 フ ァ イ ル シ ス テ ム の マ ウ ン ト を 行 う に は 、 適 切 な 権 限 (Linux で は CAP_SYS_ADMIN ケ ー パ ビ リ テ ィ ) が 必 要 で あ る 。

Linux 2.4 以 降 、 ひ と つ の フ ァ イ ル シ ス テ ム を 複 数 の マ ウ ン ト ポ イ ン ト に 結 び つ け る こ と が で き 、 同 じ マ ウ ン ト ポ イ ン ト に 複 数 の マ ウ ン ト を ス タ ッ ク さ せ る こ と も で き る 。 引 き 数 filesystemtype と し て カ ー ネ ル が 対 応 し て い る 値 は 、 /proc/filesystems で 参 照 で き る (例 え ば "minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", "msdos", "proc", "nfs", "iso9660" 等 )。 適 切 な モ ジ ュ ー ル が 読 み 込 ま れ る と 、 さ ら に 別 の 値 が 利 用 可 能 に な る か も し れ な い 。 引 き 数 mountflags の 上 位 16 ビ ッ ト に は 、 マ ジ ッ ク ナ ン バ ー 0xC0ED (MS_MGC_VAL) を 指 定 す る こ と が で き る (マ ジ ッ ク ナ ン バ ー は 、 カ ー ネ ル バ ー ジ ョ ン 2.4 よ り 前 で は 必 須 で あ っ た が 、 現 在 は 必 要 な く 、 指 定 さ れ て も 無 視 さ れ る )。 mountflags の 下 位 16 ビ ッ ト に マ ウ ン ト フ ラ グ を 指 定 す る 。
MS_BIND
(Linux 2.4 以 降 ) バ イ ン ド マ ウ ン ト を 行 う 。 こ れ は フ ァ イ ル や デ ィ レ ク ト リ の 部 分 木 を フ ァ イ ル シ ス テ ム 内 部 の 別 の 場 所 で 見 え る よ う に す る も の で あ る 。 バ イ ン ド マ ウ ン ト を 使 う と 、 フ ァ イ ル シ ス テ ム を ま た い で chroot(2) jail を 構 成 す る こ と が 可 能 に な る 。 引 き 数 filesystemtypedata は 無 視 さ れ る 。 Linux 2.6.26 よ り 前 で は mountflags も 無 視 さ れ て い た (バ イ ン ド マ ウ ン ト で は 、 マ ウ ン ト ポ イ ン ト と な る フ ァ イ ル シ ス テ ム と 同 じ マ ウ ン ト オ プ シ ョ ン が 使 用 さ れ る )。
MS_DIRSYNC
(Linux 2.5.19 以 降 ) こ の フ ァ イ ル シ ス テ ム へ の デ ィ レ ク ト リ 変 更 を 同 期 的 に 行 う 。 (こ の 特 性 は 個 々 の デ ィ レ ク ト リ 、 ま た は chattr(1) を 使 っ た 部 分 木 毎 に 設 定 で き る 。 )
MS_MANDLOCK
こ の フ ァ イ ル シ ス テ ム の フ ァ イ ル に 対 し て 強 制 ロ ッ ク を 認 め る 。 (強 制 ロ ッ ク を 有 効 に す る に は 、 fcntl(2) で 述 べ ら れ て い る 方 法 で フ ァ イ ル 単 位 で 許 可 を し な け れ ば な ら な い )
MS_MOVE
部 分 木 を 移 動 す る 。 source に は す で に 存 在 す る マ ウ ン ト ポ イ ン ト を 指 定 し 、 target に は 新 し い 場 所 を 指 定 す る 。 移 動 は ア ト ミ ッ ク で あ る 。 操 作 の 実 行 中 、 部 分 ツ リ ー が ア ン マ ウ ン ト さ れ る こ と は な い 。 filesystemtype, mountflags, data 引 き 数 は 無 視 さ れ る 。
MS_NOATIME
こ の フ ァ イ ル シ ス テ ム の (全 て の 種 類 の ) フ ァ イ ル の ア ク セ ス 時 刻 を 更 新 し な い 。
MS_NODEV
こ の フ ァ イ ル シ ス テ ム の デ バ イ ス (ス ペ シ ャ ル フ ァ イ ル ) へ の ア ク セ ス を 許 可 し な い 。
MS_NODIRATIME
こ の フ ァ イ ル シ ス テ ム の デ ィ レ ク ト リ の ア ク セ ス 時 刻 を 更 新 し な い 。 こ の フ ラ グ は MS_NOATIME で 提 供 さ れ る 機 能 の サ ブ セ ッ ト を 提 供 す る 。 つ ま り 、 MS_NOATIME で は MS_NODIRATIME が 暗 黙 の う ち 設 定 さ れ る 。
MS_NOEXEC
こ の フ ァ イ ル シ ス テ ム に あ る プ ロ グ ラ ム の 実 行 を 許 可 し な い 。
MS_NOSUID
こ の フ ァ イ ル シ ス テ ム の プ ロ グ ラ ム を 実 行 す る と き に 、 set−user−ID ビ ッ ト と set−group−ID ビ ッ ト を 無 視 す る 。
MS_RDONLY
フ ァ イ ル シ ス テ ム を 読 み 込 み 専 用 で マ ウ ン ト す る 。
MS_RELATIME
(Linux 2.6.20 以 降 ) こ の フ ァ イ ル シ ス テ ム 上 の フ ァ イ ル が ア ク セ ス さ れ た 際 、 そ の フ ァ イ ル の 最 終 ア ク セ ス 時 刻 (atime) の 現 在 値 が 最 終 修 正 時 刻 (mtime) や 最 終 状 態 変 更 時 刻 (ctime) と 等 し い か 小 さ い 場 合 に の み 、 atime を 更 新 す る 。 こ の オ プ シ ョ ン は 、 mutt(1) の よ う に 、 最 後 の 内 容 修 正 以 降 に フ ァ イ ル が い つ 読 み 出 さ れ た か を 知 る 必 要 が あ る プ ロ グ ラ ム で 有 用 で あ る 。 Linux 2.6.30 以 降 で は 、 MS_NOATIME が 指 定 さ れ て い な い 場 合 に は 、 こ の フ ラ グ の 動 作 が カ ー ネ ル の デ フ ォ ル ト 動 作 と な っ て お り 、 Linux 2.6.30 よ り 前 の 動 作 を さ せ る た め に は MS_STRICTATIME フ ラ グ を 指 定 す る 必 要 が あ る 。 こ れ に 加 え て 、 Linux 2.6.30 以 降 で は 、 フ ァ イ ル の 最 終 ア ク セ ス 時 刻 が 1 日 以 上 前 の 場 合 、 フ ァ イ ル の 最 終 ア ク セ ス 時 刻 は 常 に 更 新 さ れ る 。
MS_REMOUNT
す で に 存 在 す る マ ウ ン ト を 再 マ ウ ン ト す る 。 こ れ に よ り 、 す で に 存 在 す る マ ウ ン ト の mountflagsdata を 、 一 度 ア ン マ ウ ン ト し て か ら 再 マ ウ ン ト す る と い う 作 業 を せ ず に 変 更 で き る 。 target は 最 初 の mount() 呼 び 出 し と 同 じ 値 を 指 定 す る 必 要 が あ る 。 sourcefilesystemtype は 無 視 さ れ る 。 引 き 数 mountflagsdata は 、 意 図 的 に 変 更 す る も の 以 外 は 、 元 の mount() の 呼 び 出 し で 使 用 し た 値 と 一 致 す る よ う に す べ き で あ る 。

mountflags の う ち MS_RDONLY, MS_SYNCHRONOUS, MS_MANDLOCK は 変 更 可 能 で あ る 。 カ ー ネ ル 2.6.16 よ り 前 で は 、 MS_NOATIME, MS_NODIRATIME も 変 更 可 能 で あ っ た 。 カ ー ネ ル 2.4.10 よ り 前 で は 、 上 記 に 加 え て 、 MS_NOSUID, MS_NODEV, MS_NOEXEC も 変 更 可 能 で あ っ た 。

MS_SILENT (Linux 2.6.17 以 降 ) カ ー ネ ル の ロ グ 内 の あ る 種 の (printk()) 警 告 メ ッ セ ー ジ の 表 示 を 抑 制 す る 。 こ の フ ラ グ は 、 名 前 が 不 適 切 で 廃 止 さ れ た MS_VERBOSE フ ラ グ (Linux 2.4.12 以 降 で 利 用 可 能 ) を 置 き 換 え る も の で 、 同 じ 意 味 を 持 つ 。
MS_STRICTATIME
(Linux 2.6.30 以 降 ) こ の フ ァ イ ル シ ス テ ム が ア ク セ ス さ れ た 際 に 最 終 ア ク セ ス 時 刻 (atime) を 常 に 更 新 す る (Linux 2.6.30 よ り 前 で は 、 こ れ が デ フ ォ ル ト の 動 作 で あ っ た )。 こ の フ ラ グ を 指 定 す る こ と で 、 MS_NOATIMEMS_RELATIME の 両 フ ラ グ を 設 定 し た 際 の 影 響 を 上 書 き す る こ と が で き る 。
MS_SYNCHRONOUS
フ ァ イ ル シ ス テ ム に 対 し て 同 期 的 に 書 き 込 み を 行 う 。 (こ の フ ァ イ ル シ ス テ ム の 全 て の オ ー プ ン さ れ た フ ァ イ ル に 対 し て 、 open(2) の フ ラ グ に O_SYNC を 指 定 し た よ う な 動 作 と な る )

Linux 2.4 以 降 で は 、 MS_NODEV, MS_NOEXEC, MS_NOSUID は マ ウ ン ト ポ イ ン ト 単 位 で 指 定 で き る 。 カ ー ネ ル 2.6.16 以 降 で は 、 MS_NOATIMEMS_NODIRATIME も マ ウ ン ト ポ イ ン ト 単 位 で 指 定 で き る 。 ま た 、 MS_RELATIME フ ラ グ も マ ウ ン ト ポ イ ン ト 単 位 で 設 定 で き る 。 引 き 数 data が ど の よ う に 解 釈 さ れ る か は 、 フ ァ イ ル シ ス テ ム に よ っ て 異 な る 。 た い て い は 、 指 定 さ れ た フ ァ イ ル シ ス テ ム で 利 用 可 能 な オ プ シ ョ ン が コ ン マ 区 切 り で 並 べ ら れ た 文 字 列 で あ る 。 各 フ ァ イ ル シ ス テ ム に 対 し て 指 定 可 能 な オ プ シ ョ ン の 詳 細 に つ い て は mount(8) を 参 照 の こ と 。

返 り 値

成 功 し た 場 合 、 0 が 返 さ れ る 。 失 敗 し た 場 合 、 −1 が 返 さ れ 、 errno に 適 切 な 値 が セ ッ ト さ れ る 。

エ ラ ー

以 下 に 示 す エ ラ ー は 、 フ ァ イ ル シ ス テ ム に 依 存 し な い も の で あ る 。 そ れ ぞ れ の フ ァ イ ル シ ス テ ム タ イ プ に は 固 有 の エ ラ ー が 存 在 す る 場 合 が あ り 、 独 自 の 動 作 を す る こ と も あ る 。 詳 し く は Linux カ ー ネ ル の ソ ー ス を 見 て 欲 し い 。

EACCES パ ス に 含 ま れ る デ ィ レ ク ト リ に 検 索

(実 行 ) 許 可 が な い

(path_resolution(7) も 参 照 )。 ま た は 、 MS_RONLY フ ラ グ を 指 定 せ ず に 読 み 込 み 専 用 の フ ァ イ ル シ ス テ ム を マ ウ ン ト し よ う と し た 。 ま た は 、 ブ ロ ッ ク デ バ イ ス sourceMS_NODEV オ プ シ ョ ン で マ ウ ン ト さ れ た フ ァ イ ル シ ス テ ム 上 に あ る 。

EBUSY

source は 既 に マ ウ ン ト さ れ て い る 。 ま た は 、 書 き 込 み 用 に オ ー プ ン さ れ た フ ァ イ ル が あ り 、 読 み 込 み 専 用 で 再 マ ウ ン ト す る こ と が で き な い 。 ま た は 、 target が 使 用 中 (busy) の た め 、 target に マ ウ ン ト で き な い 。 target が 使 用 中 の 例 と し て は 、 あ る ス レ ッ ド の 動 作 デ ィ レ ク ト リ (working directory) で あ る と か 、 別 の デ バ イ ス の マ ウ ン ト ポ イ ン ト で あ る と か 、 オ ー プ ン さ れ た フ ァ イ ル が 存 在 す る 、 な ど が あ る 。

EFAULT

場 所 を 示 す 引 き 数 の ひ と つ が ユ ー ザ ー の ア ド レ ス 空 間 の 外 を 指 し て い る 。

EINVAL

source に 不 正 な ス ー パ ー ブ ロ ッ ク が あ る 。 ま た は 、 sourcetarget に マ ウ ン ト さ れ て い な い の に 、 再 マ ウ ン ト (MS_REMOUNT) が 要 求 さ れ た 。 ま た は 、 source が マ ウ ン ト ポ イ ン ト で は な い か 、 '/' な の に 、 移 動 (MS_MOVE) が 要 求 さ れ た 。

ELOOP

パ ス 名 の 解 決 中 に 登 場 し た リ ン ク が 多 す ぎ た 。 ま た は 、 targetsource の 子 孫 な の に 移 動 が 要 求 さ れ た 。
EMFILE

(ブ ロ ッ ク デ バ イ ス が 必 要 で な い 場 合 ) ダ ミ ー デ バ イ ス の テ ー ブ ル が 一 杯 に な っ た 。

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

ENODEV

filesystemtype が カ ー ネ ル 中 で 定 義 (config) さ れ て い な い 。

ENOENT

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

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

ENOTBLK

(ブ ロ ッ ク デ バ イ ス が 必 要 だ が ) source が ブ ロ ッ ク デ バ イ ス で は な い 。

ENOTDIR

target か 、 source の プ レ フ ィ ッ ク ス が デ ィ レ ク ト リ で は な い 。

ENXIO ブ ロ ッ ク デ バ イ ス

source の メ ジ ャ ー 番 号 が 範 囲 外 で あ る 。

EPERM 呼 び 出 し 元 が 必 要 な

権 限 を 持 っ て い な い 。

バ ー ジ ョ ン

MS_DIRSYNC, MS_MOVE, MS_REC, MS_RELATIME, MS_STRICTATIME の 定 義 が glibc の ヘ ッ ダ ー に 追 加 さ れ た の は バ ー ジ ョ ン 2.12 に お い て で あ る 。

準 拠

こ の 関 数 は Linux 固 有 の 関 数 で あ り 、 移 植 を 考 慮 し た プ ロ グ ラ ム で は 使 用 す べ き で な い 。

注 意

元 の MS_SYNC フ ラ グ は 、 別 の MS_SYNC<mman.h> に 追 加 さ れ た の で 1.1.69 か ら MS_SYNCHRONOUS に 名 前 が 変 わ っ た 。

Linux 2.4 よ り 前 の バ ー ジ ョ ン で は 、 MS_NOSUID オ プ シ ョ ン 付 き で マ ウ ン ト さ れ た フ ァ イ ル シ ス テ ム 上 の set−UID や set−GID の プ ロ グ ラ ム を 実 行 し よ う と す る と 、 EPERM エ ラ ー と な っ た 。 Linux 2.4 以 降 で は 、 こ の よ う な 場 合 は set−UID ビ ッ ト や set−GID ビ ッ ト が 無 視 さ れ る だ け で あ る 。 プ ロ セ ス 単 位 の 名 前 空 間 カ ー ネ ル 2.4.19 以 降 の Linux で は 、 プ ロ セ ス 単 位 の マ ウ ン ト 名 前 空 間 (mount namespace) が 提 供 さ れ て い る 。 マ ウ ン ト 名 前 空 間 と は 、 あ る プ ロ セ ス に 見 え て い る フ ァ イ ル シ ス テ ム の マ ウ ン ト の 集 合 で あ る 。 マ ウ ン ト ポ イ ン ト の 名 前 空 間 は 複 数 の プ ロ セ ス で 共 有 す る こ と が で き 、 普 通 は 共 有 さ れ て い る 。 一 つ の プ ロ セ ス に よ る 名 前 空 間 の 変 更 (す な わ ち 、 マ ウ ン ト や ア ン マ ウ ン ト ) は 同 じ 名 前 空 間 を 共 有 す る 他 の 全 て の プ ロ セ ス に も 見 え る 。 (2.4.19 よ り 前 の Linux は 、 一 つ の 名 前 空 間 が シ ス テ ム 上 の 全 プ ロ セ ス で 共 有 さ れ る 状 況 と み な す こ と が で き る 。 )

fork(2) 経 由 で 作 成 さ れ た 子 プ ロ セ ス は 親 プ ロ セ ス の マ ウ ン ト 名 前 空 間 を 共 有 す る 。 execve(2) の 前 後 で マ ウ ン ト 名 前 空 間 は 保 持 さ れ る 。 プ ロ セ ス は 自 分 用 (private) の マ ウ ン ト 名 前 空 間 を 持 つ こ と が で き る 。 自 分 用 の 名 前 空 間 を 持 つ こ と が で き る の は 、 そ の プ ロ セ ス が clone(2) CLONE_NEWNS フ ラ グ を 使 っ て 作 成 さ れ た 場 合 と 、 そ の プ ロ セ ス が CLONE_NEWNS フ ラ グ 付 き で unshare(2) を 呼 び 出 し た 場 合 で あ る 。 前 者 の 場 合 、 作 成 さ れ た プ ロ セ ス の 新 し い 名 前 空 間 は clone(2) を 呼 び 出 し た プ ロ セ ス の 名 前 空 間 の 「 コ ピ ー 」 で 初 期 化 さ れ る 。 後 者 の 場 合 、 unshare(2) を 呼 び 出 す と 、 呼 び 出 し 元 の プ ロ セ ス の マ ウ ン ト 名 前 空 間 が 、 そ れ ま で は 他 の プ ロ セ ス と 共 有 し て い た 名 前 空 間 の 自 分 用 の コ ピ ー と な る 。 こ れ に よ り 、 呼 び 出 し 元 の プ ロ セ ス が こ れ 以 後 に 行 う マ ウ ン ト /ア ン マ ウ ン ト は 他 の プ ロ セ ス か ら 見 え な く な る (た だ し 、 呼 び 出 し 元 の プ ロ セ ス が unshare(2) の 呼 び 出 し 以 降 に 作 成 し た 子 プ ロ セ ス に は 見 え る )。 ま た 、 そ の 逆 の 、 他 の プ ロ セ ス が 行 っ た マ ウ ン ト /ア ン マ ウ ン ト も 呼 び 出 し 元 の プ ロ セ ス に は 見 え な く な る 。

Linux 独 自 の フ ァ イ ル /proc/PID/mounts で は 、 指 定 さ れ た ID を 持 つ プ ロ セ ス の マ ウ ン ト 名 前 空 間 に お け る マ ウ ン ト ポ イ ン ト の リ ス ト が 公 開 さ れ て い る 。 詳 細 は proc(5) を 参 照 の こ と 。

関 連 項 目

umount(2), namespaces(7), path_resolution(7), lsblk(8), mount(8), umount(8)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。