autofs 服务与 mount/umount 命令不同之处在于它是一种守护进程,只有检测到用户试图访问一个尚未挂载的文件系统时才自动的检测并挂载该文件系统,换句话说,将挂载信息填入/etc/fstab 文件后系统将在每次开机时都自动将其挂载,而运行 autofs 后则是当用户需要使用该文件系统了才会动态的挂载,节约网络与系统资源,当文件系统在一段时间内没有活动后,Autofs 将自动取消挂载该文件系统。
对于本地固定设备,如硬盘可以使用 mount 挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动挂载的麻烦。要实现光驱,软盘等的动态自动挂载,需要进行相关的配置。
请求访问 autofs 挂载点处的文件系统时,首先 autofs 会拦截请求,然后 autofs 会将消息发送给守护进程 automountd ,以便挂载请求的文件系统,然后 automountd 会去主配置文件中查看映射文件名,最后再通过映射文件的配置创建触发节点并进行挂载。
主配置文件:/etc/auto.master (修改格式为:挂载目录 映射配置文件)
挂载本地文件系统:
1 新建一个ext4格式文件系统
[root@server0 ~]# mkfs.ext4 /dev/vdb2
[root@server0 ~]# blkid /dev/vdb2
/dev/vdb2: UUID="e2eef721-8c3e-49f8-ac96-4fed2d7fca20" TYPE="ext4"
2 创建一个挂载目录:/fauto
[root@server0 ~]# mkdir /fauto
3 安装 autofs 服务
[root@server0 ~]# yum -y install autofs
4 修改 autofs 主配置文件:
[root@server0 ~]# vim /etc/auto.master
/fauto /etc/auto.vdb2
#挂载目录 #映射配置文件
5 创建并修改映射配置文件目录
[root@server0 ~]# vim /etc/auto.vdb2
vdb2 -fstype=ext4 :/dev/vdb2
#关键字(挂载点) #挂载选项 #设备
6 重启服务,设置开机自动启动.
[root@server0 ~]# systemctl restart autofs
[root@server0 ~]# systemctl enable autofs
7 测试:
#挂载还没有成功
[root@server0 vdb2]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.3G 6.8G 33% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
[root@server0 ~]# cd /fauto #切换到挂载目录
[root@server0 fauto]# ls -a #查看内容为空
. ..
[root@server0 fauto]# cd vdb2 #继续切换到挂载点
[root@server0 fauto]# ls -a #vdb2 出现了
. .. vdb2
#此时能检测到已经挂载成功了
[root@server0 vdb2]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 10G 3.3G 6.8G 33% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
/dev/vdb2 1.9G 5.9M 1.8G 1% /fauto/vdb2