Linux科技我用 LinuxLinux

Mount

2017-06-18  本文已影响71人  Miracle001

Mmount

挂载:
将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
卸载:
为解除此关联关系的过程;
设备关联挂载点(mount Point)———mount;
卸载时,可使用设备,也可以使用挂载点——umount;
挂载点下原有文件在挂载完成后会被临时隐藏;
挂载点目录一般为空;
Paste_Image.png
/app可以挂载到sda3上,无意义,不会循环;
多个设备不能同时挂载到同一个目录上;
即使挂载,生效的是最后一个;前一个被覆盖;
Paste_Image.png
取消挂载,前一个挂载设备就会出现;
Paste_Image.png
一个设备可以同时挂载到多个目录上
centos6.9可以,centos7.3不可以;
不是硬链接和软连接;不同的挂载点对应同一个设备;
Paste_Image.png
查看是否挂载
df和mount都可以查看是否挂载; 
mount的挂载信息来源于/etc/mtab;通过查看/etc/mtab文件显示当前已挂载的所有设备;
mount是临时挂载;
挂载和取消的时候,/etc/mtab文件会自动更新(比较特殊);
一般,/etc下的文件,都是静态的,不会自动更新;
Paste_Image.png

用mount命令挂载文件系统

挂载方法:
mount DEVICE MOUNT_POINT
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5;
(2) 卷标:-L 'LABEL';
(3) UUID, -U 'UUID';
(4) 伪文件系统名称:proc(内存), sysfs(系统状态), devtmpfs(设备相关), configfs(配置相关),
它们不是真正的硬盘磁盘;
mount -L 'label'  dir    把label对应的设备挂载到某目录下
Paste_Image.png
mount -U 'UUID'  dir    把UUID对应的设备挂载到某目录下
Paste_Image.png
dir(目录):挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载;
Paste_Image.png

mount常用命令选项

mount -t FS_TYPE /dev/DEVICE MOUNT_POINT:指定要挂载的设备上的文件系统类型;
可以降级使用和升级使用;
mount -r  /dev/DEVICE MOUNT_POINT  只读挂载;ro(只读)
Paste_Image.png
mount -w  /dev/DEVICE MOUNT_POINT  读写挂载;rw(读写)
mount 可以查看挂载信息
Paste_Image.png
mount -n /dev/DEVICE MOUNT_POINT  不更新/etc/mtab,mount看不见挂载信息,被隐藏了
Paste_Image.png
cat /proc/mounts   显示挂载信息(包括隐藏信息);查看内核追踪到的已挂载的所有设备
Paste_Image.png

把文件夹挂载到文件夹里

mount -B DIR MOUNT_POINT   绑定目录到另一个目录上,(实现文件夹挂载到文件夹)
df 只显示设备,不显示文件夹;
实现了两个文件夹同步;
Paste_Image.png Paste_Image.png

实验:实现ftp共享与http共享;

ftp共享的文件夹    /var/ftp/pub   针对文件夹共享访问
httpd共享的文件夹  /var/www/html  针对网站共享访问
二者关联起来后,在其中一个文件夹里创建和删除文件都是同步的;
1.安装httpd;
Paste_Image.png
2.挂载(关联两个文件夹);
Paste_Image.png
3.更改配置;
Paste_Image.png Paste_Image.png
4.访问(http://192.168.128.129)
Paste_Image.png
mount -a
自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
mount -o [options] /dev/DEVICE MOUNT_POINT
[options]:挂载文件系统的选项,多个选项使用逗号分隔;
async  异步模式(性能好)
sync   同步模式,内存更改时,同时写磁盘(更安全,性能差)
atime/noatime  包含目录和文件(读时间)
企业网站的atime一直更新(无意义),会降低性能;最好禁用"访问时间(读时间)的更新",优化性能;
diratime/nodiratime  目录的访问时间戳(读时间)
Paste_Image.png Paste_Image.png
exec/noexec  是否支持在文件系统上运行应用程序
remount      重新挂载(不用取消挂载、不用离开目录,可以直接挂载——方便)
Paste_Image.png Paste_Image.png Paste_Image.png
ro  只读
只读文件系统——对root生效(但是root可以设置为无效);
r和w权限——对root无效;
rw  读写
Paste_Image.png
acl  启用此文件系统上的acl功能
centos6.9  默认设备挂载的目录无acl权限,可以自己设置;
centos7.3  默认设备挂载的目录有acl权限;
Paste_Image.png
suid/nosuid  不支持suid和sgid权限
nosuid       包括suid和sgid权限
suid     使权限提升,继承可执行二进制程序属主权限;
sticky位  使权限降低,只有所有者和root可以删除文件;
Paste_Image.png Paste_Image.png Paste_Image.png Paste_Image.png
dev/nodev  是否支持在此文件系统上使用设备文件;
默认挂载情况下,允许设备文件被使用;
nodev  不能再当做分区使用,即不能挂载或修改文件,使设备文件失效;
Paste_Image.png Paste_Image.png Paste_Image.png
loop  使用loop设备
可以把文件夹挂载到文件夹上;
传输“挂载文件夹”到别的用户,当U盘用;

实验:传送创建的设备文件

1.在/app下创建一个文件系统;
Paste_Image.png
2.文件夹A挂载到文件夹B;
Paste_Image.png
3.把文件夹A传输到某IP用户;
Paste_Image.png

loop设备简介

使用loop设备,可以自动关联挂载点;
Paste_Image.png
可以查看loop设备关联信息;
losetup -a   centos6.9
losetup  centos7.3
Paste_Image.png
centos6.9中的loop设备有限(0-7)
centos7.3中的loop设备自动生成
Paste_Image.png
Paste_Image.png
设置loop设备个数(适用于centos6.9)
vim /boot/grub/grub.conf
Paste_Image.png Paste_Image.png
因为是内核操作,所以重启之后才会生效;
Paste_Image.png
使用loop设备挂载
losetup /dev/loop# dir
mount  /dev/loop# mount_Point
Paste_Image.png
1.loop设备好处
确定分区和文件系统之后,空间用完了,想重新创建个文件系统,
不能用已经确定的分区和文件系统(会破坏数据),此时可以利用loop设备,不需要创建新的分区;

2.确定分区后,再想调整大小,很困难;所以分区前,一定要估计好‘业务量’;

3.逻辑卷可以解决分区调整问题;
mount -o 如果不加[options],就是默认选项;
defaults  相当于rw, nosuid, dev, exec, auto, nouser, async

思考

给vim文件设置suid权限,拷贝到U盘里,插到别的机器上,
挂载到某个目录里,是否可以继承所有者(root)权限,编辑文件;
下面两个命令,请查询《mount配置这一文章》
auto/noauto  
是否支持自动挂载,是否支持-a选项
user/nouser
是否允许普通用户挂载此设备,/etc/fstab使用,默认普通用户不能挂载设备,必须设置

卸载命令

findmnt MOUNT_POINT|device   查看挂载情况
Paste_Image.png
利用上面的命令可以查看文件系统是否已经挂载;

脚本:
#!/bin/bash
findmnt $1 &> /dev/null || mount $1 /mnt/
Paste_Image.png
操作无错误的情况下,不能取消挂载,说明有人正在访问这个目录;

查看正在访问指定文件系统的进程(谁在用此服务)
lsof  MOUNT_POINT
fuser -v MOUNT_POINT
Paste_Image.png
终止所有正在访问指定的文件系统的进程(杀进程),命令历史会丢失;
fuser -km MOUNT_POINT   
终止某个正在访问指定的文件系统的进程;
kill PID(进程编号)       
终止进程后,要取消挂载,才可以重新挂载;
卸载
umount DEVICE
umount MOUNT_POINT
上一篇 下一篇

猜你喜欢

热点阅读