目录
一、挂载
1.mount
2.umount
3.挂载交换分区
4.文件系统挂载的配置文件:/etc/fstab
二、文件系统空间占用等信息的查看工具
三、查看某目录总体空间占用状态
四、文件系统上的其它概念
1.Inode:Index Node, 索引节点
2.链接文件
3.文件管理操作对文件的影响
五、挂载光盘设备
六、dd命令
七、两个特殊设备
练习
回顾
参考资料
将额外文件系统与根文件系统某现存的目录建立关联,进而使得此目录做为其它文件访问入口的行为称之为挂载
解除此关联关系的过程称之为卸载
挂载点:Mount Point
把设备关联之挂载点使用命令mount
卸载时:可使用设备,也可以使用挂载点
注意:挂载点下原有文件在挂载完成后会被临时隐藏
mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前系统已挂载的所有设备
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备
① 设备文件:例如/dev/sda5
② 卷标:-L 'LABEL', 例如 -L 'MYDATA'
③UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
④伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在,且最好使用空目录
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型
-r:readonly,只读挂载
-L 'LABEL':以卷标指定挂载设备
-w:read and write, 读写挂载
-n:不更新/etc/mtab
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-U 'UUID':以UUID指定要挂载的设备
-B, --bind:绑定目录到另一个目录上
-o options:(挂载文件系统的选项)
async:异步模式
sync:同步模式(数据安全性高,但性能差)
atime/noatime:包含目录和文件 的访问时间戳
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件
suid/nosuid:
ro:
rw:
remount:重新挂载
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
scl:访问控制列表,centos6 默认不启用,centos7默认启用
P.S. 上述选项可多个同时使用,彼此使用逗号分隔
默认挂载选项:defaults
rw, suid, dev, exec, auto, nouser, and async
写时复制( copy-on-write ) 子进程 父进程
立即回存到磁盘 同步 ^…异步
卸载命令:
# umount DEVICE
# umount MOUNT_POINT
fuser
命令:fuser -v MOUNT_POINT 查看正在访问指定文件系统的进程
命令:fuser -km MOUNT_POINT 终止所有在正访问指定的文件系统的进程
启用:swapon
swapon [OPTION]... [DEVICE]
-a:激活所有的交换分区
-p PRIORITY:指定优先级
禁用:swapoff [OPTION]... [DEVICE]
命令:free [OPTION] 内存空间使用状态
-m:以MB为单位
-g:以GB为单位
问题:Buffer与Cache
Buffer核心作用:缓冲,缓和对系统冲击
Cache核心作用:加快取用的速度
手动挂载(使用mount)的文件系统,系统重启后失效
/etc/fstab每行定义一个要挂载的文件系统
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
要挂载的设备或伪文件系统:
设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs)
挂载选项:
defaults
转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs才用1
...
P.S. 额外指定的文件系统通常不自检和转储
用mount -a 激活配置
df:
-h:human-readable
-i:inodes instead of blocks
-P:以Posix兼容的格式输出;
du:
du [OPTION]... DIR
-h:human-readable
-s:summary
命令总结:mount, umount, free, df, du, swapon, swapoff, fuser
地址指针:
直接指针:
间接指针:
三级指针:
inode bitmap:对位标识每个inode空闲与否的状态信息;
硬链接:
不能够对目录进行
不能跨分区进行
指向同一个inode的多个不同路径;创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数
符号链接:
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
命令: ln [-sv] SRC DEST
-s:symbolic link 符号链接
-v:verbose
文件删除:iNode 引用计数减值0
文件复制:创建空文件,读取旧文件,放入新文件
文件移动:同一分区移动,相当于改路径;跨分区则相当于复制
光盘设备文件:
IDE:/dev/hdc
SATA:/dev/sr0
符号链接文件:
/dev/cdrom
/dev/cdrw
/dev/dvd
/dev/dvdrw
命令:
mount -r /dev/cdrom /media/cdrom
umount /dev/cdrom
dd命令:convert and copy a file
实现文件底层复制
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#:复制多少个bs
磁盘拷贝:
dd if=/dev/sda of=/dev/sdb
备份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=256 count=1
/dev/null:数据黑洞
/dev/zero:吐零机
①创建一个20G的文件系统,块大小为2048,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/testing目录,且默认有acl挂载选项;
(1) 创建20G分区
(2) 格式化:
mke2fs -t ext4 -b 2048 -L 'TEST' /dev/DEVICE
(3) 编辑/etc/fstab文件
LABEL='TEST' /testing ext4 defaults,acl 0 0
②创建一个5G的文件系统,卷标HUGE,要求此分区开机自动挂载至/mogdata目录,文件系统类型为ext3
③写一个脚本,完成如下功能:
(1) 列出当前系统识别到的所有磁盘设备
(2) 如磁盘数量为1,则显示其空间使用信息
否则,则显示最后一个磁盘上的空间使用信息
if [ $disks -eq 1 ]; then
fdisk -l /dev/[hs]da
else
fdisk -l $(fdisk -l /dev/[sh]d[a-z] | grep -o "^Disk /dev/[sh]d[a-]" | tail -1 | cut -d' ' -f2)
fi
mount/umount, fstab配置文件、ext文件系统基础原理
/etc/fstab
ext:super block, GDT, inode table, block bitmap, inode bitmap
dumpe2fs -h, tune2fs -l
软链接:l,
dd:复制
马哥随堂笔记
注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。