开发者学堂课程【Linux 磁盘与文件系统管理:文件系统使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/589/detail/8329
文件系统使用
内容介绍:
一、创建 ext 文件系统
二、文件系统标签
三、Tune2fs
四、超级块和 INODE TABLE
五、文件系统检测和修复
六、挂载 mount
一、创建 ext 文件系统
扩展分区不能直接创建文件系统,扩展分区只是一个容器,用来包含分区;逻辑分区以及主分区才能创建系统。
1.mke2fs:ext 系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096}
Block size 块的大小
Block count 块的容量
Reserved block count 保留的块的数量
保留的块为 Reserved blocks uid 与Reserved blocks gid 使用
块的大小与块的容量相乘为总共硬盘的空间大小。
指定块大小 ——决定文件分配的最小单位,在磁盘上建立一个新文件,即使只有一个字节,系统也会分配至少一个块。
块的大小可以指定:mkfs.ext4 -b 1024(大小)/dev/sdb1
在 windows 中块名叫簇。
-L 'LABEL' 设置卷标(描述信息)
-j 相当于 -text3
推荐使用 mkfs.+对应的文件类型
m
kfs
.
ext3=mkfs-t
ext3=mke2fs-j=mke2fs-t ext3
mke2fs 默认格式化为 ext2,ext2 没有日志功能 -j 为包含日志功能
查看方法:blkid + 文件类型
查看 ext2 没有日志功能:tune2fs - l + 文件类型
Inode count 一个分区最多存放的节点数
df -i 能看到正处于挂载状态的分区
tune2fs -i /dev/sdb1 只是创建了分区还没有挂载,所以看不到,使用 -l 可以看到节点数
Free inodes 空闲的节点数——已使用节点数
Check interval——检查的间隔(当挂载次数达到一定的条件,挂载次数和间隔条件满足后,触发对文件系统的检查,检查文件系统是否有错误)
Mount count——挂载的次数
Maximum mount count——最大挂载次数
文件系统的分组情况: dumpe2fs /dev/sdb1
文件系统的源数据(属性):tune2fs -l /dev/sdb1
-i #为数据空间中每多少个字节创建一个inode;不应该小于block大小
为512字节创建
inode:mkfs.ext4 -i 512 -b 1024 /dev/sdb1
会提示太小,所以改变为1024,
inode:mkfs.ext4 -i 1024 -b 4096 /dev/sdb1
节点数小于块大小——无意义
-N# 指定分区中创建多少个 inode
-I 一个 inode 记录占用的磁盘空间大小,128---4096
查询数量:Inode size 为256
-m # 默认5%,为管理人员预留空间占总空间的百分比 -OFEATUREL...] 启用指定特性:(est2 变为 est3)
(est2变为est3):tune2fs -o has_journal /dev/sdb1
-O^FEATURE 关闭指定特性: tune2fs -o^ has_journal /dev/sdb1
二、文件系统标签
1. 指向设备的另一种方法
2. 与设备无关
3. blkid: 块设备属性信息查看
blkid [OPTION]... [DEVICE]
-U UUID 根据指定的 UUID 来查找对应的设备
-L LABEL 根据指定的 LABEL 来查找对应的设备
以根为参考点查询其设备:
grep -r ‘s#^UUID=(.*) / .*#/1#p’ /etc/fstab
sed -rn ‘s#^UUID=(.*) / .*#/1#p’ /etc/fstab
Blkid -U sed -rn ‘s#^UUID=(.*) / .*#/1#p’ /etc/fstab
4. e2label:管理 ext 系列文件系统的 LABEL
e2label DEVICE [LABEL]
例如:e2label
/dev/sda1/boot
5. findfs: 查找分区
findfs [options]LABEL=
findfs [options] UUID=
三、tune2fs
1. tune2fs:重新设定 ext 系列文件系统可调整参数的值
-I 查看指定文件系统超级块信息; super block
-L'LABEL' 修改卷标
-m # 修预留给管理员的空间百分比
-j 将 ext2 升级为 ext3
-O 文件系统属性启用或禁用, -O^has_journal
-0 调整文件系统的默认挂载选项,-0^acl
例如:tune2fs -o acl /dev/sdb1
在sentos6之前版手动创建的 ext 分区,默认没有 ACL 功能
-U UUID 修改 UUID 号
2. dumpe2fs:
块分组管理,32768块
-h:查看超级块信息,不显示分组信息
在 centos6 之前版手动创建的 ext 分区,默认没有 ACL 功能
四、超级块和 INODE TABLE
以分区2为例,分为启动扇区(Boot Sector 512字节)和存放的文件系统的数据(EXT2 File System);
文件系统数据进行分组(8000多块为一组);以 Block Group1 为例,有一超级块Super Block(存放源数据),GDT 分区表,块位图(Block Bitmap),节点位图(inode Bitmap),节点表(inode Table),数据存放位置(Data Blocks)。
位图:二进制的表格,描述了系统中许多资源的使用情况
五、文件系统检测和修复
1. 常发生于死机或者非正常关机之后
2. 挂载为文件系统标记为“no clean”
3. 注意:一定不要在挂载状态下修复
4. fsck: File System Check
fsck.FS
_
TYPE
fsck-t FS
_
TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同
5. e2fsck: ext 系列文件专用的检测修复工具
-y 自动回答为 yes
-f 强制修复
破坏系统(超级块破坏):
dd if=/dev/zero of=/dev/sdb1 count=1M count=10
修复前确保当前挂载是取消的:umount /mut
修复(自动选择合适的类型):fsck /dev/sdb1
备份超级块所在位置:tune2fs -l /dev/sda1
修复并不确保数据能找回,只是文件系统修复。
六、挂载 mount
1. 挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
2. 卸载:为解除此关联关系的过程
3. 把设备关联挂载点:mount Point
mount
4. 卸载时:可使用设备,也可以使用挂载点
umount
5. 挂载点下原有文件在挂载完成后会被临时隐藏
6. 挂载点目录一般为空
7. 一个设备可以同时挂载多个目录,一个目录不可用挂载多个设备。
mout /dev/sdb2/f2 放在 fdb2 分区内
不可以把 mount sdb2 挂到 mnt 中,会把以前挂的数据消失,看到新的数据,可以取消。所以一个挂载点只能挂一个设备。
一个设备可以同时挂载到多个目录下,一个目录不可以挂载多个目录。
mout /dev/sdb1 /mnt/sdb2
ls /mnt/sdb2 这样会把 f2 隐藏起来