linux 文件系统管理三部曲之三:挂载文件系统
上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统。
使用文件系统
只要把文件系统“挂载”到某个目录上,就可以通过这个目录访问文件系统了。
这个目录就叫做:挂载点(mount_point):用于作为另一个文件系统的访问入口。
挂载点的目录要满足的条件:
1,事先存在
2,为被使用过的,并且不会被其他进程使用
3,挂载点下,原有的文件,挂载后会被隐藏
这个“挂”上去的动作,就是
mount命令。把挂载点,摘下来的动作,就是
umount命令。
umount命令用法:
umount device|dir
注意:如果某个用户的某个进程在使用这个挂载点,则无法umout,直到使用这个挂载点的进程退出。
比如,某个用户,cd进入到了挂载点,这时系统管理员执行umount命令,则显示如下:
# umount /mnt
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
1,查看哪个用户的哪个进程在使用挂载点
lsof mount_point]# lsof /mnt
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 5482 root cwd DIR 8,17 1024 2 /mnt
fuser -v mount_point# fuser -v /mnt
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 5482 ..c.. bash
2,杀死使用挂载点的所以进程:fuser -km mount_point
# fuser -km /mnt/
/mnt: 5482c
mount命令用法
直接执行mount命令,显示出当前系统的挂载情况。注意,在centOS7下,显示的内容比较多,里面比CentOS6多了cgroup的挂载信息。
1,基本用法
语法:
mount [-fnrsvw][-t vfstype] [-o options] device dir# mount /dev/sdb1 /mnt
以只读方式挂载:
-r以可读写方式挂载:
-w挂载时不更新/etc/mtab文件:
-n/etc/mtab文件里,保存了当前的挂载情况,每挂载一个文件系统,就在此文件追加一行,卸载文件系统后,就删除追加的行。当/etc目录下的文件不可以写入时,可以使用此选项。但,在CentOS7上即使指定了-n,也更新了/etc/mtab文件。
指定要挂载设备的文件系统类型:
-t一般可以省略,mount目录会自动根据blkid命令的结果,找到要挂载设备的文件系统类型。
不指定设备文件,而是通过指定卷标,来挂载:
-L# e2label /dev/sdb1 m1
# blkid /dev/sdb1
/dev/sdb1: LABEL="m1" UUID="4752177b-e026-483d-b166-19229b64e4c3" TYPE="ext2"
# mount -L m1 /mnt
不指定设备文件,而是通过指定UUID,来挂载:
-U# mount -U 4752177b-e026-483d-b166-19229b64e4c3 /mnt
2,挂载选项(-o options):下面是-o后面的选项的具体值。
sync/async:当写入到磁盘时,是马上就写到磁盘上,还是先不急,等会一起写入到磁盘的选项。
sync:马上写入到磁盘
async:稍等一会再写入磁盘。所以,async的性能好!
atime/noatime:文件或目录在被访问后,是否更新其访问时间戳
diratime/nodiratime:目录在被访问后,是否更新其访问时间戳
remount:当想增加挂载选项时,但又不想卸载文件系统。使用此选项自动重新挂载文件系统,并让新的挂载选项生效。
比如,挂载的时候,指定的是只读选项,但想改成可读写,就可以用下面的用法,/mnt/t1是挂载点。
mount -o remount rw /mnt/t1
acl:使facl功能有效,也就是setfacl功能生效。
ro:只读
rw:读写
dev/nodev:此文件系统上是否允许识别(interpret )设备文件。即使是nodev,也可以使用mknod命令创建设备文件。
exec/noexec:是否允许在此文件系统上运行程序
suid/nosuid:是否允许程序文件上的suid和sgid特殊权限生效。
relatime/norelatime:是否允许根据modify time或change time去更新 access time。
defaults:当不只读options时,实际是:rw, suid, dev, exec, auto, nouser, and async被启用了。
3,绑定目录到挂载点。
mount命令不仅可以挂载设备文件到挂载点,还可以挂载别的目录到挂载点。使用--bind
# mount --bind /etc /mnt
4,查看挂载了哪些设备
mountcat /etc/mtabcat /proc/mounts
5,挂载光盘
一般光盘的设备文件是/dev/cdrom或/dev/dvd
# mount -r /dev/cdrom /mnt
6,挂载u盘
和挂载分区没什么区别,只是需要先找到u盘对应的设备文件,可以通过文件的大小去判断哪个设备文件是u盘。
7,挂载本地回环文件(ios文件,img文件等)
# mount -o loop /tmp/ttylinux.so /mnt
启用swap分区
启用:
swapon [option] device-a:定义在/etc/fstab文件中的所有设备
# fdisk -l /dev/sdb6
Disk /dev/sdb6: 26 MB, 26214400 bytes, 51200 sectors
# mkswap /dev/sdb6
mkswap: /dev/sdb6: warning: wiping old swap signature.
Setting up swapspace version 1, size = 25596 KiB
no label, UUID=a4dc9e83-5e28-49e1-9aa0-6e7059fcb227
# free -m
total used free shared buff/cache available
Mem: 3789 631 2547 21 610 2872
Swap: 3967 0 3967
# swapon /dev/sdb6
# free -m
total used free shared buff/cache available
Mem: 3789 631 2547 21 610 2872
Swap: 3992 0 3992
# swapoff /dev/sdb6
# free -m
total used free shared buff/cache available
Mem: 3789 631 2546 21 610 2871
Swap: 3967 0 3967
禁用:
swapoff [option] device-a:定义在/etc/fstab文件中的所有设备
根下哪些目录是和根目录在同一个分区,哪些目录可以是在独立的分区呢?
一般usr,var,home目录可以不和根目录在同一个分区,其他的大部分必须和根目录在同一个分区。
那么问题来了,既然usr等目录不是和根目录在同一个分区,那么它们是怎么在系统开机后自动挂载上去呢?
在/etc/fstab文件里定义的设备文件,开机后会自动挂载。
解读/etc/fstab文件中各个列的含义
第一列:设备文件,或UUID,或LABLE
第二列:挂载点
swap类型的文件系统的挂载点不是目录,直接是【swap】
第三列:文件系统类型
第四列:挂载选项
如果有多个挂载选项,用逗号分隔。例如:defaults,acl,noexec
第五列:备份频率
0:从不备份
1:每天备份
2:隔天备份
第六列:自检次序
0:不自检
1:第一个自检。通常只能是根文件系统可以使用1.
2:第二个自检。可以把根文件系统以外的文件系统设置成2.
...
# cat /etc/fstab #
# /etc/fstab
# Created by anaconda on Fri Nov 29 16:44:28 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
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=3d3b316a-529e-484a-9895-e785fdde5365 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
mount -a目录会自动把/etc/fstab文件里定义的设备,全部挂载
下面的一行,是自己追加的。
/dev/sdb5 /mnt/t2 ext3 defaults,acl 0 0
显示文件系统的空间使用状况:df
显示所有文件系统的空间使用状况:
df# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 38815216 18982084 19833132 49% /
devtmpfs 1923436 0 1923436 0% /dev
tmpfs 1940308 9712 1930596 1% /run
tmpfs 1940308 0 1940308 0% /sys/fs/cgroup
/dev/mapper/centos-home 18950144 1842644 17107500 10% /home
tmpfs 388064 4 388060 1% /run/user/42
tmpfs 388064 32 388032 1% /run/user/1000
/dev/sda1 1038336 182380 855956 18% /boot
/dev/sdb5 45478 827 42091 2% /mnt/t2
显示所有文件系统的空间使用状况:
df -l# df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root 38815216 18982116 19833100 49% /
devtmpfs 1923436 0 1923436 0% /dev
tmpfs 1940308 9712 1930596 1% /run
tmpfs 1940308 0 1940308 0% /sys/fs/cgroup
/dev/mapper/centos-home 18950144 1842644 17107500 10% /home
tmpfs 388064 4 388060 1% /run/user/42
tmpfs 388064 32 388032 1% /run/user/1000
/dev/sda1 1038336 182380 855956 18% /boot
/dev/sdb5 45478 827 42091 2% /mnt/t2
显示文件系统的空间使用状况(适合阅读):
df -h# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 38G 19G 19G 49% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 9.5M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-home 19G 1.8G 17G 10% /home
tmpfs 379M 4.0K 379M 1% /run/user/42
tmpfs 379M 32K 379M 1% /run/user/1000
/dev/sda1 1014M 179M 836M 18% /boot
/dev/sdb5 45M 827K 42M 2% /mnt/t2
显示所有文件系统的inode的使用状况:
df -i# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root 19417088 416785 19000303 3% /
devtmpfs 480859 403 480456 1% /dev
tmpfs 485077 751 484326 1% /run
tmpfs 485077 16 485061 1% /sys/fs/cgroup
/dev/mapper/centos-home 9480192 912 9479280 1% /home
tmpfs 485077 6 485071 1% /run/user/42
tmpfs 485077 19 485058 1% /run/user/1000
/dev/sda1 524288 341 523947 1% /boot
/dev/sdb5 12824 11 12813 1% /mnt/t2
显示目录下所有文件所占用的空间:du
显示目录下每个文件所占用的空间:
du# du /home/ys/bin/
56 /home/ys/bin/
52 /home/ys/sbin/
显示目录下所有文件所占用的空间:
du -s-h:人类可读。
# du -s /etc/
42732 /etc/
# du -sh /etc/
42M /etc/
复制,剪切,删除文件操作,对文件系统的影响
- 复制:等于新建文件
- 删除:把block标记为未使用,把inode标记为未使用,把inode和block位图标记为未使用。所以速度很快。
- 剪切:
如果在同一个文件系统的话,仅改变路径,inode不变。
如果不在同一个文件系统的话,先复制数据到目标文件系统,并删除原来文件。
练习:
1,创建一个20G的文件系统,块大小为2048,卷标为TEST,要求此分区开机后自动挂载到/testing目录,且启用acl功能
创建20G分区(fdisk)
创建文件系统:
mke2fs -t ext4 -b 2048 -L 'TEST' /dev/sd7编辑/etc/fstab文件
LABEL=‘TEST’ /testing ext4 defaults, acl 0 0
# c/c++ 学习互助QQ群:877684253

# 本人微信:xiaoshitou5854
linux 文件系统管理三部曲之三:挂载文件系统的更多相关文章
- linux 文件系统管理三部曲之二:创建文件系统
创建文件系统的含义:就是格式化一个硬盘分区,不同的格式化方式,就是创建了不同的文件系统. 格式化: 低级格式化:划分分区前执行,主要是划分硬盘的磁道等. 高级格式化:划分分区后执行,创建文件系统 创建 ...
- Linux文件系统管理 开机自动挂载及fstab文件修复
概述 开机自动挂载及fstab文件修复 开机自动挂载 实现开机后自动挂载,就需要修改系统的自动挂载文件 /etc/fstab.因为系统就是依赖这个文件决定启动时加载的文件系统的.通过vi 打开/etc ...
- linux 文件系统管理三部曲之一:磁盘分区
硬盘和主板的连接的地方:叫接口,硬盘的接口类型: iops:i/o per second:每秒的读写次数. IDE(ata):并口(数据并行传输),理论最大传输 133MB/S:iops:100次 S ...
- Linux文件系统管理命令(第二版)
Linux文件系统管理命令 常用命令 1.df命令 查看分区使用情况 常用选项 -h 比较人性化 -m 以兆字节显示分区使用情况 显示信息: Mounted on:挂载点 Filesystem:对应的 ...
- Linux 文件系统管理
Linux 文件系统管理 课程大纲 文件系统构成及命令 硬盘分区及管理 磁盘配额 备份与恢复 文件系统构成 /usr/bin ./bin:存放所有用户可以执行的命令 /usr/s ...
- Linux文件系统管理 常见命令df、du、fsck、dumpe2fs
概述 Linux文件系统管理 常见命令df.du.fsck.dumpe2fs. 文件系统查看命令:df 通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名.文件系统总大小.已经使用的大小. ...
- Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令
通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...
- Linux文件系统管理 文件系统
概述 文件系统:文件系统这个名词大家都很陌生,不过如果说成分区,大家就比较容易理解了.原先每个分区只能格式化为一个文件系统,所以我们可以认为文件系统就是指分区.不过随着技术的进步,现在一个文件系统可以 ...
- Linux文件系统管理
第九讲 文件系统管理 基础知识点: 硬盘的构成:主要由盘片.机械手臂.磁头与主轴马达所组成,实际的数据都是写在具有磁性物质上的盘片,通过主轴马达让盘片转动,机械手臂可伸展让磁头在盘片上读取数据 ...
随机推荐
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- 罗德里格斯旋转公式(Rodrigues' rotation formula)推导
本文综合了几个相关的维基百科,加了点自己的理解,从比较基础的向量投影和叉积讲起,推导出罗德里格斯旋转公式.公式比较繁杂,如有错误,欢迎评论区指出. 对于向量的三维旋转问题,给定旋转轴和旋转角度,用罗德 ...
- Jmeter之存储测试结果
前言 Jmeter做接口测试时,发送请求后,我们可以通过察看结果树看到结果,但是如果想要把测试结果保存起来,那该怎么做呢? 一:添加一个登录的http请求,填入正确的ip,接口地址,以及参数 二:右键 ...
- Flutter报错 Waiting for another flutter command to release the startup lock...
Waiting for another flutter command to release the startup lock… 异常解决 平时我们在开发flutter过程中,在执行flutter p ...
- 国内jenkins搭建不再龟速的方式
最新国内jenkisn搭建过程 第一步下载jenkins 点击进入清华源jenkins下载地址,我们下载的是jenkins-2.204.2.zip版本 之后解压后安装. 第二步配置管理员密码 自动弹出 ...
- 用命令提示符运行简单的Java程序报错
首先用记事本写一个最简单的Java代码,我把文件保存在桌面的HelloWorld文件夹中,这里将记事本的名称改为HelloWorld.java public class HelloWorld{ pub ...
- 使用A线程打印1-52,B线程打印A-Z,要求按照12A34B56C....5152Z的顺序进行交替打印
多线程同步问题,都需要用到监视器,用来监视资源是否可用.C++中使用condition_variable,Java中使用Condition来实现同步. 1. 实现思路 需要有一个全局变量控制当前该哪个 ...
- 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)
微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...
- bootstrap组件---进度条
<div class="progress"> <div class="progress-bar progress-bar-success" r ...
- Github搜索技巧
按仓库名称.说明或自述文件内容搜索 通过 in 限定符,您可以将搜索限制为仓库名称.仓库说明.自述文件内容或这些的任意组合. 如果省略此限定符,则只搜索仓库名称和说明. 限定符 示例 in:name ...