3 Linux 磁盘与文件系统管理

2019-10-27  本文已影响0人  少博先生

1 认识 Linux 文件系统

Linux 最传统的磁盘文件系统使用的是 ext2

1.1 磁盘组成与分区

1.2 文件系统特性

根据数据存取分为两种文件系统:

索引式文件系统(indexed allocation)
每个 inode与block都有编号,而每个文件都会占用一个inode,inode 内则有文件数据放置的block号码。
如下图所示,文件系统先格式化出inode与block的区块,假设某一个文件的属性与权限数据是放置到inode4号,而这个inode记录了文件数据的实际放置点为2、7、13、15这四个block号码,操作系统就能够据此来排列磁盘的读取顺序,可以一次性将四个block内容读出来。那么数据的读取就如同下图中的箭头所指定的模样了。这种数据存取的方法我们称为索引式文件系统。

inode/block数据存取示意图

FAT文件系统
U盘使用的文件系统一般为FAT格式。FAT文件系统并没有inode,所以没有办法将这个文件的所有block在一开始就读取出来。每个block号码都记录在前一个block当中,他的读取方式如下图所示:

fat数据存取数据图

假设文件的数据依序写入1->7->4->15号这四个block号码中,但这个文件系统没有办法一口气就知道四个block的号码,他得要一个一个的block读出后,才会知道下一个block在何处。

1.3 Linux的ext2文件系统

文件系统一开始就将inode和数据区块规划好了,除非重新格式化,否则inode与数据区块规定后就不在变动。
ext2文件系统格式化的时候区分多个区块群组,每个区块群组都有独立的数据区块、inode、超级区块系统,比较好管理。

1.3.1 data block(数据区块)

用来放置文件数据,在ext2文件系统中所支持的区块有1K 2K 4K 三种。

限制

1.3.2 inode table

记录内容

特点
每个 inode 固定 128B,每个文件只占用一个 inode ,文件系统能够建立的文件数量和 inode 数量有关,系统读取文件先找到 inode,分析 inode 的权限和用户是否符合,符合才读取内容。

1.3.2 Superblock(超级区块)

没有超级区块,就没有这个文件系统,文件系统的基本新都存储在这。

记录内容

2 文件系统简单操作

2.1 磁盘与目录的容量

df
列出文件系统的整体磁盘使用量

df [-ahikHTm] [目录或文件名]
选项与参数:
-a:列出所有的文件系统,包括系统特有的/proc等文件系统;
-k:以KBytes的容量显示各文件系统;
-m:以MBytes的容量显示各文件系统;
-h:以人们较易阅读的GBytes,MBytes,KBytes等格式自行显示;
-H:以M=1000K取代M=1024K的进位方式;
-T:连同该partition的filesystem名称(例如xfs)也列出;
-i:不用磁盘容量,而以inode的数量来显示
示例

字段含义:

du
评估文件系统的磁盘使用量(常用在推估目录所占容量)

du [-ahskm] 文件或目录名称
选项与参数:
-a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已。
-h:以人们较易读的容量格式(G/M)显示;
-s:列出总量而已,而不列出每个各别的目录占用容量;
-S:不包括子目录下的总计,与-s有点差别。
-k:以KBytes列出容量显示;
-m:以MBytes列出容量显示;

df和du的区别
参考Linux du命令和df命令区别

摘自《鸟哥的Linux私房菜》,更多精彩参考 http://cn.linux.vbird.org/
参考 https://blog.csdn.net/wisgood/article/details/17316663

上一篇下一篇

猜你喜欢

热点阅读