linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)
文件系统管理
文件系统是Linux系统存放文件的空间。文件系统的类型有很多种,CentOS支持多种文件系统,目前常用的是ext4和xfs文件系统。我们以ext4文件系统为例来说明对文件系统的管理。
UFS —— Unix Filesystem
1.ext4文件系统
1.基本概念
软件包:e2fsprogs
ext4文件系统是Linux上主要的文件系统,它的早期是ext2文件系统,ext2全称第二代扩展文件系统(Second Extended filesystem),是为了替代早期ext文件系统开发的。ext2发展后的文件系统是ext3,ext3发展后的文件系统是ext4。
人们在存储文件时,有各种不同的需求,为了满足不同的需求,文件系统有各种不同的属性,对这种不同属性的设置、修改就是对文件系统的管理。
文件系统的所有属性都有缺省值,
文件系统的属性有很多,我们不可能对所有的属性进行探讨。我们只讨论实际中常用的属性。其他属性请参看man ext4及文件系统命令的帮助。
2.使用的命令:
mkfs.ext4 —创建ext4文件系统会。调用mke2fs — 创建 ext2/ext3/ext4 文件系统
tune2fs — 调整、显示文件系统参数
dumpe2fs — 列出并转储文件系统的信息,可用于查看文件系统的属性。
e2fsck — 检查修复文件系统
resize2fs --重置LV大小,自动把新增空间制作文件系统 同时i-node也会变化
e2label --设置卷标
3.属性:
1、块大小
2、inode
文件系统可以存储的文件的数量不能超过inode的值,即使还有空间,但文件个数=inode值,文件系统仍然是满的。
3、mount选项
文件系统在挂载时,缺省的挂载选项,这些选项不是在执行mount命令时制定,而是在文件系统自己具有。/etc/fstab文件中的第四字段为'defaults'就是标明使用文件系统自带的挂载选项。
卷标:用于标示该文件系统的字符串。是由人为指定的。
块大小和i-node:只能在创建文件系统时指定。一旦文件系统创建完成,块大小不能更改。
2.查看文件和文件系统
1.查看文件占据占据块大小
文件系统存储文件是按块(block)存放文件的,给文件分配的最小空间单位就是块。文件系统在创建时,会按照一个统一的大小,把空间划分成N多的存储块。存储文件时,分区会根据文件的大小,给其分配足够多的block块,若块中空间未能存满,也不再存其他我文件。
我们使用
ls -l --查看到的是文件的实际大小
但使用
du f1 --查看文件占据的分区空间大小,即块
du /var --查看目录及其内容占的块大小
du -s /var --只查看目录
ext4系统在分区格式化时默认设置的块大小和空间大小有关,超1G时是4KB。
文件系统的信息可使用tnue2fs命令查看:
tune2fs -l 设备名
注:块的大小只能在格式化时做设置,之后不可更改,除非重新格式化
2.dumpe2fs查看文件系统的超级块和块组的信息
dumpe2fs 命令可列出磁盘设备上文件系统的超级块和块组的信息,并转储(Dump)文件系统信息。
dumpe2fs 命令格式如下:
dumpe2fs <参数> <设备>
主要参数说明如下:
* -h — 只显示超级块中的信息,不显示块组信息
-i — 从指定的文件系统image 文件中读取文件系统信息
-x — 显示详细的块分组信息,块号使用十六进制格式
-f — 强制显示文件系统的信息,即使文件系统中含有无法识别的信息
-b — 显示文件系统中保留做坏块的信息
-V — 显示版本号
3.Inode节点:
1.基本概念
inode节点简称i节点
文件系统创建时,会把所有的block,划分成两大区域:inode区、数据区
inode区:一个inode对应一个文件,即一个文件会占用一个inode,inode会占用一定的空间用于存储该文件的元数据信息。
文件元数据:权限、大小、所属、创建时间、更改时间、地址指针(指向文件在数据IO区占用的空间的地址编号)等。
数据区,根据文件的大小,给其分配足够多的block,存储文件内容
2.查看命令
ls -i ---查看的文件的inode编号
stat f1 ---查看文件的属性,即inode节点中的信息
df -h ---查看各分区数据区的使用率
df -i ---查看各分区inode区的使用率,显示单位:个数
注:每个文件系统的第一个inode,不用与存储文件属性,专用于存储本分区的属性,如:分区大小,地址范围,使用率等
该块称为 超级块(supper block)
第31个inode,作为超级的备份块,称为次超级块

4.mke2fs命令创建文件系统
1.主要参数说明如下:
mkfs.ext4 -b 块值 -- 指定文件系统数据块的大小,有效的值为1024、2048和4096。
mke2fs <参数> <设备> --参考man mkfs.ext4
* -N — 指定 inode 数量,覆盖使用-i定义计算出的值。
* -L — 设置所创建文件系统的标签
-c — 在创建文件系统之前检查指定的设备上是否有坏快。如果连定义2次该参数,系统将采用慢速的读/写方式来代替较快的读方式来检查坏快
-i — 定义多少字节使用一个inode,即bytes/inode,值越大,文件系统上的 inode越少。该值不能比块大小小,因为1个块不能被2个文件用。
-I — 每个inode所使用的字节数。缺省512,不能比128小,太大会影响空间使用率,
-j — 创建使用ext3 卷号的文件系统
-J <扩展参数>—为使用ext3 卷号的文件系统指定一些扩展参数
-D — 使用直接IO读写
-n — 演习创建文件系统
-F — 强制执行
2.ext4配置文件和ext文件系统的缺省特性
/etc/mke2fs.conf --创建ext4文件系统的参数文件
可以再该文件中修改创建时的缺省值
ext2文件系统的缺省特性:
ext_attr resize_inode dir_index filetype sparse_super
ext3文件系统的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super
ext4文件系统的缺省特性:
has_journal ext_attr resize_inode dir_index filetype sparse_super needs_recovery extent 64bit flex_bg huge_file uninit_bg dir_nlink extra_isize
5.tune2fs 命令调整文件系统参数
对于已创建的文件系统,可使用tune2fs 命令来调整某些参数。
1.tune2fs 命令格式
tune2fs <参数> <设备> --具体参数请参考man tune2fs
主要参数说明如下:
-j — 调整文件系统为ext3 类型,为系统增加ext3 的日志
-J — 更详细的日志控制
* -l — 列出文件系统supper block 的内容,经常用于查看文件系统的元数据。
* -L — 为文件系统设置卷标
-m — 指定文件系统保留的块,百分比表示
* -o[^] — 设置或取消挂载参数
-O — 设置文件系统特性,如ext3转ext4,增加特性即可
* -c max-mount-counts --满足挂载次数就检查
* -C mount-count--挂载次数
* -i interval-between-checks d天m月 w周 --距离下次检查的时间
-U clear — 清除文件系统的 UUID
-U random — 为文件系统产生随机的UUID
-U time — 为文件系统产生基于时间的 UUID
tune2fs -O extents,uninit_bg,dir_index --增加系统特性
2.挂载参数
挂载说明
两个分区挂载到同一目录下,后挂的生效,先挂的被隐藏在内部,卸载先卸载后挂的分区允许挂载到非空目录下,原目录下内容会被隐藏,只有卸载分区后,才会显现建议:挂载前,一定确认挂载点是空目录
tune2fs -o ^acl /dev/sdb1 --取消用户acl扩充特性
user_xattr 使能用户设置的扩充特性。
acl 使能扩充的访问控制。
3.示例
tune2fs -c 5 /dev/sdb1 ---设定扫描频率,该分区每挂载5次后,自动检查一次
tune2fs -i 5d /dev/sda7 ---设定每5天扫描一次 5m 月 5w 周
tune2fs -c -1 /dev/sda7 ---设置为负一 ,表示取消
tune2fs -i 0 /dev/sda7 ---设置为0 零 ,表示取消
tune2fs -o ^acl /dev/sdb1 --取消用户acl扩充特性
tune2fs -O extents,uninit_bg,dir_index --增加系统特性
6.e2fsck命令修复文件系统
如果文件系统出现问题,可以使用e2fsck 工具检查并修复。
1.e2fsck格式与参数
e2fsck 命令格式如下:
e2fsck <参数> <设备>
主要参数说明如下:
-p — 自动修复
-a — 同-p
-B — 指定区块的大小,单位为字节
-c — 一并执行badblocks,以标示损坏的区块
-d — 显示排错信息
-f — 即使文件系统没有错误迹象,仍强制地检查正确性
-F — 执行前先清除设备的缓冲区
-y — 以非交互方式执行,所有问题均设置以“yes”回答
2.传统的UFS检查方式和mkfs与mke2fs
fsck -t ext4 /dev/sda7 ---扫描分区
7.文件系统下的文件扩充特性
1.查看特性及特性说明 lsattr 文件名
lsattr 文件名
特性说明:有用 ASacdisu 表示的几种特性
A 它的atime(访问时间)记录不会改变。这可以在电脑系统中避免某些磁盘I/O处理.
a 只能在添加模式下打开用于写入。只有超级用户可以设置或清除该属性。
d 文件不能对其运行 dump(8) 程序进行备份。
i 文件不能进行修改:你既不能删除它, 也不能给它重新命名,你不能对该文件创建硬链接, 而且也不能对该文件写入任何数据。只有超级用户可以设置或清除该属性.
S 对文件的修改会同步写入到磁盘上。和 sync挂载选项有相同的效果。
E 扩充特性
2.修改属性:chattr
chattr [-RV] +-=属性 文件名
R:递归 v:verbose
8.xfs系统的一些命令
man -k xfs --查看有那些命令
mkfs.xfs --创建xfs文件系统
xfs_info --查看
xfs_admin --管理
xfs_growfs --扩充
xfs_repair --检查
linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)的更多相关文章
- 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记
第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径. 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 ...
- Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复
4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根 c:\ d:\ e ...
- linux btrfs文件系统管理与应用
btrfs文件系统管理与应用 1.btrfs文件系统 基本介绍 btrfs文件系统在CentOS7.x上属于技术预览版 btrfs文件系统英文名:B-tree FileSystem或者Butter ...
- linux 文件系统管理三部曲之三:挂载文件系统
linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...
- linux备忘录-文件系统管理
Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...
- 文件的基本管理和XFS文件系统备份恢复
4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根 c:\ d:\ e:\ Linux ...
- Linux高级文件系统管理(8)
如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁碟配额 (Quota) 就是一项非常有用的工具,另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文 ...
- Linux学习 -- 文件系统管理
1 分区和文件系统 分区类型 主分区:<= 4个 扩展分区:只能有一个,也算主分区的一种 不能存储数据和格式化,只能用来包含逻辑分区 逻辑分区:扩展分区中划分的 IDE--最多59个 ...
- Linux进阶文件系统管理之RAID
RAID 1.引言 RAID全称Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即独立冗余磁 ...
随机推荐
- 洛谷 P2882 [USACO07MAR]Face The Right Way G
题目传送门 题目描述 Farmer John has arranged his N (1 ≤ N ≤ 5,000) cows in a row and many of them are facing ...
- 一文说通Blazor for Server-Side的项目结构
用C#代替Javascript来做Web应用,是有多爽? 今天聊聊 Blazor. Blazor 是一个 Web UI 框架.这个框架允许开发者使用 C# 来创建可运行于浏览器的具有完全交互 UI ...
- 动手实现一个简单的 rpc 框架到入门 grpc (上)
rpc 全称 Remote Procedure Call 远程过程调用,即调用远程方法.我们调用当前进程中的方法时很简单,但是想要调用不同进程,甚至不同主机.不同语言中的方法时就需要借助 rpc 来实 ...
- Windows配置Delve的测试环境
引言 自己最近在玩Go,在开发一些项目的时候需要调试,由于之前都是在GoLand上写的,但是这个IDE启动太慢并且不轻便.并且自己之前很多项目都是在Vscode中编写的,所以特意想在Vscode中配置 ...
- redis(十):Redis 列表(List)
Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967 ...
- Django之ORM查询操作详解
浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操 ...
- java大数据最全课程学习笔记(2)--Hadoop完全分布式运行模式
目前CSDN,博客园,简书同步发表中,更多精彩欢迎访问我的gitee pages 目录 Hadoop完全分布式运行模式 步骤分析: 编写集群分发脚本xsync 集群配置 集群部署规划 配置集群 集群单 ...
- 关于Mint-UI中loadmore组件的兼容性问题
源代码 遇到的问题 写完了之后数据加载,渲染等等都是没有问题的,但是测试总是提上滑刷新不能用,因为是远程开发,测试提就得改,看代码看文档,看半天看不出来问题,想到了兼容性问题,发现也有人遇到这个坑.安 ...
- onehot编码检测
‘’16bits位宽寄存器,用五(六也行)级逻辑判断其中有15个0和1个1‘’,这么道题目,面试无数,几乎没有人能答出来,连给我衍生‘’14个0和2个1‘’的机会都没有. 今天的问题来源于知乎,某大牛 ...
- 【Python学习笔记五】re.findall()方法中,正则的"()"效果
在笔记四中,使用正则去筛选数据时,使用了findall()这个方法,在使用时正则表达式中使用了到了"()",最初以为只是强调执行优先级,后来发现正则表达式中的每一个(),在find ...