mount:
注意:在linux系统上,所有的文件系统必须通过根文件系统的某个分支来访问
根文件系统:根关联到的分区有一定的要求;fhs
其余所有的其他文件系统如果想要被访问,都只能通过“关联”至根文件系统上的某个目录来实现:
挂载:mount
卸载:umount
挂在点:mount_point,即用作为另一个系统访问入口的目录;
mount [option]... [-t fstype] [-o option] device mount_point
命令选项:
只读挂载:-r
读写挂载:-w read and write
被挂载的设备上的文件系统类型: -t ,可省略,此时mount会自动使用blkid命令来判断之;
以卷标的方式制定要挂载的设备:-L label,因此,此时device可省
以uuid的方式挂载设备,一次device可省
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="838ed07a-7ad5-4af9-b120-8c62336c3a5d" TYPE="ext4"
[root@localhost ~]#
mount -u 838ed07a-7ad5-4af9-b120-8c62336c3a5d /tmp/xxx
-a: 自动挂载所有的支持自动挂载的设备(/etc/fstab文件中定义的支持自动挂载的设备);
-n:默认情况下,设备挂载与否的改变结果会被保存于/etc/mtab中一份;-n选项用于变动时不更新此文件
示例:# mount -U dea669ee-e769-46d9-86a8-88925a10278b /data/mydata:默认情况下,设备挂载与否的改变会被保存于/etc/mtab中的一份,如果不想更新此文件,可使用-n选项,用于变动时不更新此文件
cat /etc/mtab
追踪当前系统下所有挂载的文件
mount命令:
mount device
mount_point
挂载选项:-o option
async:异步写入,能获取最好性能的写入,缺点:可能丢失数据
sync : 同步写入,即使用同步i/o,可靠性高,速度有所慢
atime/noatime:文件或目录在被访问时是否更新其访问时间戳:(对于访问非常频繁i/o来讲,此项须关闭能够减少i/o,提快访问速度)
diratime/nodiratime:目录在文件中是否更新其访问时间戳
auto/noauto:此设备是否支持mount -a选项自动挂载
dev/nodev:此设备上是否创建设备文件:
exec/noexec:是否允许执行此文件系统上的程序文件
suid/nosuid:是否支持此设备上的文件使用suid权限;
remount:重新挂载
acl:支持使用lacl
#mount -o remount,acl /dev/sdb1
#tune2fs -o acl /dev/nodev
打开acl为默认挂载选项
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此文件系统
所有挂载选项均未指明时,其默认为"
defaults,
use default option:rw,suid,dev,exec,auto,nouser,async,and relatime,
另外一个使用技巧:
将某目录绑定至指定目录下,作为临时访问入口:
mount --bind 源文件 目标目录
例:将/usr/local 挂载/mnt/下
[root@localhost tmp]# mount --bind /usr/local/ /tmp/
[root@localhost tmp]# ls /usr/local/
bin etc games include lib lib64 libexec sbin share src
[root@localhost tmp]# ls tmp
bin etc games include lib lib64 libexec sbin share src
[root@localhost /]# umount /usr/local/
[root@localhost /]# ls /tmp/
1mark orbit-gdm vmware-config0 vmware-root-2117547395
ks-script-UQ0B_e pulse-VA9IVBowRMXL VMwareDnD vmware-root-2117940668
ks-script-UQ0B_e.log pulse-YW29q1RHDFtl vmware-mark yum.log
mark.txt virtual-mark.E7iX8u vmware-root
[root@localhost /]# ls /usr/local/
bin etc games include lib lib64 libexec sbin share src
[root@localhost /]#
查看所有已经挂载设备的方法:
#mount
#cat /etc/mtab
#cat /proc/mounts
注意:正在被某进程访问的设备是不可以被卸载的,查看被什么进程占用
lsof mount_point
fuser -v mount_point
fuser -k 终止正在访问挂载点进程
示例:
[root@localhost local]# umount /dev/sdb2
umount: /tmp: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@localhost local]#lsof /dev/sdb2
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2545 root cwd DIR 8,18 4096 2 /tmp
[root@localhost local]# fuser -v /dev/sdb2
[root@localhost local]# fuser -v /tmp/
USER PID ACCESS COMMAND
/tmp/: root 2545 ..c.. bash
[root@localhost local]# fuser -km /tmp/ (终端将会被直接踢出)
/tmp/: 2545c
[root@localhost local]# umount /dev/sdb2
[root@localhost local]#
remount 和ACL的使用示例:
[root@localhost /]# cd /tmp/1mark/
[root@localhost /]# mount /dev/sdb2 /tmp/1mark
[root@localhost 1mark]# ls
lost+found
[root@localhost 1mark]# mkdir test1
[root@localhost 1mark]# setfacl -m u:mark:rw /tmp/1mark/test1/
setfacl: /tmp/1mark/test1/: Operation not supported
[root@localhost 1mark]#mount -o remount,acl /dev/sdb2
[root@localhost 1mark]#setfacl -m u:mark:rw /tmp/1mark/test1/
[root@localhost 1mark]# mount
/dev/sdb2 on /tmp/1mark type ext4 (rw,acl)
[root@localhost 1mark]# getfacl test1/
# file: test1/
# owner: root
# group: root
user::rwx
user:mark:rw-
group::r-x
mask::rwx
other::r-x
[root@localhost 1mark]# setfacl -x u:mark /tmp/1mark/test1/ 取消
[root@localhost 1mark]# setfacl -x u:mark: /tmp/1mark/test1/
[root@localhost 1mark]# getfacl test1/
# file: test1/
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x
[root@localhost 1mark]#