更新时间:2024-02-19 01:15
mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。
当然,mount命令也变成了一种图形化的界面,用户不需要再去记住那些复杂的mount命令,只需选择文件并点击mount按钮就可以完成操作。mount在Windows系统下的含义是:挂载文件到一个虚拟盘或一个虚拟文件夹中,通过访问这个虚拟盘或文件夹使用整个文件。
过去,玩游戏需要物理光驱和物理光盘,要把光盘里的游戏安装文件通过光驱的读取,再拷入电脑中安装并使用,有些游戏在玩的时候甚至还要实时读取光盘,这样对光驱的损害非常大。随着虚拟光驱的出现,各种虚拟镜像格式标准也陆续在互联网上出现,比如说ISO,BIN,MDS,MDF,NRG,IMG等。
虚拟光驱和虚拟镜像的出现对物理光驱和物理光盘起到了一个巨大的冲击作用,物理光驱已经不是电脑必须的一个设备了,游戏光盘的需求量也大大减少了。用户完全可以从网上下载一个虚拟游戏镜像,再用虚拟光驱软件读取就可以了,大大节省了成本。同样,很多电影,音乐,软件,资料都纷纷被做成了虚拟镜像文件,在互联网上传播。
以下格式均可以mount到虚拟盘中使用
1.光盘镜像ISO/IMG/VCD/nrg/mdf及mds/FCD/LCD/bin等
支持软件:Alcohol, Clone, Daemon, UtraISO, WinISO, Virtual disk, WinMount
2.音频镜像FLAC/APE/WV/WAVE
支持软件:WinMount
支持软件:Virtual disk, VMware, Virtual box, WinMount
4.压缩格式RAR/ZIP/MOU
支持软件:WinMount
【程序中mount()/umount()函数的系统调用】
功能描述:mount挂上文件系统,umount执行相反的操作。用法:
#include
int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);
int umount(const char *target);
int umount2(const char* target, int flags);
参数:
source:将要挂上的文件系统,通常是一个设备名。
target:文件系统所要挂载的目标目录。
filesystemtype:文件系统的类型procntfsiso9660
mountflags:指定文件系统的读写访问标志,可能值有以下
MS_BIND:执行bind挂载,使文件或者子目录树在文件系统内的另一个点上可视。
MS_DIRSYNC:同步目录的更新。
MS_MANDLOCK:允许在文件上执行强制锁。
MS_MOVE:移动子目录树。
MS_NOATIME:不要更新文件上的访问时间。
MS_NODEV:不允许访问设备文件。
MS_NODIRATIME:不允许更新目录上的访问时间。
MS_NOEXEC:不允许在挂上的文件系统上执行程序。
MS_NOSUID:执行程序时,不遵照set-user-ID和set-group-ID位。
MS_RDONLY:指定文件系统为只读。
MS_REMOUNT:重新加载文件系统。这允许你改变现存文件系统的mountflag和数据,而无需使用先卸载,再挂上文件系统的方式。
MS_SYNCHRONOUS:同步文件的更新。
MNT_FORCE:强制卸载,即使文件系统处于忙状态。
MNT_EXPIRE:将挂载点标志为过时。
data:文件系统特有的参数。
返回说明:成功执行时,返回0。失败返回-1,errno被设为以下的某个值EACCES:权能不足,可能原因是,路径的一部分不可搜索,或者挂载只读的文件系统时,没有指定MS_RDONLY标志。
EAGAIN:成功地将不处于忙状态的文件系统标志为过时。
EBUSY:一.源文件系统已被挂上。或者不可以以只读的方式重新挂载,因为它还拥有以写方式打开的文件。二.目标处于忙状态。
EFAULT:内存空间访问出错。
EINVAL:操作无效,可能是源文件系统超级块无效。
ELOOP:路径解析的过程中存在太多的符号连接。
EMFILE:无需块设备要求的情况下,无用设备表已满。
ENAMETOOLONG:路径名超出可允许的长度。
ENODEV:内核不支持某中文件系统。
ENOENT:路径名部分内容表示的目录不存在。
ENOMEM:核心内存不足。
ENOTBLK:source不是块设备。
ENOTDIR:路径名的部分内容不是目录。
EPERM:调用者权能不足。
ENXIO:块主设备号超出所允许的范围。
mount 命令
用途:
使文件系统可用。
语法:
mount [ -f ] [ -n Node ] [ -o Options ] [ -p ] [ -r ] [ -v VfsName ] [ -t Type | [ Device | Node:Directory ] Directory | all | -a ] [-V [generic_options] special_mount_points ]
描述:
mount 命令指示操作系统使文件系统在指定位置(安装点)可用。此外,可以用 mount 命令构建由目录和安装文件(file mounts) 组成的其他文件树。Mount 命令通过在 Directory 参数指定的目录上使用 Device/Node: Directory 参数来安装表示为设备的文件系统。mount 命令完成以后,指定的目录变为新安装文件系统的根目录。
只有有 root 权限的用户或系统组成员和对安装点有写权限的用户能发出文件或目录安装(directory mounts)。文件或目录可以是符号链接。mount 命令使用真实的用户标识,而不是有效的用户标识,来确定用户是否有相应的访问权限。假定系统组成员对安装点或在 /etc/filesystems 文件中指定的安装有写入权限,他们能发出设备安装(device mounts)。有 root 用户权限的用户能发出任意的 mount 命令。
如果用户属于系统组并且有相应的存取权限则能安装设备。安装设备时, mount 命令使用 Device 参数作为块设备名,Directory 参数作为文件系统所要安装的目录。
如果输入不带标志的 mount 命令,命令为安装的文件系统显示如下信息:
* 节点(如果安装是远程的)
* 安装的对象
* 安装点
* 虚拟 - 文件 - 系统的类型
* 安装的时间
* 任何安装选项
如果只指定 Directory 参数,mount 命令把它当作文件系统、目录或文件通常安装的目录名或文件名(正如 /etc/filesystems 文件所定义)。 mount 命令查看有关的设备、目录、或文件并安装。这是使用 mount 命令的最方便的方式,因为不需要记住目录或文件中安装了什么。也可以只指定设备。在此情况下,命令从 /etc/filesystems 文件获得安装点。
/etc/filesystems 文件应该为每个可安装的文件系统、目录或文件包括一节。该节应该至少指定文件系统名和所驻留的设备或目录名。如果节包括安装属性, mount 命令使用有关的值。它为安装属性识别五个值:自动、真、假、可移动和只读。
mount all 命令导致所有带有 mount=true 属性的文件系统安装到它们正常的位置。该命令通常应用在系统初始化期间,相应的安装是指自动安装。
mount 命令也能用来访问作为目录树的 JFS2 文件系统的快照。设备上的快照以只读方式安装到目录下。 快照只能安装一次。当用快照安装 JFS2 文件系统时,快照是激活的。
可以在“基于 Web 的系统管理器”(wsm)中使用文件系统应用程序来运行该命令。也可以使用“系统管理接口工具”(SMIT)smit mount 快速路径来运行该命令。
注:如果 mount 命令遇到日志文件系统(JFS)或在重新引导之前未卸装增强的日志文件系统(JFS2),任意的 JFS 或 JFS2 日志记录试图重新播放。为了移动兼容的 JFS 文件系统到运行早期发行版操作系统的系统中,文件系统必须在移动之前卸装干净。卸装失败首先可能导致不兼容的 JFS 日志设备。如果移动导致未知的日志设备,文件系统应该返回到运行后续操作系统发行版的系统,并且 fsck 应该在文件系统上运行。
注:如果启用了 cdromd CD 和 DVD automount 守护进程,则那些设备会按 /etc/cdromd.conf 文件中指定的那样自动安装。使用 cdumount 或 cdeject 命令卸装自动安装的 CD 或 DVD。 使用 stopsrc -s cdromd 禁用 CD/DVD automount 守护进程。
注:对于 CacheFS,必须导出本地高速缓存的远程文件系统,以便不将远程主机上的本地系统的 root 标识映射为 nobody(或远程主机用作匿名用户的标识)。例如,如果主机 A 要导出文件系统 /F(而该文件系统将使用 CacheFS 加载到主机 B 上),则主机 A 上的 /etc/exports 则需要一个如下条目:
/F -rw,root=B或 /F -ro,root=B,这取决于本地 CacheFS 使用的安装选项。
标志
-a 使用包含 true 安装属性的节,在 /etc/filesystems 文件中安装所有的文件系统。
所有 与 -a 标志相同。
文件系统系统特定选项
-o Options 指定选项。在命令行上输入的选项应该只用逗号隔开。下面的文件系统-特定选项不适用于所有的虚拟文件系统类型:
bsy
如果要安装到的目录是进程的当前工作目录,防止安装操作。
cio
为并发阅读器和记录器指定要安装的文件系统。该文件系统中的文件上的 I/O 将如同它们已经使用 open() 系统调用中指定的 O_CIO 打开一样操作。使用此选项将防止除 CIO 之外任何形式的访问。不可能在使用 cio 选项加载的文件系统上使用高速缓存的 I/O。这意味着 mmap() 和 shmat() 之类的映射命令在使用 cio 选项加载的文件系统中的任何文件上使用时将失败,且返回 EINVAL。这样做的一个副作用是不可能在 cio 加载的文件系统外运行二进制,因为装入程序可能使用 mmap()。
dio
指定文件系统上的 I/O 的操作如同所有的文件是用 open()系统调用指定的 O_DIRECT 打开。
fmode=octal
为文件和目录指定方式。缺省值是 755。
gid=gid
指定在安装时分配给文件的 GID。缺省值是 bin。
log=LVName
指定记录下面的文件-系统操作的文件系统记录逻辑卷名的全路径名。
nocase
关闭大小写映射。 这对使用 ISO 9660:1998/HSG 标准的 cdrom 是有用的。
nodev
指定从该安装不能打开设备。如果失败此选项返回一个 ENXIO 值。
nosuid
指定不允许通过该安装执行 setuid 和 setgid 程序。如果失败此选项返回一个 EPERM 值。
用读之后释放能力安装文件系统。 当在该文件系统中检测到顺序读取,文件使用的真正的内存页一旦复制到内部缓冲区将释放。
注:当指定 rbr,D_RB_READ 标志在 pdtentry 结构的 _devflags 字段最后设置。
rbw
用写之后释放能力安装文件系统。当在该文件系统中检测到顺序写,文件使用的真正的内存页一旦写到磁盘将释放。
注:当指定 rbw时,设置 D_RB_WRITE 标志。
rbrw
用读之后释放能力和写之后释放能力安装文件系统。
注:如果指定了 rbrw,则 D_RB_READ 和 D_RB_WRITE 标志都设置。
ro
指定安装的文件是只读的。缺省值是 rw。
rw
指定安装的文件是可读/写的。rw 是缺省值。
snapshot
指定要安装的设备是快照。必须已经安装指定快照的“拍摄的”文件系统,否则会显示错误消息。
snapto=snapshot
当安装指定的 JFS2 文件系统时,用 快照的值指定启动快照的位置。
特定于文件系统的选项(继续)
-o 选项 指定选项。在命令行上输入的选项应该只用逗号隔开。下面的文件系统-特定选项不适用于所有的虚拟文件系统类型:
upcase
把大小写映射从缺省的小写变为大写。这对使用 ISO 9660:1998/HSG 标准的 cdrom 是有用的。
uid=uid
指定在安装时分配给文件的 UID,缺省值是 bin。
wrkgrp=workgroup
指定 SMB 服务器所属的工作组。
NFS 特定选项
-o Options 指定选项。在命令行输入的选项应该用逗号隔开,而不是逗号与空格隔开。下面的 NFS 特定的选项不适用于所有的虚拟文件系统类型:
acdirmax=n
在目录更新后,只保留高速缓存的属性 n 秒。缺省值是 60 秒。
acdirmin = n
在目录更新后,保留高速缓存的属性至少 n 秒。缺省值是 30 秒。
acl
为此 NFS 安装使用访问控制列表 RPC 程序的请求。如果使用 acl 选项,只在 NFS 服务器提供 ACL RPC 程序时使用它。缺省值是 noacl。 该选项只用在 AIX 4.2.1 或以后版本。
acregmax=n
在文件修改后,只保留高速缓存的属性 n 秒。缺省值是 60 秒。
acregmin=n
在文件修改后,高速缓存的属性保留至少 n 秒。缺省值是 3 秒。
actimeo=n
为正常的文件和目录设置最小和最大时间是 n 秒。如果此选项设置,将覆盖所有的 acregmin、acregmax、acdirmin、和 acdirmax 选项的设置。
bg
如果第一次尝试是失败的,试图在后台安装。缺省值是 fg。
fastattr
忽略当前正在写的文件在文件属性读之前发送到服务器的要求。该选项使用时要注意,因为它会引起客户机假定没有到达服务器的文件数据将没有任何问题的写。在写错误的情况下,客户机和服务器在文件的真正大小方面有不同的选项。同样,一个客户机不会知道其他客户机对文件属性所作的改变,所以该选项不能用在两个客户机向相同的文件写的环境中。
fg
如果第一次尝试是失败的,试图在前台中安装。fg 是缺省值。
grpid
使在文件系统上创建的文件或目录继承父目录的组 ID。
hard
再次请求直到服务器响应,与soft不同。此选项是缺省值。
intr
在硬安装时允许键盘中断。
llock
请求文件本地锁定在 NFS 客户机。如果 llock 选项未用,则 NFS 网络文件锁定请求不能发送到 NFS 服务器。该选项只用在 AIX 4.2.1 或以后版本。
maxgroups=n
表示使用 AUTH_UNIX 的 NFS RPC 调用最多可以包括 n 个成员组的信息。使用该选项增加超出 RPC 协议标准 16 的成员组数将只不对支持超出 16 个成员组的服务器起作用。否则,客户机将遇到错误。
低于 16 的值或超过 64 的值将会忽略。缺省情况下,协议标准最大值仍为 16。AIX NFS 服务器将接受并处理以 带有 5200-01 推荐的维护软件包的 AIX 5L V 5.2 开头的最多为 64 的 AUTH_UNIX 凭证。由 NFS 客户机发送的成员组的实际数取决于参加的用户为其成员的组数,并且可能受 NFS 客户机主机名(它可能包括在 AUTH_UNIX 信息中)的长度的限制。
noac
指定 mount 命令执行无属性或目录高速缓存。如果未指定该选项,文件和目录属性(包括许可权、大小、和时间戳记)被高速缓存以减少执行有线接收 NFSPROC_GETATTR 远程过程调用(RPC)的需求。 NFSPROC_GETATTR RPC 启动客户机提示输入服务器文件和目录属性。 acregmin、acregmax、acdirmin、和 acdirmax 选项控制高速缓存值保留的时间长度。
noacl
为 NFS 安装请求指定不使用访问控制列表 RPC 程序。缺省值是 noacl。 该选项只用在 AIX 4.2.1 或以后版本。
nointr
指定在硬安装时不允许键盘中断。该选项只用在 AIX 4.2.1 或以后版本。
port=n
设置服务器网际协议(IP)端口号为 n。缺省值是 2049。
posix
请求路径配置信息在 NFS V2 安装版本可交换和使用。在 NFS 服务器上,请求安装 V2 rpc.mountd。
该选项只用在 AIX 4.2.1 或以后版本。
proto=[udp|tcp]
指定传输协议。AIX 4.2.1 NFS 安装使用的缺省传输协议如果在服务器上有则是 udp。对于 AIX 4.3 或以后版本缺省值是 tcp。 使用 proto=[udp|tcp] 选项覆盖缺省值。此选项只用在 AIX 4.2.1 或以后版本。
retrans=n
设置 NFS 传输号为 n。缺省值是 5。
retry=n
设置安装重试的次数为 n;缺省值是 1000。 当重试值是 0, 系统作 10,000 次尝试。
rsize=n
设置读缓冲区为 n 个字节。缺省值是 8192。 只有 AIX 4.2.1 在使用 V3 NFS 协议时,缺省值是 32768。
安全
指定 mount 命令为 NFS 事务使用数据加密标准(DES)。
shortdev
指定从不支持 32-位设备特殊文件的主机安装文件系统。该选项不能用在 AIX 4.2.1 或以后版本。
soft
如果服务器不响应,返回错误。缺省值是 hard。
timeo=n
设置网络文件系统(NFS)超时周期是一秒的十分之 n。对于 TCP 安装,缺省超时值是 100, 相当于 10 秒。对于 UDP 安装,缺省超时值是 11, 相当于 1.1 秒,但根据发生的 NFS 操作有所不同。对于 UDP 安装,每次失败传送,超时都会增加,最大值是 20 秒。每次传输尝试两次,之后超时值更新。
vers = [2|3]
指定 NFS 版本。缺省值是在客户机和服务器之间使用的 NFS 协议的版本,是在两个系统上可获得的最大值。如果 NFS 服务器不支持 NFS V3, NFS 安装将使用 NFS V2。使用 vers = [2|3] 选项选择 NFS 版本。此选项只用在 AIX 4.2.1 或以后版本。
wsize=n
设置写缓冲区大小为 n 字节。缺省值是 8192。 只有 AIX 4.2.1 在使用 V3 NFS 协议时,缺省值是 32768。
-p 安装文件系统作为可移动文件系统。如果上面有打开的文件,可移动的安装文件系统的操作与正常安装的文件系统的操作相同。但是,当没有文件打开的时候(并且在文件系统上没有进程有当前目录),所有的在文件系统的文件系统磁盘缓冲区写到介质,操作系统丢失文件系统的结构。
-r 安装文件系统作为只读文件系统,忽略在 /etc/filesystems 文件中以前的规格。
-t Type 安装所有包含 type = Type属性并且未安装的 /etc/filesystems 文件中的节。Type 参数指定组名。
-v VfsName 指定文件系统由 /etc/vfs 文件中的 VfsName 参数定义。
CacheFS 特定选项
特定于 CacheFS 版本的 mount 命令安装高速缓存文件系统;如果需要,它 NFS-安装后端文件系统。也提供了许多控制高速缓存进程的 CacheFS — 特定选项。
要安装 CacheFS 文件系统,请使用带有 -V 标志并且后跟变量的 mount 命令。可使用以下 mount 标志。
下列 -o 标志的参数是 CacheFS 安装特有的。在命令行输入的选项应该用逗号隔开,而不是逗号与空格隔开。
注:backfstype 参数必须指定。
-o 指定选项。
acdirmax=n
指定目录更新后高速缓存的属性保留时间不超过 n 秒。n 秒之前,CacheFS 查看备份文件系统上的目录修改时间是否已更改。如果已经更改,所有有关目录的信息从高速缓存清除并且从文件系统检索新的数据。缺省值为 60 秒。
acdirmin=n
指定在目录更新后,高速缓存的属性至少保留 n 秒。 n 秒之后, CacheFS 检查在备份文件系统的目录修改时间是否更改。如果已经更改,所有有关目录的信息从高速缓存清除并且从文件系统检索新的数据。缺省值是 30 秒。
acregmax=n
指定在文件修改后,高速缓存的属性只保留 n 秒。 n 秒之后,所有的文件信息从高速缓存清除。缺省值是 30 秒。
acregmin=n
指定在文件修改后,高速缓存的属性保留至少 n 秒。 n 秒之后, CacheFS 检查在后端文件系统的文件修改时间是否更改。如果已经更改,所有有关文件的信息从高速缓存清除并且从文件系统检索新的数据。缺省值是 30 秒。
actimeo=n
设置 acregmin、acregmax、acdirmin、和 acdirmax 为 n。
backfstype=file_system_type
上一个文件系统的文件类型(例如,nfs)。
backpath=path
指定后端文件系统已经安装的位置。如果此参数未提供,CacheFS 确定后端文件系统的安装点。
cachedir=directory
高速缓存目录名。
cacheid=ID
ID 是指定高速缓存的特殊实例的字符串。如果不指定高速缓存 ID, CacheFS 将创建一个。
demandconst
启用最大的高速缓存一致性校验。缺省情况下,周期性的一致性校验启用。当启用 demandconst, 检查每一个读和写。
注:如果此选项是在加载特定 CacheFS 之后首次使用,还必须为后续加载对其进行指定。高速缓存控制文件中存储有状态信息,用于强制对该选项进行一致的使用。
local_access
导致前端文件系统解释方式位,这些方式位用来访问校验或使前端文件系统验证访问许可权。此参数不能和安全 NFS 一起使用。
noconst
禁用高速缓存一致性校验。缺省情况下,周期性的一致性校验启用。只有在知道上一个文件系统不修改时,指定 noconst。尝试使用 cfsadmin-s 进行高速缓存一致性校验将发生错误。demandconst 和 noconst 互相排斥。
注:如果此选项是在加载特定 CacheFS 之后首次使用,还必须为后续加载对其进行指定。高速缓存控制文件中存储有状态信息,用于强制对该选项进行一致的使用。
为指定的文件系统清除所有的高速缓存信息。
注:如果此选项是在加载特定 CacheFS 之后首次使用,还必须为后续加载对其进行指定。高速缓存控制文件中存储有状态信息,用于强制对该选项进行一致的使用。
rw | ro
读-写(缺省值)或只读。
suid | nosuid
允许(缺省值)或不允许 set-uid 执行
write-around | non-shared
CacheFS 的写方式。write-around 方式(缺省值)处理写的方式与 NFS 相同;也就是,写到后端文件系统,并且从高速缓存清除影响的文件。当确信没有其他人要写到高速缓存文件系统时,可以使用非共享方式。
注:如果此选项是在加载特定 CacheFS 之后首次使用,还必须为后续加载对其进行指定。高速缓存控制文件中存储有状态信息,用于强制对该选项进行一致的使用。
-V 安装 CacheFS 文件系统。
示例:
1. 要列出安装的文件系统,请输入:
mount
此命令产生的结果与下面相似:
node mounted mounted vfs date options over
---- ------- --------- --- ------------ ------- ---------
/dev/hd0 / jfs Dec 17 08:04 rw, log =/dev/hd8
/dev/hd3 /tmp jfs Dec 17 08:04 rw, log =/dev/hd8
/dev/hd1 /home jfs Dec 17 08:06 rw, log =/dev/hd8
/dev/hd2 /usr jfs Dec 17 08:06 rw, log =/dev/hd8
sue /home/local/src /usr/code nfs Dec 17 08:06 ro, log =/dev/hd8
对每个文件系统,mount 命令列出节点名、设备名、安装在什么下、虚拟-文件-系统类型、安装的日期和时间、和选项。
2. 要安装所有缺省文件系统,请输入:
mount all
此命令序列在带有 mount=true 属性标记的 /etc/filesystems 文件安装所有的标准文件系统。
3. 要安装远程目录,请输入:
mount -n nodeA /home/tom.remote /home/tom.local
此命令序列安装 nodeA 上的 /home/tom.remote 目录到本地 /home/tom.local 目录。假定缺省值是 VfsName parameter=remote, 它必须在 /etc/vfs 文件中定义。
4. 要从具有特定类型的 /etc/filesystems 文件安装文件或目录,请输入:
mount -t remote
此命令序列在有包含type=remote 属性的节的/etc/filesystems 文件安装所有的文件或目录。
5. 要 CacheFS 安装已经在 /usr/abc 安装 NFS 的文件系统,请输入:
mount -V cachefs -o backfstype=nfs,backpath=/usr/abc,
cachedir=/cache1 server1:/user2 /xyz
安装命令执行后,与下面相似的行出现在 /etc/mnttab 文件:
server1:/user2 /usr/abc nfs
/usr/abc /cache1/xyz cachefs backfstype=nfs
6. 要安装抽点转储,输入:
mount -o snapshot /dev/snapsb /home/janet/snapsb
此命令安装包含/dev/snapsb 设备的抽点转储到 /home/janet/snapsb 目录。
7. 要安装抽点转储并创建抽点转储,输入:
mount -o snapto=/dev/snapsb /dev/sb /home/janet/sb
该命令将包含在 /dev/sb 设备上的文件系统安装到 /home/janet/sb 目录,并为 /dev/snapsb 设备上的文件系统创建快照。
8. 作为本地文件系统访问 SMB 服务器上的文件,输入:
mount -v cifs -n pezman/user1/pass1 -o uid=201,fmode=750 /home /mnt
文件:
/etc/filesystems 列出已知文件系统并且定义它们的特征。
/etc/vfs 包含虚拟-文件-系统类型的描述。