文件系统管理

文件系统是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文件系统)的更多相关文章

  1. 第四章 文件的基本管理和XFS文件系统备份恢复 随堂笔记

    第四章 文件的基本管理和XFS文件系统备份恢复 本节所讲内容: 4.1 Linux系统目录结构和相对/绝对路径. 4.2 创建/复制/删除文件,rm -rf / 意外事故 4.3 查看文件内容的命令 ...

  2. Linux高级运维 第四章 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在windows系统中,查看文件先进入相应的盘符,然后进入文件目录 在windows中,它是多根  c:\    d:\   e ...

  3. linux btrfs文件系统管理与应用

    btrfs文件系统管理与应用 1.btrfs文件系统 基本介绍 btrfs文件系统在CentOS7.x上属于技术预览版 btrfs文件系统英文名:B-tree  FileSystem或者Butter ...

  4. linux 文件系统管理三部曲之三:挂载文件系统

    linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...

  5. linux备忘录-文件系统管理

    Extx 文件系统原理 block group 每个分区(partition)的组成为 boot sector -> block group -> block group -> bl ...

  6. 文件的基本管理和XFS文件系统备份恢复

    4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根  c:\    d:\   e:\ Linux ...

  7. Linux高级文件系统管理(8)

    如果您的 Linux 服务器有多个用户经常存取数据时,为了维护所有使用者在硬盘容量的公平使用,磁碟配额 (Quota) 就是一项非常有用的工具,另外,如果你的用户常常抱怨磁盘容量不够用,那么更进阶的文 ...

  8. Linux学习 -- 文件系统管理

    1 分区和文件系统 分区类型 主分区:<= 4个 扩展分区:只能有一个,也算主分区的一种   不能存储数据和格式化,只能用来包含逻辑分区 逻辑分区:扩展分区中划分的   IDE--最多59个   ...

  9. Linux进阶文件系统管理之RAID

    RAID 1.引言 RAID全称Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即独立冗余磁 ...

随机推荐

  1. HDU 3686 Traffic Real Time Query System (图论)

    HDU 3686 Traffic Real Time Query System 题目大意 给一个N个点M条边的无向图,然后有Q个询问X,Y,问第X边到第Y边必需要经过的点有多少个. solution ...

  2. Python语法的使用和简介

    前言 Python的语法和其它编程语言的语法有所不同,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序. 输入输出 print() # 打印显示input() # 输入内容 ...

  3. postman设置页面详解

    设置详解/General Trim keys and values in request body:如果使用form-data或者url-encoded的方式向服务器发送数据:将该选项设置为ON,则会 ...

  4. Django开篇 - Web应用

    一 Web应用的组成 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返回相应的数据给浏览 ...

  5. YAML 语言教程与使用案例

    YAML语言教程与使用案例,如何编与读懂写YAML文件. YAML概要 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写.在开发的这种 ...

  6. DVWA学习记录 PartⅤ

    File Upload 1. 题目 File Upload,即文件上传漏洞,通常是由于对上传文件的类型.内容没有进行严格的过滤.检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文 ...

  7. 数据分析05 /pandas的高级操作

    数据分析05 /pandas的高级操作 目录 数据分析05 /pandas的高级操作 1. 替换操作 2. 映射操作 3. 运算工具 4. 映射索引 / 更改之前索引 5. 排序实现的随机抽样/打乱表 ...

  8. js获取div对象几何信息

    /** * @description 获取对象信息: * bottom: 208 * height: 200 (老版本IE不兼容) * width: 200 (老版本IE不兼容) * left: 8 ...

  9. git怎么合并远程分支

    一共就五步: 1.把代码clone到本地仓库 git clone https://github.com/573734817pc/shop.git 2.在本地创建dev分支并与远程dev分支对应 git ...

  10. Kite: 一个分布式微服务框架(翻译)

    原文链接:https://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/ 此为中文翻译 用GO语言来编写web ...