linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)

时间:2023-03-09 04:44:11
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,作为超级的备份块,称为次超级块

 linux的文件系统管理(ext4-tune2fs-e2fsck-xfs文件系统)

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  --检查