1.挂载是什么,都有哪些挂载方式?
挂载(mount)是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
一般来说,当计算机关机时,每个已挂载存储都将经历一次卸载,以确保所有排队的数据被写入,并保证介质上文件系统结构的完整性。
挂载的方式有三种:
开机挂载------通过编辑/etc/fstab配置文件实现;
Mount挂载------手动挂载,也称临时挂载,通过命令mount+设备名+挂载点目录实现;
Autofs自动挂载------执行触发条件进行挂载,不需要的时候会自动取消挂载。
2.了解Autofs:
mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动挂载的麻烦。要实现光驱,软盘等的动态自动挂载,需要进行相关的配置。
Autofs的特点:
Autofs与Mount/Umount的不同之处在于,它是一种看守程序。如果它检测到用户正试图访问一个尚未挂接的文件系统,它就会自动检测该文件系统,如果存在,那么Autofs会自动将其挂接。另一方面,如果它检测到某个已挂接的文件系统在一段时间内没有被使用,那么Autofs会自动将其卸载。因此一旦运行了Autofs后,用户就不再需要手动完成文件系统的挂接和卸载。
3.Autofs的常用配置:
Autofs需要从/etc/auto.master文件中读取配置信息。该文件中可以同时指定多个挂接点,由Autofs来挂接文件系统。文件中的每个挂接点单独用一行来定义,每一行可包括3个部分,分别用于指定挂接点位置,挂接时需使用的配置文件及所挂接文件系统在空闲多长时间后自动被卸载。例如在文件中包括了如下一行:
/auto /etc/auto.misc --timeout 60
其中第一部分指定一个安装点为/auto,第二部分指定该挂接点的配置文件为/etc/auto.misc,
第三部分指定所挂接的文件系统在空闲60秒后自动被卸载。
挂载时需要的配置文件/etc/auto.misc的示例如下:
cd -fstype=iSO9660,ro :/dev/cdrom
fd -fstype=msdos :/dev/fd0
文件每一行都说明某一个文件系统如何被挂接。
其中第一行指定将/dev/cdrom挂接在/auto/cd中,第二行指定将/dev/fd0挂接在/auto/fd中。
每一行的第二个值-fstype是一个可选项,用来表明所挂接的文件系统的类型和挂接选项,在mount命令中能使用的挂接选项同样适用于-fstype。
修改了配置文件后,可通过执行命令“/etc/init.d/autofs restart”,使新的配置生效,也可以重启服务让配置文件生效。
4.Linux操作系统下的挂载案例解析:
案例一:安装自动挂载软件包
#挂载光盘镜像文件
[root@localhost ~]# mount /dev/sr0 /mnt
#安装Autofs对应的软件包
[root@localhost ~]# yum install autofs -y
#通过vim编辑器打开主配置文件进行了解
[root@localhost ~]# vim /etc/auto.master
/misc /etc/auto.misc
/misc(挂载点的主目录,当前系统可以没有这个目录,启动Autofs即会自动创建这个目录)
/etc/auto.misc(定义挂载点主目录对应的配置文件,定义辅助配置文件的路径及文件名)
#通过vim编辑器打开挂载点对应的配置文件进行了解
[root@localhost ~]# vim /etc/auto.misc
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
cd(触发条件 ,执行自动挂载之后也是挂载点目录)
-fstype=iso9660(挂载设备的类型),ro(挂载之后的权限),nosuid(不支持特殊权限),nodev(不解析文件系统上的块特殊设备) :/dev/cdrom(挂载的设备名)
#配置完成之后重启服务
[root@localhost ~]# systemctl restart autofs
#测试
#重启服务完成之后,会自动的创建一个挂载点主目录
[root@localhost ~]# ls /
auto boot etc lib media mnt nishome proc run srv tmp var
bin dev home lib64 misc net opt root sbin sys usr
#进入挂载点主目录通过触发触发条件进行挂载
[root@localhost ~]# cd /misc/
#这里我是通过cd命令来触发cd这个条件的,也可通过ls cd等进行触发
[root@localhost misc]# cd cd
#挂载完成之后可以查看挂载点下的内容,这里是光盘镜像挂载之后的内容
[root@localhost cd]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta
案例二:nfs的自动挂载目录
#服务端配置nfs服务,共享目录为nfsdir
[root@localhost ~]# mkdir /nfsdir
[root@localhost ~]# vim /etc/exports
/nfsdir *(rw)
[root@localhost ~]# systemctl restart nfs
#客户端配置
[root@localhost ~]# vim /etc/auto.master
/auto /etc/auto.nfs
[root@localhost ~]# vim /etc/auto.nfs
nfs -fstype=nfs 192.168.10.206:/nfsdir
[root@localhost ~]# systemctl restart autofs
#客户端进行测试
[root@localhost ~]# cd /auto/
[root@localhost auto]# ls nfs
[root@localhost auto]# cd nfs
[root@localhost nfs]# ls
a b c
[root@localhost nfs]# touch 6
[root@localhost nfs]# ls
6 a b c