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,即独立冗余磁 ...
随机推荐
- Django项目后台不挂断运行
Django项目后台不挂断运行 方法一: 1.进入项目目录下,运行下面程序: nohup python manage.py runserver 0.0.0.0:5008 & nohup(no ...
- 发布.net core Web到CentOS7
1.发布一个.net core(只安装了.Net Core运行时,而没有安装ASP.NET Core运行时,需要添加以下节点再发布). <PublishWithAspNetCoreTarget ...
- day10 字符编码
字符编码 在python中出现乱码就是字符编码没有匹配的问题 python3中执行python3编辑的代码只要没有修改过编码,都是用utf-8,如果出现乱码就修改头文件,改成和原来编码相同的字符编码 ...
- 目录(Django开发)
python网络编程-socket编程 Django 笔记分享 Django之[基础篇] Django之[进阶篇] Django之 url组件 Django之 Models组件 Django之 adm ...
- scrapy 源码解析 (二):启动流程源码分析(二) CrawlerProcess主进程
CrawlerProcess主进程 它控制了twisted的reactor,也就是整个事件循环.它负责配置reactor并启动事件循环,最后在所有爬取结束后停止reactor.另外还控制了一些信号操作 ...
- 转载一篇关于kafka零拷贝(zero-copy)通俗易懂的好文
原文地址 https://www.cnblogs.com/yizhou35/p/12026263.html 零拷贝就是一种避免CPU 将数据从一块存储拷贝到另外一块存储的技术. DMA技术是Direc ...
- 绘图和可视化知识图谱-《利用Python进行数据分析》
所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...
- 如何手写一个ArrayList
写完HashMap,觉得手痒痒,所以隔了一天再来实现一下简单的ArrayList,ArrayList相比而言就非常的简单,主要的核心点有以下几个方面: 1.ArrayList的底层是由数组构成的 2. ...
- idea 项目启动console卡在Connected to the target VM, address: '127.0.0.1:51140', transport: 'socket'不动了
- Python Ethical Hacking - Basic Concetion
What is Hacking? Gaining unauthorized access. Hackers? 1.Black-hat Hackers 2.White-hat Hackers 3.Gre ...