摘要:文件系统是操作系统中负责管理持久数据的子系统。简单的说,文件系统就是指系统允许存放的文件所在的那个磁盘空间的格式。文件系统有很多,比如ntfs、fat32、xfs、ext4、ext3、ext2、swap、nfs等。
本文主要介绍Linux系统文件系统的基础知识,详细内容参考下文。
一、登陆Linux系统
1、登陆系统
2、查看文件系统
3、文件系统格式介绍
Linux系统可以支持很多种文件系统类型。比如ext、ext2、ext3、ext4、xfs、NTFS、HPFS、NFS、 SMB等。下面介绍Linux下几个最常用的文件系统,其中包括ext、ext2、ext3、ext4、xfs、swap等。
文件系统 | 功能介绍 |
Ext | Linux 中最早的文件系统,由于在性能和兼容性上具有很多缺陷,现在已经很少使用 |
Ext2 | 是 Ext 文件系统的升级版本,Red Hat Linux 7.2 版本以前的系统默认都是 Ext2 文件系统。于 1993 年发布,支持最大 16TB 的分区和最大 2TB 的文件 |
Ext3 | 是 Ext2 文件系统的升级版本,最大的区别就是带日志功能,以便在系统突然停止时提高文件系统的可靠性。支持最大 16TB 的分区和最大 2TB 的文件 |
Ext4 | 是 Ext3 文件系统的升级版。Ext4 在性能、伸缩性和可靠性方面进行了大量改进。Ext4向下兼容 Ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块 概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。它是 CentOS 6.3 的默认文件系统 |
xfs | 被业界称为最先进、最具有可升级性的文件系统技术,由 SGI 公司设计,目前最新的 CentOS 7 版本默认使用的就是此文件系统。 |
swap | swap 是 Linux 中用于交换分区的文件系统(类似于 Windows 中的虚拟内存),当内存不够用时,使用交换分区暂时替代内存。一般大小为内存的 2 倍,但是不要超过 2GB。它是 Linux 的必需分区 |
NFS | NFS 是网络文件系统(Network File System)的缩写,是用来实现不同主机之间文件共享的一种网络服务,本地主机可以通过挂载的方式使用远程共享的资源 |
iso9660 | 光盘的标准文件系统。Linux 要想使用光盘,必须支持 iso9660 文件系统 |
fat | 就是 Windows 下的 fatl6 文件系统,在 Linux 中识别为 fat |
vfat | 就是 Windows 下的 fat32 文件系统,在 Linux 中识别为 vfat。支持最大 32GB 的分区和最大 4GB 的文件 |
NTFS | 就是 Windows 下的 NTFS 文件系统,不过 Linux 默认是不能识别 NTFS 文件系统的,如果需要识别,则需要重新编译内核才能支持。它比 fat32 文件系统更加安全,速度更快,支持最大 2TB 的分区和最大 64GB 的文件 |
二、文件系统类型
1、文件系统与操作系统的关系
文件系统对应着操作系统,不同的操作系统可以支持的好多种文件系统,比如,Linux系统支持ext3、ext4、xfs等类型,而windows系统则支持FAT32、NTFS、exFAT等格式,还有其他,比如光盘的格式是iso9660等等。详细情况如下:
操作系统 | 文件系统格式 |
Linux | ext2, ext3,ext4, xfs, btrfs, reiserfs, jfs(AIX), swap等 |
Windows | FAT32, exFAT, NTFS等 |
Unix | FFS (fast ), UFS (unix ), JFS2等 |
网络文件系统 | NFS和CIFS |
分布式文件系统 | fastdfs, ceph, moosefs, mogilefs, glusterfs, Lustre等 |
集群文件系统 | GFS2和OCFS2 |
光盘 | iso9660 |
2、创建文件系统
(1)、mkfs 命令
mkfs. 能创建很多类文件系统 例:mkfs.ext4 /dev/sdb 给/dev/sdb创建ext4类型的文件系统
执行指令# mkfs.ext4 /dev/sdb
mkfs -t 是个c写的脚本,就是调用mkfs. 命令 例:mkfs -t ext4 /dev/sda1 给/dev/sda1创建ext4类型的文件系统
(2)、mke2fs命令
mke2fs:创建文件系统,ext系列文件系统专用管理工具,例:mke2fs -t ext4 -L test /dev/sdc1 给/dev/sdc1创建ext4卷标为test的文件系统
-t {ext2|ext3|ext4} 格式
-b {1024|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 禁用指定特性
(3)、tune2fs命令
tune2fs:修改文件系统信息,重新设定ext 系列文件系统可调整参数的值 例:tune2fs -o acl /dev/sdb2 开启/dev/sdb2的acl功能。
-l:查看指定文件系统超级块信息;super block
-L 'LABEL':修改卷标(ext)
mkfs -L 'LABEL' 或 mke2fs -L 'LABEL' 创建时设置卷标
e2label /dev/sd# 查看卷标
e2label /dev/sd# 'LABEL' 重命名卷标
-m #:修预留给管理员的空间百分比
-j: 将ext2 升级为ext3
-O: 文件系统属性启用或禁用, –O ^has_journal
-o: 调整文件系统的默认挂载选项,–o ^acl (centos7里默认开启acl 6 默认不开启)
-U UUID: 修改UUID号
(4)、查看文件系统信息
执行指令# blkid查看文件系统信息
三、检查并修复文件系统
说明:命令fsck的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
1、语法格式
Fsck命令格式:fsck [参数] [文件系统]
常用参数:
-a | 自动修复文件系统,不询问任何问题 |
-A | 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 |
-N | 不执行指令,仅列出实际执行会进行的动作 |
-P | 当搭配”-A”参数使用时,则会同时检查所有的文件系统 |
-r | 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式 |
-R | 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查 |
-t | 指定要检查的文件系统类型 |
-T | 执行fsck指令时,不显示标题信息 |
-V | 显示指令执行过程 |
2、参考实例
执行指令# fsck --version显示fsck版本
执行指令# fsck -t ext3 -r /usr/local