mount -o loop
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mount -o loop相关的知识,希望对你有一定的参考价值。
我在ROOT目录用BXIMAGE建了个虚拟软盘(a.img),用mount -o loop a.img /mnt/floppy挂载时,系统提示需指明文件类型,但我加上-t命令也没用。
应该怎么解决?
在网上搜了下,也没找到好的答案
a.img必须时路径,不要用文件名称。
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
[[email protected] ~]# mount /dev/vg01/lv01 /mnt/lv01
[[email protected] ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
[[email protected] ~]# cp -rf /bin/date /mnt/lv01
[[email protected] ~]# cp -rf /bin/date /mnt/lv02
[[email protected] ~]# /mnt/lv01/date
Fri Jan 10 10:40:21 CST 2014
[[email protected] ~]# /mnt/lv02/date
-bash: /mnt/lv02/date: Permission denied
[[email protected] ~]# 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
[[email protected] ~]# mount /dev/vg01/lv01 /mnt/lv01
[[email protected] ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
[[email protected] ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
[[email protected] ~]# time cp -rf /etc /mnt/lv01
[[email protected] ~]# time cp -rf /etc /mnt/lv02
例3:acl
[[email protected] ~]# vim /etc/fstab
/dev/mapper/vg01-lv01 /mnt/lv01 ext4 defaults,acl 0 0
[[email protected] ~]# mount -o remount /mnt/lv01
[[email protected] ~]# 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:使用卷标挂载
[[email protected] ~]# tune2fs -L yang /dev/sda3 //设置卷标LABEL
tune2fs 1.39 (29-May-2006)
[[email protected] ~]# vim /etc/fstab
LABEL=yang /mnt/disk1 ext4 defaults 0 0
例5:使用UUID挂载
[[email protected] ~]# blkid /dev/sda5
/dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3"
[[email protected] ~]# vim /etc/fstab
UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" /mnt/disk1 ext4 defaults 0 0
扩展: dd </dev/cdrom > /dev/sdb/ ;eject
挂载ISO文件
1. 将光盘制作成iso
[[email protected] ~]# dd if=/dev/cdrom of=/rhel6.iso直接把物理光盘做成ISO#将光盘设备里面的文件一点点刻成rhel6.iso这个东西,直到刻完为止;就得到一个iso文件
[[email protected] ~]# dd </dev/cdrom >/rhel6.iso
2. 将文件制作成iso,例如将/etc制作成etc.iso
[[email protected] ~]# genisoimage -o /tmp/etc.iso -r /etc genisoimage可以做镜像文件-o指定输出文件叫什么名字
[[email protected] ~]# file /tmp/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data ‘CDROM ‘
3. 使用iso,挂载
[[email protected] ~]# 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
[[email protected] ~]# mkdir /tmp/share #创建共享目录
[[email protected] ~]# yum -y install nfs*
[[email protected] ~]# vi /etc/exports #是用来共享的 ;这是nfs网络配置系统文件; 如果没有共享就是空的
/tmp/share *(rw,sync) #/tmp/share 是要共享的目录;*代表的是所有主机都可以访问,如果要一台主机访问,就写IP地址;sync指的是要同步共享
[[email protected] ~]# service nfs start #启动服务,一般第一次都起不来,因为它依赖rpcbind服务 改完都重启
如果起不来,就[[email protected] ~]# service rphbind start #这是远程过程调用;把它起来,在重启nfs
[[email protected] ~]# chkconfig nfs on #将其设置为开机自动启动
[[email protected] ~]# cd /tmp/share/
[[email protected] share]# touch a{1..5} #在共享目录下创建测试文件
[[email protected] share]# ls
a a1 a2 a3 a4 a5
[[email protected] ~]# yum -y install nfs* #agent不需要启nfs服务
[[email protected] ~]# mkdir /abc #创建挂载点
[[email protected] ~]# mount -t nfs 192.168.145.128:/tmp/share /abc #先用mount测试一下能不能挂载
[[email protected] mount]# yum install nfs-utils* -y #如果手工挂载不上,解决方法:
[[email protected] ~]# cd /abc/ #进到挂载点,看看有没有挂载好的东西
[[email protected] abc]# ls
a a1 a2 a3 a4 a5
[[email protected] abc]# umount /abc/
接下来讲:automount按需挂载
[[email protected] ~]# mkdir /cdrom
[[email protected] ~]# cd /cdrom/
[[email protected] cdrom]# touch cdrom.file{1..5}
[[email protected] cdrom]# ls
cdrom.file1 cdrom.file2 cdrom.file3 cdrom.file4 cdrom.file5
[[email protected] 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)
[[email protected] cdrom]# ls
cdrom.file1 cdrom.file2 cdrom.file3 cdrom.file4 cdrom.file5
[[email protected] cdrom]# ls /iso.file.iso
[[email protected] cdrom]# yum -y install autofs* #安装automount包
监控目录是需要自己创建的
[[email protected] ~]# mkdir /mount
[[email protected] ~]# vim /etc/auto.master #打开主配置文件
6 /mount /etc/auto.misc #/etc/auto.misc里面对应的是子配置文件;子配置文件里面记录的是当访问触发目录执行什么挂载操作;给我们一个模板,可配置文件模板,后面就是写的auto.misc
[[email protected] ~]# 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
[[email protected] ~]# service autofs restart
[[email protected] ~]# cd /mount/ #进入到监控目录
[[email protected] mount]# ls #虽说什么都没有
[[email protected] mount]# cd share #但是可以进去
[[email protected] share]# ls
a a1 a2 a3 a4 a5
[[email protected] share]# cd .. #当你退出来的时候
[[email protected] mount]# ls #就发现有这个目录
Share #过几分钟不访问,超时就会消失
[[email protected] mount]# grep ‘^TIMEOUT‘ /etc/sysconfig/autofs
TIMEOUT=300 #默认为5分钟;超时时间,300秒后不访问数据,自动卸载
以上是关于mount -o loop的主要内容,如果未能解决你的问题,请参考以下文章
Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only