0
点赞
收藏
分享

微信扫一扫

RockyLinux配置AutoFs自动挂载

一、AutoFS简介

Autofs是一个自动挂载文件系统的工具,它可以自动地在需要时挂载文件系统并在不需要时卸载。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

二、实验环境

2.1 实验平台

  • VMware Workstation 17 Pro
  • PNETLab 4.2.10

2.2 实验拓扑

如下图,3台主机接入到同一网络下,均可以互通,且可以访问Internet

RockyLinux配置AutoFs自动挂载_Samba

2.2 资源规划

主机

角色

主机名

IP地址

操作系统

Client

autofs客户端

client

172.16.0.100/24

Rocky Linux 8.9

主机

用户名/密码

共享目录

IP地址

Samba-Server

lisi/redhat

/share/samba

172.16.0.20/24

NFS-Server

N/A

/share/nfs

172.16.0.30/24

前提条件:接下来的实验将直接跳过服务端的配置,可参阅以下内容:

配置Samba文件共享

Linux配置NFS文件共享

三、安装AutoFS

3.1 安装autofs软件包

[root@client ~]# yum -y install autofs
[root@client ~]# rpm -qc autofs	# 查看autofs软件包的配置文件
/etc/auto.master
/etc/auto.misc
/etc/auto.net
/etc/auto.smb
/etc/autofs.conf
/etc/autofs_ldap_auth.conf
/etc/sysconfig/autofs
/usr/lib/systemd/system/autofs.service

3.2 配置文件详解

打开文件 /etc/auto.master ,您将看到类似于以下内容的内容:

root@client ~]# vim /etc/auto.master
/misc   /etc/auto.misc

每一行的第一个参数为挂载目录的“基目录”,第二个参数定义要使用的模板

例如:

/mnt    /etc/mnt.misc   --timeout=5

定义了两个“基目录”,挂载的具体参数分别在/etc/mnt.misc/etc/media.misc模板文件中,可选参数“--timeout”是设置卸载目录的秒数,挂载目录超时未使用将自动取消挂载,将此值设置为 0 将禁用超时,则目录在第一次自动挂载以后一直处于挂载状态,除非手动取消挂载

模板文件参数:

filename        -options        :/device/path

第一参数定义挂载的目录,如果基目录为“/mnt”,则自动挂载后的路径为“/mnt/filename”,第二个参数是挂载的参数选项,第三个参数是挂载源

或者,可以在/etc/auto.master中这样定义“基目录”

/-    /etc/mnt.misc   --timeout=5

则模板文件中可以直接写挂载路径

/mnt/filename        -options        :/device/path

处于生产环境中的Linux服务器,一般会同时管理许多设备的挂载操作。如果把这些设备挂载信息都写入/etc/auto.master文件中,无疑会让主配置文件臃肿不堪,不利于服务执行效率,也不利于日后修改里面的配置内容。建议在/etc/auto.master.d/目录中新建文件,文件名后缀必须是.autofs,模板文件的文件名没有严格要求,但后缀建议以.misc结束。

四、参考实例

3.1 自动挂载USB设备

首先,为Client主机准备一块USB设备,因为是VMware虚拟机环境,先把USB设备插入到宿主机上,然后连接至虚拟机

RockyLinux配置AutoFs自动挂载_自动挂载_02

查看新增的块设备

[root@client ~]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0   50G  0 disk 
├─sda1                8:1    0    1G  0 part /boot
└─sda2                8:2    0   49G  0 part 
  ├─rl-root         253:0    0 45.1G  0 lvm  /
  └─rl-swap         253:1    0  3.9G  0 lvm  [SWAP]
sdb                   8:16   0   10G  0 disk 
└─vgtest-lvtest     253:3    0   10G  0 lvm  
sdc                   8:32   0   10G  0 disk 
└─sdc1                8:33   0    5G  0 part 
  └─vgtest1-lvtest1 253:4    0    3G  0 lvm  
sdd                   8:48   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sde                   8:64   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdf                   8:80   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdg                   8:96   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdh                   8:112  0   10G  0 disk 
sdi                   8:128  0   10G  0 disk 
sdj                   8:144  0   10G  0 disk 
sdk                   8:160  1  7.5G  0 disk 	# /dev/sdk即是刚刚连接的USB设备
└─sdk1                8:161  1  7.4G  0 part 
sr0                  11:0    1 1024M  0 rom 
[root@client ~]# parted /dev/sdk print	# 查看设备信息
Model: Mass Storage Device (scsi)
Disk /dev/sdk: 7990MB	# 容量为8G
Sector size (logical/physical): 512B/512B
Partition Table: msdos	# MBR分区表
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      4194kB  7990MB  7986MB  primary  fat32	# 只有一个分区,FAT32文件系统

查看USB设备的UUID

[root@client ~]# blkid /dev/sdk1
/dev/sdk1: UUID="A013-1EE4" BLOCK_SIZE="512" TYPE="vfat"

配置自动挂载,挂载路径为“/mnt/usb”

oot@client ~]# vim /etc/auto.master.d/usb.autofs	# 编辑主配置文件
/mnt    /etc/auto_usb.misc      --timeout=5
[root@client ~]# vim /etc/auto_usb.misc	# 编辑模板文件
usb     -fstype=auto :UUID="A013-1EE4"
[root@client ~]# systemctl restart autofs.service	# 重启服务
[root@client ~]# systemctl enable autofs.service 	# 设置服务开机自启

自动挂载测试

[root@client ~]# df -Th	# 首先查看挂载情况,USB设备未挂载
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.5G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0
[root@client ~]# cd /mnt/usb	# 直接切换到/mnt/usb目录
[root@client usb]# df -Th ./	# USB设备自动挂载上来了
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdk1      vfat  7.5G  4.5G  3.0G  61% /mnt/usb
[root@client usb]# ls	# 可以看到USB设备里面的文件
'??'  '????'  '????'   Android  'bandzip ????.zip'   cache   DCIM   download   LOST.DIR   MIUI   pictures  'System Volume Information'   tencent   ucdownloads
[root@client usb]# cd	# 返回家目录
[root@client ~]# 
[root@client ~]# df -Th /mnt/usb
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdk1      vfat  7.5G  4.5G  3.0G  61% /mnt/usb
##################
等待5秒超时后
##################
[root@client ~]# df -Th	# 再次查看挂载情况,USB设备已自动取消挂载
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.5G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0
[root@client ~]# df -Th /mnt/usb	# 而df命令后面直接跟/mnt/usb路径也会触发自动挂载
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdk1      vfat  7.5G  4.5G  3.0G  61% /mnt/usb
##################
等待5秒超时后
##################
[root@client ~]# ls /mnt
[root@client ~]# ls /mnt/usb		# 可见,只要系统需要用到/mnt/usb这个目录,就会触发自动挂载
'??'  '????'  '????'   Android  'bandzip ????.zip'   cache   DCIM   download   LOST.DIR   MIUI   pictures  'System Volume Information'   tencent   ucdownloads

3.2 自动挂载CD-ROM设备

Client虚机在系统启动时,已连接光驱,使用系统安装的ISO镜像,相当于已将一张系统安装的光盘放入了光驱设备中

RockyLinux配置AutoFs自动挂载_NFS_03

查看块设备

[root@client ~]# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0   50G  0 disk 
├─sda1                8:1    0    1G  0 part /boot
└─sda2                8:2    0   49G  0 part 
  ├─rl-root         253:0    0 45.1G  0 lvm  /
  └─rl-swap         253:1    0  3.9G  0 lvm  [SWAP]
sdb                   8:16   0   10G  0 disk 
└─vgtest-lvtest     253:3    0   10G  0 lvm  
sdc                   8:32   0   10G  0 disk 
└─sdc1                8:33   0    5G  0 part 
  └─vgtest1-lvtest1 253:4    0    3G  0 lvm  
sdd                   8:48   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sde                   8:64   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdf                   8:80   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdg                   8:96   0   10G  0 disk 
└─vgtest2-lvtest2   253:2    0   35G  0 lvm  /data
sdh                   8:112  0   10G  0 disk 
sdi                   8:128  0   10G  0 disk 
sdj                   8:144  0   10G  0 disk 
sdk                   8:160  1  7.5G  0 disk 
└─sdk1                8:161  1  7.4G  0 part 
sr0                  11:0    1 1024M  0 rom 	# /dev/sr0即是CD-ROM设备
[root@client ~]# ls -l /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Jan  1 14:10 /dev/sr0
[root@client ~]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 Jan  1 14:10 /dev/cdrom -> sr0		# /dev/cdrom是/dev/sr0的软链接

配置自动挂载,挂载路径为"/media",并且希望永久挂载

[root@client ~]# vim /etc/auto.master.d/cdrom.autofs
/-      /etc/auto_cdrom.misc    --timeout=0
[root@client ~]# vim /etc/auto_cdrom.misc
/media  -fstype=iso9660,ro,nosuid,nodev :/dev/sr0
[root@client ~]# systemctl restart autofs

挂载选项

作用

-fstype=iso9660

光盘的文件系统格式为iso9660

ro

只读

nosuid

禁止 suid 操作和设定 sgid 位

nodev

挂载后,不可以打开此目录下的设备文件

自动挂载测试

[root@client ~]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.5G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0
[root@client ~]# cd /media
[root@client media]# ls
BaseOS  EFI  images  isolinux  LICENSE  media.repo  Minimal  TRANS.TBL
[root@client media]# df -Th ./
Filesystem     Type     Size  Used Avail Use% Mounted on
/dev/sr0       iso9660  2.4G  2.4G     0 100% /media

3.3 自动挂载NFS共享目录

首先我们先使用showmount命令来查看NFS服务器的共享目录,需要先安装“nfs-utils”包

[root@client ~]# yum -y install showmount
[root@client ~]# showmount -e 172.16.0.30
Export list for 172.16.0.30:
/share/nfs *			# NFS服务端的共享目录为/share/nfs

配置自动挂载,挂载路径为“/mnt/nfsfile”,超时时间为30秒

[root@client ~]# vim /etc/auto.master.d/nfs.autofs
/mnt    /etc/auto_nfs.misc      --timeout=30
[root@client ~]# vim /etc/auto_nfs.misc
nfsfile -rw     172.16.0.30:/share/nfs
[root@client ~]# systemctl restart autofs

自动挂载测试

[root@client ~]# cd /mnt/
[root@client mnt]# ls
[root@client mnt]# cd /mnt/nfsfile
[root@client nfsfile]# ls
README
[root@client nfsfile]# cat README 
This is a shared folder for nfs
[root@client nfsfile]# df -Th ./
Filesystem             Type  Size  Used Avail Use% Mounted on
172.16.0.30:/share/nfs nfs4   37G  2.2G   35G   6% /mnt/nfsfile
################
等待30秒超时后
################
[root@client ~]# df -Th			# /mnt/nfsfile已自动取消挂载
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.6G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0

3.4 自动挂载Samba共享目录

首先我们先使用smbclient命令来查看samba服务器的共享目录,需要先安装“samba-client”包

[root@client ~]# yum -y install samba-client
[root@client ~]# smbclient -L //172.16.0.20 -U lisi --password=redhat

        Sharename       Type      Comment
        ---------       ----      -------
        samba_share     Disk      share for lisi	# 查看到“samba_share”这个目录
        IPC$            IPC       IPC Service (Samba 4.18.6)
SMB1 disabled -- no workgroup available

为了支持cifs协议挂载,还需要安装cifs-utils包

[root@client ~]# yum -y install cifs-utils

配置自动挂载,挂载路径为“/samba”,超时时间为10秒

[root@client ~]# vim /etc/auto.master.d/samba.autofs
 /-    /etc/auto_samba.misc    --timeout=10
 [root@client ~] vim /etc/auto_samba.misc
/samba   -fstype:cifs,username=lisi,password=redhat      ://172.16.0.20/samba_share
[root@client ~]# systemctl restart autofs.service

自动挂载测试

[root@client ~]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.6G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0
[root@client ~]# cd /samba
[root@client samba]# df -Th ./
Filesystem                Type  Size  Used Avail Use% Mounted on
//172.16.0.20/samba_share cifs   37G  2.3G   35G   7% /samba
[root@client samba]# cd
[root@client ~]# 
################
等待10秒超时后
################
[root@client ~]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G   18M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl-root         xfs        46G  5.6G   40G  13% /
/dev/mapper/vgtest2-lvtest2 xfs        35G  283M   35G   1% /data
/dev/sda1                   xfs      1014M  246M  769M  25% /boot
tmpfs                       tmpfs     388M   28K  388M   1% /run/user/1000
tmpfs                       tmpfs     388M     0  388M   0% /run/user/0

参阅

Autofs - ArchWiki

第12章 AutoFs自动挂载服务 | 《Linux就该这么学》

文件系统的 nodev 挂载选项有什么用? – 肥叉烧 feichashao.com


举报

相关推荐

0 条评论