Linux 文件系统及相关管理工具 详细介绍
文件系统介绍
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
Linux支持的文件系统
Linux支持的文件系统可以在设备上进行查看。如下:
# /lib/modules/`uname–r`/kernel/fs
[root@LeeMumu ~]# uname -r
3.10.0-957.el7.x86_64
[root@LeeMumu ~]# ll /lib/modules/3.10.0-957.el7.x86_64/kernel/fs/
total 20
-rw-r--r--. 1 root root 5980 Nov 8 2018 binfmt_misc.ko.xz
drwxr-xr-x. 2 root root 25 Jun 22 20:10 btrfs
drwxr-xr-x. 2 root root 30 Jun 22 20:10 cachefiles
drwxr-xr-x. 2 root root 24 Jun 22 20:10 ceph
drwxr-xr-x. 2 root root 24 Jun 22 20:10 cifs
... ...
drwxr-xr-x. 2 root root 23 Jun 22 20:10 udf
drwxr-xr-x. 2 root root 23 Jun 22 20:10 xfs
链接文件
链接文件实现访问一个文件的不同路径。
1.硬链接
# 硬链接:指向同一个inode的多个文件路径;
# 特性:
#(1) 目录不支持硬链接;
#(2) 硬链接不能跨文件系统;
#(3) 创建硬链接会增加inode引用计数;
# 创建:
# ln src link_file
2.符号链接
# 符号链接:指向一个文件路径的另一个文件路径;
# 特性:
#(1) 符号链接与文件是两人个各自独立的文件,各有自己的inode;对原文件创建符号链接不会增加引用计数
#(2) 支持对目录创建符号链接,可以跨文件系统
#(3) 删除符号链接文件不影响原文件;但删除原文件,符号指定的路径即不存在,此时会变成无效链接
# 注意:符号链接文件的大小是其指定的文件的路径字符串的字节数
# 创建:
# ln -s src link_file
-v:verbose
文件系统类型
- 1、Linux文件系统
# ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如/boot 分区
# ext3:是ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
# ext4:是ext文件系统的最新版。提供了很多新的特性
# 包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
# xfs:SGI,支持最大8EB的文件系统
- 2、光盘:iso9660
- 3、windows的文件系统:vfat, ntfs
- 4、网络文件系统:nfs, cifs
- 5、集群文件系统:gfs2, ocfs2
- 6、分布式文件系统:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
- 7、RAW:未经处理或者未经格式化产生的文件系统
- 8、用户空间的分布式文件系统:mogilefs, moosefs, glusterfs
- 9、交换文件系统:swap
- 10、Unix的文件系统:UFS, FFS, JFS
- 11、伪文件系统:proc, sysfs, tmpfs, hugepagefs
- 12、内核级分布式文件系统:ceph
文件系统分类
- 1、根据其是否支持"journal"功能
日志型文件系统: ext3, ext4, xfs, ...
非日志型文件系统: ext2, vfat
- 2、文件系统的组成部分
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
- 3、Linux的虚拟文件系统:VFS
- 4、查前支持的文件系统
# cat /proc/filesystems
[root@LeeMumu ~]# cat /proc/filesystems
nodev sysfs
... ...
nodev selinuxfs
xfs
文件系统选择
超级块和INODE TABLE
文件系统其它说明
文件系统中的目录也是文件,是有元数据和数据组成的。
# 元数据:inode, inode table
# 数据:data blocks
# 下级文件或目录的文件名与其inode对应关系
文件系统中修改文件说明
# 删除文件:将此文件指向的所有data block标记为未使用状态;将此文件的inode标记为未使用
# 复制和移动文件
# 复制:新建文件,
# 移动文件:
# 在同一文件系统:改变的仅是其路径;
# 在不同文件系统:复制数据至目标文件,并删除原文件;
# 符号链接:权限(lrwxrwxrwx)
# 硬链接:指向同一个inode
文件系统管理工具
- 创建文件系统的工具
# mkfs
# mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...
- 检测及修复文件系统的工具
# fsck
# fsck.ext2, fsck.ext3, ...
- 查看其属性的工具
# dumpe2fs
# tune2fs
- 调整文件系统特性
创建文件系统的工具
# tune2fs
内核级文件系统的组成部分
- 文件系统驱动:由内核提供
- 文件系统箮理工具:由用户空间的应用程序提供
文件系统的管理工具
创建文件系统命令
常用工具:
# mkfs.ext2
# mkfs.ext3
# mkfs.ext4