admin管理员组文章数量:1538188
简介
mount操作是用来挂载文件系统,需要在特权级(CAP_SYS_ADMIN)下执行;将source指定的文件系统(通常是指向设备的路径名,但也可以是目录或文件的路径名,或者是虚拟字符串)附加到target中路径名指定的位置(目录或文件)。
umount操作是用来卸载文件系统,同样需要在特权级(CAP_SYS_ADMIN)下执行;
mount函数原型:
#include <sys/mount.h>
int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *_Nullable data);
int unmount(const char *target);
int unmount2(const char *target ,int flags);
filesystemtype参数:
传入需要挂载的文件系统类型,具体内核支持的类型,可以查看文件/proc/filesystems;例如,"btrfs", "ext4", "jfs", "xfs", "vfat", "fuse", "tmpfs", "cgroup", "proc", "mqueue”,"nfs", "cifs", "iso9660"等待。
当加载适当的模块时,其他类型可能变得可用。
mountflags参数:
可以指定 0到多个如下标志:
MS_BIND:建立绑定挂载,如果指定了该标志,那么 mount()会忽略fstype、 data 参数,以及 mountflags 中除 MS_REC 之外的标志。
MS_DIRSYNC:同步更新路径,该标志的效果类似于 open()的 O_SYNC 标志,但只针对路径。
MS_MANDLOCK:允许对该文件系统中的文件强行锁定记录;
MS_MOVE:将由 source 指定的现有挂载点移到由 target 指定的新位置,令整个动作为一原子操作,不可分割;一旦使用了这一标志,那么 mount()将忽略 fstype、 data 参数 以及 mountflags 中的其他标志。
MS_NOATIME:不更新最后访问时间(使用该标志意在消除额外的磁盘访问,避免每次访问时都更新文件i节点,可提高性能)
MS_NODEV:不允许访问此文件系统上的块设备和字符设备。设计这一特性的目的是为了保障系统安全,规避如下情况:假设用户插入了可移动磁盘,而磁盘中又包含了可随意访问系统的设备 专有文件。
MS_NODIRATIME:不更新目录的最后访问时间。
MS_NOEXEC:不允许在此文件系统上执行程序或脚本,该标志用于文件系统包含非 Linux 可执行文件的场景。
MS_NOSUID:禁用set-user-ID和set-group-ID,这属于安全特性,意在防止用户从 可移动磁盘上运行 set-user-ID 和 set-group-ID 程序。
MS_RDONLY:以只读方式挂载文件系统,在此文件系统上不能创建和修改文件;
MS_REC:该标志与其他标志(比如, MS_BIND)结合使用,以递归方式将挂载动作施之于子树下的所有挂载。
MS_RELATIME :只有当文件最后访问时间戳的当前值(上次更新时间)小于或等于最后一次修改或状态更新的时间戳时,才对其进行更新;
MS_REMOUNT :针对已经挂载的文件系统,改变其mountflag和data使用该标志时, source 和 target 参数应该与最初用于 mount()系统调用的参数相同,而对 fstype 参数则予以忽略。使用该标志可以避免对磁盘进行卸载和重新挂载,在某些场合中,这是不可能做到的。
MS_STRICTATIME:只要访问文件,就总是更新文件的最后访问时间戳;
MS_SYNCHRONOUS:对文件系统上的所有文件和目录保持同步更新;
data参数:
指向信息缓冲区的指针,对其信息的解释则取决于文件系统,不同的文件系统类型,含义解释不同,通常是由逗号分隔的选项组成的字符串。如果没有选项,这个参数可以指定为NULL。
mount命令
格式:mount [-参数] [设备名称] [挂载点]
m
版权声明:本文标题:linux mount命令与函数详解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1725871110a1046240.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论