名 前
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 を 構 成
す る こ と が 可
能 に な る 。 引
き 数 filesystemtype と data
は 無 視 さ れ る
。 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 す で に 存 在
す る マ ウ ン ト
を 再 マ ウ ン ト
す る 。 こ れ に
よ り 、 す で に
存 在 す る マ ウ
ン ト の mountflags と
data を 、 一 度 ア
ン マ ウ ン ト し
て か ら 再 マ ウ
ン ト す る と い
う 作 業 を せ ず
に 変 更 で き る
。 target は 最 初 の
mount() 呼 び 出 し と
同 じ 値 を 指 定
す る 必 要 が あ
る 。 source と
filesystemtype は 無 視 さ
れ る 。 引 き 数
mountflags と data は 、
意 図 的 に 変 更
す る も の 以 外
は 、 元 の 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_NOATIME と MS_RELATIME の
両 フ ラ グ を 設
定 し た 際 の 影
響 を 上 書 き す
る こ と が で き
る 。
MS_SYNCHRONOUS フ ァ イ ル
シ ス テ ム に 対
し て 同 期 的 に
書 き 込 み を 行
う 。 (こ の フ ァ
イ ル シ ス テ ム
の 全 て の オ ー
プ ン さ れ た フ
ァ イ ル に 対 し
て 、 open(2) の フ ラ
グ に O_SYNC を 指 定
し た よ う な 動
作 と な る )
Linux 2.4 以 降 で は 、 MS_NODEV, MS_NOEXEC, MS_NOSUID は マ ウ ン ト ポ イ ン ト 単 位 で 指 定 で き る 。 カ ー ネ ル 2.6.16 以 降 で は 、 MS_NOATIME と MS_NODIRATIME も マ ウ ン ト ポ イ ン ト 単 位 で 指 定 で き る 。 ま た 、 MS_RELATIME フ ラ グ も マ ウ ン ト ポ イ ン ト 単 位 で 設 定 で き る 。 引 き 数 data が ど の よ う に 解 釈 さ れ る か は 、 フ ァ イ ル シ ス テ ム に よ っ て 異 な る 。 た い て い は 、 指 定 さ れ た フ ァ イ ル シ ス テ ム で 利 用 可 能 な オ プ シ ョ ン が コ ン マ 区 切 り で 並 べ ら れ た 文 字 列 で あ る 。 各 フ ァ イ ル シ ス テ ム に 対 し て 指 定 可 能 な オ プ シ ョ ン の 詳 細 に つ い て は mount(8) を 参 照 の こ と 。
返 り 値
成 功 し た 場 合 、 0 が 返 さ れ る 。 失 敗 し た 場 合 、 −1 が 返 さ れ 、 errno に 適 切 な 値 が セ ッ ト さ れ る 。
エ ラ ー
以 下 に 示 す エ ラ ー は 、 フ ァ イ ル シ ス テ ム に 依 存 し な い も の で あ る 。 そ れ ぞ れ の フ ァ イ ル シ ス テ ム タ イ プ に は 固 有 の エ ラ ー が 存 在 す る 場 合 が あ り 、 独 自 の 動 作 を す る こ と も あ る 。 詳 し く は Linux カ ー ネ ル の ソ ー ス を 見 て 欲 し い 。
EACCES パ ス に 含 ま れ る デ ィ レ ク ト リ に 検 索 |
(実 行 ) 許 可 が な い |
(path_resolution(7) も 参 照 )。 ま た は 、 MS_RONLY フ ラ グ を 指 定 せ ず に 読 み 込 み 専 用 の フ ァ イ ル シ ス テ ム を マ ウ ン ト し よ う と し た 。 ま た は 、 ブ ロ ッ ク デ バ イ ス source が MS_NODEV オ プ シ ョ ン で マ ウ ン ト さ れ た フ ァ イ ル シ ス テ ム 上 に あ る 。
EBUSY |
source は 既 に マ ウ ン ト さ れ て い る 。 ま た は 、 書 き 込 み 用 に オ ー プ ン さ れ た フ ァ イ ル が あ り 、 読 み 込 み 専 用 で 再 マ ウ ン ト す る こ と が で き な い 。 ま た は 、 target が 使 用 中 (busy) の た め 、 target に マ ウ ン ト で き な い 。 target が 使 用 中 の 例 と し て は 、 あ る ス レ ッ ド の 動 作 デ ィ レ ク ト リ (working directory) で あ る と か 、 別 の デ バ イ ス の マ ウ ン ト ポ イ ン ト で あ る と か 、 オ ー プ ン さ れ た フ ァ イ ル が 存 在 す る 、 な ど が あ る 。 | ||
EFAULT |
場 所 を 示 す 引 き 数 の ひ と つ が ユ ー ザ ー の ア ド レ ス 空 間 の 外 を 指 し て い る 。
EINVAL |
source に 不 正 な ス ー パ ー ブ ロ ッ ク が あ る 。 ま た は 、 source が target に マ ウ ン ト さ れ て い な い の に 、 再 マ ウ ン ト (MS_REMOUNT) が 要 求 さ れ た 。 ま た は 、 source が マ ウ ン ト ポ イ ン ト で は な い か 、 '/' な の に 、 移 動 (MS_MOVE) が 要 求 さ れ た 。
パ ス 名
の 解 決 中 に 登
場 し た リ ン ク
が 多 す ぎ た 。
ま た は 、 target が
source の 子 孫 な の
に 移 動 が 要 求
さ れ た 。 (ブ ロ ッ ク デ バ イ ス が 必 要 で な い 場 合 ) ダ ミ ー デ バ イ ス の テ ー ブ ル が 一 杯 に な っ た 。 ENAMETOOLONG パ ス 名 の 長 さ が MAXPATHLEN よ り 長 か っ た 。
パ ス 名 が 空 で あ る 。 も し く は 指 定 さ れ た パ ス が 存 在 し な い 。
ENOTBLK (ブ ロ ッ ク デ バ イ ス が 必 要 だ が ) source が ブ ロ ッ ク デ バ イ ス で は な い 。 ENOTDIR target か 、 source の プ レ フ ィ ッ ク ス が デ ィ レ ク ト リ で は な い 。
権 限 を 持 っ て い な い 。
|