linux磁盘及文件系统之五挂载

若想访问根文件系统之外的文件系统,必将将其关联到某个目录上来实现,此操作即为挂载(mount),此目录即为挂载点(mount point),挂载点就是访问另一个文件系统的入口。

显示系统当前已挂载的所有设备:

  1. 直接使用mount命令
  2. 直接查看/etc/mtab的内容,所有的挂载和卸载操作都会实时同步更新到/etc/mtab文件。
  3. 查看伪文件系统cat /proc/mounts

挂载点的特点:

  1. 未使用且不会被其他进程使用的目录
  2. 挂载点下原有的文件将会被隐藏

mount命令

mount [-fnrsvw] [-t vfstype] [-o options] [device] dir

选项作用
-r, --read-onlyreadonly,只读挂载,比如光驱
-w, --rw, --read-writeread and write , 读写挂载,默认的挂载方式
-n, --no-mtab挂载的时候,禁止同步更新到/etc/mtab文件
-t VFS_TYPE指明挂载设备的文件类型,多数情况的可以省略,mount会根据blkid命令自动判断挂载设备的文件系统类型
-L LABEL挂载时,以卷标的方式指定设备
-U UUID挂载时,以uud的方式来指定设备

-o option,option,option...

选项作用
sync/async同步/异步执行对挂载设备的操作
atime/noatime文件/目录在被访问时,是否会自动更新访问时间戳
diratim/nodiratime目录被访问时,是否更新访问时间戳
remount重新挂载,包含了卸载,再挂载两个动作
acl支持访问控制列表
ro只读
rw读写
auto/noauto是否允许自动挂载
user/nouser是否允许普通用户挂载此设备
suid/nosuid是否允许suid/sgid权限
dev/nodev是否允许创建设备文件
exec/noexec是否允许此设备上的文件运行
defaults默认配置:rw, suid, dev, exec, auto, nouser, and async.

挂载本地回环文件

回环设备( loopback device)允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普通文件。
比如光盘镜像文件也可以看做是一个回环设备,如果想将其作为光盘挂载,可以使用-o loop参数。

$ mkdir loop
$ sudo mount -o loop /vagrant_data/deepin-20-beta-amd64.iso loop
$ mount | grep "loop"
/vagrant_data/deepin-20-beta-amd64.iso on /tmp/loop type iso9660 (ro,relatime)
$ cd loop
$ ll
total 61
drwxr-xr-x. 1 root root  2048 4月  15 09:18 boot
drwxr-xr-x. 1 root root  2048 4月  15 09:10 dists
drwxr-xr-x. 1 root root  2048 4月  15 09:18 EFI
drwxr-xr-x. 1 root root  4096 4月  15 09:18 isolinux
drwxr-xr-x. 1 root root  2048 4月  15 09:18 live
-rw-r--r--. 1 root root 39421 4月  15 09:18 md5sum.txt
drwxr-xr-x. 1 root root  2048 4月  15 09:18 oem
drwxr-xr-x. 1 root root  2048 4月  15 09:10 pool
drwxr-xr-x. 1 root root  2048 4月  15 09:18 preseed
-rw-r--r--. 1 root root  3795 4月  15 09:18 README.diskdefines

目录绑定

可以使用mount来实现将一个目录绑定到另一个目录上,做为临时访问入口mount --bind <source dir> <target dir>

$ mkdir /tmp/opt
$ sudo mount --bind /opt /tmp/opt

umount命令

卸载已经挂载的设备,umount {device,dir},正在被进程访问的设备挂载点无法卸载。

查看文件正在被哪些进程所占用:

lsof MOUNT_POINT
fuser -v MOUNT_POINT

终止所有正在访问某挂载点的进程:

fuser -km MOUNT_POINT

开机自动挂载

/etc/fstab用于保存开机自动挂载设备的配置。若要某个设备在开机的时候就自动挂载,在这个文件中配置就可以。

$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Jun  1 17:13:31 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=8ac075e3-1124-4bb6-bef7-a6811bf8b870 /                       xfs     defaults        0 0
/swapfile none swap defaults 0 0

以我centos7根文件系统的自动挂载为例,看下/etc/fstab的结构。

UUID=8ac075e3-1124-4bb6-bef7-a6811bf8b870 / xfs defaults 0 0

UUID=8ac075e3-1124-4bb6-bef7-a6811bf8b870要挂载的设备文件,有三种方式:
1. 使用/dev/sdb5,直接指定设备文件
2. 使用LABEL=LABEL_NAME指定挂载的设备
3. 使用UUID=UUID_CONTENT指定挂载的设备
/挂载点,swap类型的文件系统挂载点为none
xfs文件系统类型
defaults挂载选项,defaults表示默认,这里的内容和mount -o配置的内容相同,可以通过逗号分割,配置更多。
0转储频率
0从不备份
1每天备份
2每隔一天备份
0自检次序
0从不自检
1 首先自检,一般是跟文件系统
2 次级自检
3…

mount -a 可自动挂载定义在/etc/fstab中所有支持自动挂载的设备。

df/du

df命令

Linux df命令用于显示已挂载文件系统的使用情况。格式:df [选项]... [DEVICE|FILE]...,若为非磁盘设备文件,则列出文件所在文件系统的情况,否则列出指定文件系统的情况。

参数作用
-h, --human-readable使用人类可读的格式
-H很像 -h, 但是用 1000 为单位而不是用 1024
-k以 KB 为单位输出文件系统分区使用情况
-m以 MB 为单位输出文件系统分区使用情况
-a列出所有的文件系统分区,包含大小为 0 的文件系统分区。
-i, --inodes列出inode的使用情况
-t, --type=TYPE列出类型为TYPE的文件系统
-T, --print-type列出文件系统的类型
-x, --exclude-type=TYPE不要列出类型为TYPE的文件系统

查看各个挂载点,inode的使用情况

在这里插入图片描述

查看各个挂载点的文件系统类型
在这里插入图片描述

查看某个目录所在分区的磁盘使用情况

$ df -h /etc/profile
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G   14G   27G  35% /

du 命令

通常使用ls去查看一个目录的时候,会发现它的大小显示的都是几十或者十几kb,而不是目录下所有文件的实际大小的和,因为ls显示的只是目录列表在文件系统中所占块的大小,而没有将目录下的所有文件大小加起来。

du命令可以显示目录/文件所占用磁盘实际空间大小。从下面的示例可以看出区别。

$ ls -ldh /etc
drwxr-xr-x. 83 root root 8.0K 6月  19 02:01 /etc
$ sudo du -sh /etc
36M	/etc

命令格式du [option] 文件/目录

参数作用
-h, --human-readable以容易理解的格式(给人看的格式)输出文件系统分区使用情况
-H很像 -h, 但是用 1000 为单位而不是用 1024
-D显示指定符号连接的源文件大小。
-s仅显示总计大小
-S显示目录的大小时,并不含其子目录的大小。
-m以 MB 为单位输出文件系统分区使用情况
–exclude=<目录或文件>略过指定的目录或文件
–max-depth=<目录层数>超过指定层数的目录后,予以忽略。

-h 以容易理解的格式(给人看的格式)输出文件系统分区使用情况,例如 10kB、10MB、10GB 等。
显示文件或整个目录的大小,默认单位为 kB。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值