首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维教程Linux基础【linux】循序渐进学运维-基础篇-mount

【linux】循序渐进学运维-基础篇-mount

文章目录
1. mount 命令的讲解
1)作用: 用来挂载文件系统的命令
2)基本格式为:
3)常见的文件系统类型有:
4)查看当前系统都支持哪些操作系统
5)挂载选项详解
6)与mount相关的文件
7)与mount相关的参数
2. mount使用举例
1. 允许可执行权限和不可执行权限
2.sync && async 同步写入和异步写入
3.acl的使用
4. 使用UUID进行挂载
总结

1. mount 命令的讲解

mount
1)作用: 用来挂载文件系统的命令
2)基本格式为:
挂载选项 -t 文件系统类型 -o 选项1,选项2..
示例:
mount -t ext4 -o acl /dev/sdb1 /mnt/
例句暂时看不懂也没关系,一会我们细细道来.

3)常见的文件系统类型有:

  • ext4
  • NFS
  • CIFS
  • XFS
  • ext2
  • ext3
    等等

目前centos7的系统为XFS

4)查看当前系统都支持哪些操作系统

关于上文的 -t参数,我们很多时候是不写的,但是-t参数指定文件系统类型这件事却很重要。我们可以通过查看filesystems配置文件,来查看当前系统都支持哪些文件系统

在这里插入图片描述

上述示例里第二个参数 -o

5)挂载选项详解
-o后面指定的是挂载选项,挂载选项有很多
|选项|含义|

rw | 读写
ro | 只读
suid | 支持suid
dev |支持设备文件
nodev |不支持设备文件
noexec |不允许执行二进制文件
exec | 允许执行二进制文件
auto | mount -a 开机自动挂载
noauto | mount -a 开机不自动挂载
async | 异步写入
sync |同步同入
noatime| 不更新访问时间atime
usrquota| 支持用户级磁盘配额功能
grpquota| 支持组级磁盘配额功能
acl | 支持acl功能 (访问控制列表)
remount |在线重新挂载

所以在这个示例中mount -t ext4 -o acl /dev/sdb1 /mnt/, -o后面的acl表示的就是支持访问控制列表。

到这里,相信这条示例命令你也看懂了,但看懂了只是开始,接下来,我们详细聊下关于mount的前世今生。

6)与mount相关的文件

  • /etc/fstab (设置自动挂载的文件)
  • /etc/mtab
  • /proc/mounts

7)与mount相关的参数
|参数|含义|

-r |只读
-w |读写 默认
-F|这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行
-v|显示较讯息,通常和 -f 用来除错。
-L|将含有特定标签的硬盘分割挂上。
-U|将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t|指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-a|将 /etc/fstab 中定义的所有档案系统挂上,此操作可实现开机自动挂载的要求。而当写入/etc/fstab文件后,挂载操作也可以只指定挂载源或挂载点

2. mount使用举例

1. 允许可执行权限和不可执行权限

exec/noexec

[root@gaosh-1 ~]# ll /dev/sdb*   目前有一块sdb1的盘
brw-rw----. 1 root disk 8, 16 6月  25 17:01 /dev/sdb
brw-rw----. 1 root disk 8, 17 6月  25 17:31 /dev/sdb1
[root@gaosh-1 ~]# 

创建两个目录,一个用于挂载可执行权限目录,一个用于挂载不可执行权限目录
在这里插入图片描述

挂载并测试:

[root@gaosh-1 ~]# mount /dev/sdb1 /mnt/gexec     挂载到可执行二进制目录gexec
[root@gaosh-1 ~]#  cp -rf /bin/date /mnt/gexec   #拷贝一个二进制文件过来测试
[root@gaosh-1 ~]# /mnt/gexec/date                #执行命令发现可以执行成功
2020年 06月 25日 星期四 21:13:51 CST
[root@gaosh-1 ~]# 

上述的例子证明了,挂载后可以执行二进制目录,但是没有证明如果加了参数noexec,就不能执行二进制, 我们来试试

[root@gaosh-1 ~]# df -h  
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        20G  3.8G   15G  21% /
tmpfs           1.8G  228K  1.8G   1% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdb1       4.9G   11M  4.6G   1% /mnt/gexec
[root@gaosh-1 ~]# umount /mnt/gexec/   先卸载掉重新挂载到另外一个目录 nexec
[root@gaosh-1 ~]# 

接下来我们使用不支持可执行权限的挂载方法,noexec,并测试

[root@gaosh-1 ~]# mount -o noexec /dev/sdb1 /mnt/nexec/    #此处使用-o noexec参数

测试:
在这里插入图片描述
可以看到,同样是拷贝过去二进制文件,但是执行的时候却提示权限不够。

2.sync && async 同步写入和异步写入
[root@gaosh-1 ~]# mkdir /mnt/test1
[root@gaosh-1 ~]# mount /dev/sdb1 /mnt/test1/
[root@gaosh-1 ~]# mount
/dev/sdb1 on /mnt/test1 type ext4 (rw)

不加参数,默认是异步写入,可以看到,rw权限

[root@gaosh-1 test1]# time cp -rf /etc/ /mnt/test1    #查看写入时间

real    0m0.112s
user    0m0.000s
sys     0m0.111s

如果加了 -o sync参数我们来看一下:

[root@gaosh-1 ~]# umount /mnt/test1/   #卸载掉test1
[root@gaosh-1 ~]# mkdir /mnt/test2    # 创建test2目录
[root@gaosh-1 ~]# mount -o sync /dev/sdb1 /mnt/test2  使用sync同步写入挂载

/dev/sdb1 on /mnt/test2 type ext4 (rw,sync)   #可以看到rw,后面多了个同步写入

[root@gaosh-1 ~]# time cp -rf /etc/ /mnt/test2  查看写入时间

real    0m5.267s
user    0m0.004s
sys     0m1.322s

可以明显看到同步时间较长一些:因为同步的时候client获取响应需要等待刷盘时间。但并不是所有情况下异步都比同步快。

3.acl的使用

设置自动挂载
vim /etc/fstab
在这里插入图片描述
查看一下,目前没有挂载:
在这里插入图片描述

执行mount -a自动挂载在这里插入图片描述

[root@gaosh-1 ~]# mount

/dev/sdb1 on /mnt/test1 type ext4 (rw,acl)
4. 使用UUID进行挂载

查看uuid

[root@gaosh-1 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="37c948a1-d0b9-49ff-923c-f3eac30eb0f3" TYPE="ext4" 

vim /etc/fstab

在这里插入图片描述
保存退出:然后使用 mount -a

总结

虽然mount的参数比较多,但不是每个参数都需要掌握,学会使用 /etc/fstab, 设置自动挂载。

本文链接:http://www.geekyunwei.com/645.html

网友评论comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部