您的位置:首页 > 运维架构 > Linux

linux文件管理系统Ext以及inode的概述

2017-09-27 14:05 549 查看

硬盘的分类

机械硬盘(HDD):采用磁性碟片来存储。一般由圆形的磁盘、机械手臂、主轴马达等部分组成。扇区是最小的存储单元,每个扇区的大小为512bytes(字节)。第一个扇区最为重要,里面有主引导记录(MBR, Main Boot Record, 446byte)和分割表(Partition table, 64byte)。

固态硬盘(SSD):采用闪存颗粒来存储。是用固态的电子存储芯片阵列制成的硬盘,由控制单元和存储芯片组成。

混合硬盘(HHD):把磁性硬盘和闪存集成到一起的一种硬盘。

文件管理系统

对于一个系统,文件的存储是存储是十分重要的一部分。

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

简单来说,文件系统就是将存储设备上离散的信息链接起来,变成一个连续的、一个整体的文件。

FAT & NTFS

不同的操作系统使用不同的文件管理系统,Windows98以前的操作系统使用的文件管理系统出FAT or FAT16, Windows 2000以后的操作系统使用的文件管理系统是NTFS,最新的Windows 10使用的就是NTFS。

采用FAT16的分区的簇大小为32KB,而FAT32分区的簇只有4KB的大小。

基于FAT32的Win 2000可以支持分区最大为32GB;而基于 FAT16的Win 2000支持的分区最大为4GB。

Ext

Ext是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。

linux主要的文件系统为Ext2/Ext3。Ext2是一种索引式的文件系统。

Ext2文件系统内的主要信息有:

- superblock:记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量、文件系统的格式与相关的信息。

- inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码。

- block:实际记录文件的内容,若文件太大,则占用多个block。

索引式文件系统:

文件的inode存储文件的基本属性和文件数据所在的block的号码。这样操作系统就可以根据inode中的block编号的顺序读取相应编号的block中存储的文件。

一般文件系统一开始就把inode和block编号完成了,不再进行修改。

Ext2文件系统在格式化的时候将存储设备分为多个块组(block group),每个块组都有相对独立的inode/block/superblock。在文件系统最前面有一个启动的扇区(boot sector),这个启动的扇区可以安装引导装载程序。

每个块组由6个部分组成:

- Super block:(使用
dumpe2fs
命令来调用查看)

- 记录block和inode的总量,已使用和未使用的量数量。

- 每个block和inode的大小,inode的大小为128byte,block的大小为1k,2k,4k。

- 文件挂载的时间,最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息。

- File system Description:(文件系统描述说明),使用
dumpe2fs
进行查看。

- 记录每个block group的开始和结束的block的block的号码。??????????????

- block bitmap:(块对照表)

- 记录所有的block的占用情况。若你想添加文件使用block,通过block bitmap查询block是否被占用。

- inode bitmap:(inode对照表)

- 与上面的block bitmap类似。

- inode table:(inode表格)

- 记录所有的文件夹,文件的属性(权限、所有者),文件的大小,文件创建的时间或状态改变的时间、数据block存储存储号(查找到文件的inode后也就就可以获得数据存储的所有的block号,一次可以将所有的数据读取出来)

- data block:(数据块)

- 用于存放数据的地方,在Ext2中每个block的大小可以为1k、2k、4k。

操作系统通过inode来识别不同的文件,也就是说并不是使用文件名来识别文件的。

系统打开一个文件。首先,找到文件所对应的inode号码;通过inode号码,获取inode的信息;根据inode的信息,找到文件数据所在的block,读取文件的数据。

常用的命令:

- 查看文件的inode信息可以使用
stat
命令查看,如
stat filename


查看每个分区的inode的总数和已经使用的情况可以使用
df
的命令。如
df -i


查看每个文件的所对应的inode号码,使用
ls -i filename


查看整个目录下的文件夹和文件的inode,使用
ls -li ./file


硬链接

在linux下,多个文件名可以指向同一个inode,也就是硬链接。也就是不同的文件名访问同样的内容,如果修改文件的内容,会影响所有的文件名。删除一个文件名,并不会影响所有的硬件链接的文件。

硬链接使用
ln
命令。如
ln sourcefile targetfile


软链接

下面举一个栗子,引出软链接的概念。

文件A和文件B的inode号码不一样,但是文件A的内容就是文件B的路径,读取文件A的时候,系统会自动将访问者导向文件B。因此你无论打开哪一个文件,最终读取的都是文件B。此时,文件A就称为文件B的软链接。有点类似于Windows的快捷方式,但又有着本质的区别。

软链接使用
ln -s
命令。如
ln -s sourcefile targetfile


本文参考鸟哥的私房菜的基础学习篇和阮一峰的博客《理解inode》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux ext