mount和自动挂载
Mount挂载详解
常见操作: vfat文件系统类型
挂载U盘:
#mount -t vfat /dev/sdb4 /USB
-t:指定要访问的类型
挂载移动硬盘:
#mount -t ntfs-3g /dev/sdb1 /USB
挂载镜像文件:
#mount -t iso9660 rhel6u4.iso /cd-rom -o loop # loop选项用来挂载镜像文件,如果只挂载光盘不用loop
iso:虚拟光盘文件,刻光盘时候用
挂载光盘:
#mount -t iso9660 /dev/cdrom /cd-rom
强烈建议:一个设备不要被挂载多次!!zi!
eject 弹出光盘 eject -t自动弹回去
挂载共享目录
========================================================
挂载选项 -t 文件系统类型 -o 选项1,选项2...
示例: 选项
mount -t ext4 -o acl /dev/sdb1 /mnt/disk1
文件系统类型:ext4,nfs,cifs
例1:exec/noexec
[root@localhost ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@localhost ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
[root@localhost ~]# cp -rf /bin/date /mnt/lv01
[root@localhost ~]# cp -rf /bin/date /mnt/lv02
[root@localhost ~]# /mnt/lv01/date
Fri Jan 10 10:40:21 CST 2014
[root@localhost ~]# /mnt/lv02/date
-bash: /mnt/lv02/date: Permission denied
[root@localhost ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,noexec)
没有指定任何选项,则为默认选项 man mount
defaults 默认选项
Use default options: rw, suid, dev, exec, auto,
nouser, async, and relatime.
常见的挂载选项
rw 读写
ro 只读
suid 支持suid
nosuid 不支持suid
dev 支持设备文件
nodev 不支持设备文件
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto mount -a 开机自动挂载
noauto mount -a 开机不自动挂载
async 异步写入 #很重要,每一个默认都是异步
sync 同步同入
noatime 不更新访问时间atime
usrquota 支持用户级磁盘配额功能
grpquota 支持组级磁盘配额功能
acl 支持acl功能
remount 在线重新挂载
========================================================
扩展知识:Relatime 驱动器访问优化
POSIX 标准要求操作系统维护记录每个文件最后一次被访问的文件系统元数据。这个时间戳被称为atime,
维护它需要一个重复的对存储的写入操作。这些写入操作让存储是设备及其连接保持忙碌和通电状态。因
为很少应用程序会使用 atim e 数据,所以这个存储设备活动是在浪费电力。特别是即使没有从存储中读取
该文件也会发生写入存储的事件,但是从缓冲中写入。有时,Linux 内核还支持 mount 的 noatime选项,并
不在使用此选项挂载的文件系统中写入 atime。但是只是关闭这个特性是有问题的,因为有些应用程序会依
赖 atime 数据,并在此数据不可用时失败。
红帽企业版 Linux 6 使用的内核之后此另一个可替换选项 -relatime。Relatime 维护 atime数据,但不是
每次访问该文件时都更改。启用这个选项,则只在上次更新 atime(mtime)后修改该文件时,或者最后一次
访问该文件是在相当长一段时间前(默认为一天)时才会将 atime 数据写入磁盘。
默认情况下,所有现在挂载的文件系统都启用 relatime。要在整个系统中限制这个特性,请使用 boot 参
数 default_relatime=0。如果默认在某个系统中启用 relatime,您可以通过使用选项 norelatime
挂载某个系统来限制它在某个具体文件系统中的使用。最后,要使系统更新文件的 atime 数据的默认周期
有所不同,请使用 relatime_interval= 引导参数,以秒为单位指定周期。默认值为 86400。
========================================================
例2:async,sync
[root@localhost ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@localhost ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
[root@localhost ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
[root@localhost ~]# time cp -rf /etc /mnt/lv01
[root@localhost ~]# time cp -rf /etc /mnt/lv02
例3:acl
[root@localhost ~]# vim /etc/fstab
/dev/mapper/vg01-lv01 /mnt/lv01 ext4 defaults,acl 0 0
[root@localhost ~]# mount -o remount /mnt/lv01
[root@localhost ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw,acl)
挂载时可以使用(针对基本分区)
设备名 /dev/sda3
卷标 LABEL yang
UUID UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"
UDEV 可以给设备建立一个别名
例4:使用卷标挂载
[root@localhost ~]# tune2fs -L yang /dev/sda3 //设置卷标LABEL
tune2fs 1.39 (29-May-2006)
[root@localhost ~]# vim /etc/fstab
LABEL=yang /mnt/disk1 ext4 defaults 0 0
例5:使用UUID挂载
[root@localhost ~]# blkid /dev/sda5
/dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3"
[root@localhost ~]# vim /etc/fstab
UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" /mnt/disk1 ext4 defaults 0 0
扩展: dd </dev/cdrom > /dev/sdb/ ;eject
挂载ISO文件
1. 将光盘制作成iso
[root@localhost ~]# dd if=/dev/cdrom of=/rhel6.iso直接把物理光盘做成ISO#将光盘设备里面的文件一点点刻成rhel6.iso这个东西,直到刻完为止;就得到一个iso文件
[root@localhost ~]# dd </dev/cdrom >/rhel6.iso
2. 将文件制作成iso,例如将/etc制作成etc.iso
[root@localhost ~]# genisoimage -o /tmp/etc.iso -r /etc genisoimage可以做镜像文件-o指定输出文件叫什么名字
[root@localhost ~]# file /tmp/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '
3. 使用iso,挂载
[root@localhost ~]# mount -t iso9660 -o loop /tmp/etc.iso /mnt/iso/
Autofs也叫Automount,也叫触发挂载
Mount是临时的,想永久的只有改fstab,但是fstab又太直接了;有些设备不希望临时挂载;又不希望永久挂载;希望对于共享目录,用时挂载,不用自动卸载,不可能把一个共享目录也自动挂载上,用不用都挂着,没必要;而Autofs是由需求产生的,挂载是由访问产生的,卸载是由超时产生的;换句话讲,如果我们不访问,它是不挂载的;如果我们长期不访问,过不了多长时间,例如5分钟还是10分钟;时间是可以设置的;如果我们不访问,它就自动卸载掉了;这就是Autofs的机制;
Autofs有两个配置文件,一个是主配置文件,一个是子配置文件;里面记录的是不同的内容;主配置文件记录的叫监控目录,也叫触发目录;所有的挂载都在你访问的时候触发产生的;主配置文件里面所描述的是监控目录在哪?Autofs里面记录了监控目录,好处是用户不管访问哪个目录,只要不访问监控目录;就和Autofs没有关系;在子配置文件里面记录了每一个触发目录如果一旦被访问,执行什么挂载操作,具体的操作在子配置文件里;这是Autofs的两个配置文件;
例题:
一台server做共享,另外一台做Autofs访问共享agent
[root@server ~]# mkdir /tmp/share #创建共享目录
[root@server ~]# yum -y install nfs*
[root@server ~]# vi /etc/exports #是用来共享的 ;这是nfs网络配置系统文件; 如果没有共享就是空的
/tmp/share *(rw,sync) #/tmp/share 是要共享的目录;*代表的是所有主机都可以访问,如果要一台主机访问,就写IP地址;sync指的是要同步共享
[root@server ~]# service nfs start #启动服务,一般第一次都起不来,因为它依赖rpcbind服务 改完都重启
如果起不来,就[root@server ~]# service rphbind start #这是远程过程调用;把它起来,在重启nfs
[root@server ~]# chkconfig nfs on #将其设置为开机自动启动
[root@server ~]# cd /tmp/share/
[root@server share]# touch a{1..5} #在共享目录下创建测试文件
[root@server share]# ls
a a1 a2 a3 a4 a5
[root@agent ~]# yum -y install nfs* #agent不需要启nfs服务
[root@agent ~]# mkdir /abc #创建挂载点
[root@agent ~]# mount -t nfs 192.168.145.128:/tmp/share /abc #先用mount测试一下能不能挂载
[root@agent mount]# yum install nfs-utils* -y #如果手工挂载不上,解决方法:
[root@agent ~]# cd /abc/ #进到挂载点,看看有没有挂载好的东西
[root@agent abc]# ls
a a1 a2 a3 a4 a5
[root@agent abc]# umount /abc/
接下来讲:automount按需挂载
[root@agent ~]# mkdir /cdrom
[root@agent ~]# cd /cdrom/
[root@agent cdrom]# touch cdrom.file{1..5}
[root@agent cdrom]# ls
cdrom.file1 cdrom.file2 cdrom.file3 cdrom.file4 cdrom.file5
[root@agent cdrom]# genisoimage -o /iso.file.iso -r . #做成一个镜像
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using CDROM000.FIL;1 for /cdrom.file4 (cdrom.file3)
Using CDROM001.FIL;1 for /cdrom.file3 (cdrom.file1)
Using CDROM002.FIL;1 for /cdrom.file1 (cdrom.file5)
Using CDROM003.FIL;1 for /cdrom.file5 (cdrom.file2)
Total translation table size: 0
Total rockridge attributes bytes: 584
Total directory bytes: 894
Path table size(bytes): 10
Max brk space used 0
175 extents written (0 MB)
[root@agent cdrom]# ls
cdrom.file1 cdrom.file2 cdrom.file3 cdrom.file4 cdrom.file5
[root@agent cdrom]# ls /iso.file.iso
[root@agent cdrom]# yum -y install autofs* #安装automount包
监控目录是需要自己创建的
[root@agent ~]# mkdir /mount
[root@agent ~]# vim /etc/auto.master #打开主配置文件
6 /mount /etc/auto.misc #/etc/auto.misc里面对应的是子配置文件;子配置文件里面记录的是当访问触发目录执行什么挂载操作;给我们一个模板,可配置文件模板,后面就是写的auto.misc
[root@agent ~]# vim /etc/auto.misc #打开子配置文件
6 #cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
16 share -ro 192.168.145.128:/tmp/share
17 cdrom -fstype=iso9660.ro.loop :/iso.file.iso
[root@agent ~]# service autofs restart
[root@agent ~]# cd /mount/ #进入到监控目录
[root@agent mount]# ls #虽说什么都没有
[root@agent mount]# cd share #但是可以进去
[root@agent share]# ls
a a1 a2 a3 a4 a5
[root@agent share]# cd .. #当你退出来的时候
[root@agent mount]# ls #就发现有这个目录
Share #过几分钟不访问,超时就会消失
[root@agent mount]# grep '^TIMEOUT' /etc/sysconfig/autofs
TIMEOUT=300 #默认为5分钟;超时时间,300秒后不访问数据,自动卸载