[华为云在线课程][Linux磁盘存储和文件系统][第二章文件系统][学习笔记]
文件系统概念
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体来说,它负责为用户建立文件,存入,读出,修改,转储文件,控制文件的权限,安全控制,日志,压缩,加密等
支持的文件系统
/lib/modules/`uname -r`/kernel/fs
各种文件系统:https://en.wikipedia.org/wiki/Comparison_of_file_systems
帮助:man 5 fs
文件系统类型
Linux常用文件系统
- ext2:Extended file System适用于那些分区容量不是太大,更新也不频繁的情况,例如/boot分区
- ext3:是ext2的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复
- ext4:是ext文件系统的最新版,提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
- xfs:SGI,支持最大8EB的文件系统
- swap
- iso9660光盘
- btrfs(Oracle)
- reiserfs
Windows常用文件系统
- FAT32
- NTFS
- exFAT
Unix:
- FFS(fast)
- UFS(unix)
- IFS2
网络文件系统:
- NFS
- CIFS
集群文件系统:
- GFS2
- OCFS2(Oracle)
分布式文件系统:
- fastdfs
- ceph
- moosefs
- mogilefs
- glusterfs
- Lustre
RAW:
- 裸文件系统,未经处理或者未经格式化产生的文件系统
常用的文件系统特性:
FAT32:
- 最多只能支持16TB的文件系统和4GB的文件
NFTS:
- 最多只能支持16EB的文件系统和16EB的文件
EXT3:
- 最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件
- Ext3目前只支持32000个子目录
- Ext3文件系统使用32位空间记录块数量和inode数量
- 当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块
EXT4:
- EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本
- EXT4的文件系统容量达到1EB,而支持单个文件则达到16TB
- 理论上支持无限数量的子目录
- EXT4文件系统使用64位空间记录块数量和inode数量
- EXT4的多块分配器支持一次调用分配多个数据块
- 修复速度更快
XFS:
- 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
- 用优化算法,日志记录对整体文件操作影响非常小
- 是是一个全64位的文件系统,最大可以支持8EB的文件系统,而支持单个文件则达到8EB
- 能以接近裸设备I/O的性能存储数据
查看支持的文件系统:
cat /proc/filesystems
文件系统的组成部分
- 内核中的模块:EXT4,XFS,VFAT
- Linux的虚拟文件系统:VFS
- 用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
文件系统选择管理
创建文件系统
- mkfs命令:
- mkfs.FS_TYPE /dev/DEVICE
ext4
xfs
btrfs
vfat - mkfs.t FS_TYPE /dev/DEVICE
-L ‘LABEL’ 设定卷标
- mkfs.FS_TYPE /dev/DEVICE
- mke2fs:ext系列文件系统专用管理工具
常用选项:
-t {ext2|ext3|ext4|xfs} 指定文件系统类型
-b {1024|2048|4096} 指定块block大小
-L 'LABEL' 设置卷标
-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i # 为数据空间中每多少个字节创建一个inode,不应该小于block大小
-N # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128-4096
-m # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[...] 启用指定特性
-O ^FEATURE 关闭指定特性
查看和管理分区信息
blkid 可以查看块设备属性信息
格式:
blkid [OPTION]... [DEVICE]
常用选项:
-U UUID 根据指定的UUID来查找对应的设备
-L LABEL 根据指定的LABEL来查找对象对应的设备
e2label:管理ext系列文件系统的LABEL
e2label DEVICE [LABEL]
findfs:查找分区
findfs [options] LABEL=<label>
findfs [options] UUID=<uuid>
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL' 修改卷标
-m # 修改预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用,-O ^has_journal
-o 调整文件系统的默认挂载选项,-o ^acl
-U UUID 修改UUID号
dumppe2fs:显示ext文件系统信息,将磁盘块分组管理
-h 查看超级块信息,不显示分组信息
例如:dumpe2fs /dev/sda1
块组描述符表(GDT)
EXT文件系统每一个块组信息使用32字节描述,这32个字节称为块组描述符,所有块组的块组描述符组成块组描述符表GDT(Group Descriptor Table)。虽然每个块组都需要块组描述符来记录块组的信息和属性元数据,但是不是每个块组中都存放了块组描述符。将所有块组的块组信息组成一个GDT保存,并将该GDT存放于某些块组中,类似存放superblock和备份superblock的块
文件系统检测和修复
文件系统夹故障常发生于死机或非正常关机之后,挂载为文件系统标记为"no clean"
注意:一定不要在挂载状态下执行下面命令修复
fsck:File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
注意:FS_TYPE 一定要与分区上的文件类型相同
常用选项:
-a 自动修复
-r 交互式修复错误
e2fsck:ext系列文件专用的检测修复工具
常用选项:
-y 自动回答为yes
-f 强制修复
-p 自动进行安全的修复文件系统问题
xfs_repair:xfs文件系统专用检测修复工具
常用选项:
-f 修复文件,和设备
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复/时使用,然后立即reboot
例子:修改破坏的ext文件系统
mount /dev/sdb2 /mnt
cp /etc/fstab /mnt/f1
cp /etc/fstab /mnt/f2
ls /mnt
dd if=/dev/zero of=/dev/sdb2 bs=1M count=1
ls /mnt
tune2fs -l /dev/sdb2
df
umount /mnt
e2fsck /dev/sdb2
e2fsck /dev/sdb2 -y
mount /dev/sdb2 /mnt
ls /mnt
cat /mnt/f1
- 点赞
- 收藏
- 关注作者
评论(0)