linux系统上的文件管理
admin
2023-02-25 18:00:02
0

一、 inode、data block与super block

1. inode用于记录文件的属性与权限等信息;一个文件占用一个inode,同时inode还记录了该文件的data block的位置。inode的大小有128、256字节两种规格。

2. data  block:用于存储文件的实际内容。块大小为1K、2K、4K字节三种规格。

3. super block: 记录文件系统的整体信息,包括了inode与data block的总量、已使用量、剩余的旦、卷标、文件系统格式等相关的信息。可以使用tune2fs -l  Partition_Name来查看。


注意:以ext2文件系统为例,对于128字节的inode,除了存储文件的权限属性等信息外,只能存12个4字节的文件指向的数据块号码。那对于一个大文件来呢,需要几十上百万个数据块来存放文件内容。这个怎么弄?其中inode除了12个直接的数据指向以外,还有一个间接、一个双间接、一个三间接的记录区。所谓间接的意思就是inode的直接指向会指向一个数据block,这个block不存数据,而是存放的文件的数据块的号码。对于1K大小的数据块,可以存储256个指向。而256个数据区块,可以存储的文件大小为256KB;双间接可以存储64MB数据,三间接可以存储16G大小的文件;     对于2K和4K大小以及其他文件系统,算法不相同。但都借用了数据区块来存放数据区块号。



二、 文件是如何存取的

每个文件系统在其内部划分了多个block group,而每个block group内又包括了以下几个内容:

1. super block:   inode与数据区块的总量,剩余的数量,inode与数据区块的大小,保留等信息。第一个块组肯定有超级块,后续的块组,有的有,有的没有。

2. 文件系统描述: 描述区块群组的开始与结束的区块,以及说明每个区段(超级区块、对照表、inode对照表、数据区块)分别介于哪一个区块之间,这部分也能用dumpe2fs来查看。

3. block bitmap:用于记录哪些block是空的,哪些是已经使用的。

4. inode bitmap:  用于记录哪些inode是空的,哪些是已经使用的。

5. inode table:  用于存储文件属性以及该文件数据区块号码

6. data block: 用于存储文件的实际内容。


存取文件时,先检查用户对目录是否有写和执行权限;接着系统通过inode bitmap查询哪些inode表是空的,将新文件的属性写入空的inode表;根据block bitmap查找哪些data block是空的,是空的则可以将文件内容写入到这些block中;更新inode bitmap以及block bitmap,并更新超级块的信息。


三、 系统如何通过路径读取文件内容

举例说明,查找/etc/passwd文件

1. 先查找/的inode号码,/的inode里有记录/对应的data block;

2. 在/的data block中找到etc目录对应的inode

3.  读取etc目录对应的inode表中,找到etc目录的数据块

4. 在etc目录的数据块中,找到passwd文件的inode号码

5. 读取passwd文件的inode中数据块指向,并将内容读取出来。


总结: 从根目录开始,先找inode,通过inode找到对应的数据区块;在数据区块中,分两种情况:1. 该文件是目录,则数据区块记录了其下属子目录及文件的文件名以及对应的inode; 2. 该文件是非目录文件,则数据区域记录了文件的内容。   通过inode--->block--->inode--->block依次循环来读取文件。在这个过程中,需要检查用户对目录及文件的权限。



四、 硬链拉与软链接

1. 硬链接是指向同一个inode的多个文件路径; 目录不支持硬链接,不能跨文件系统,创建硬链接会增加inode计数。

2. 软链接指向的是文件实际的访问路径,可以跨文件系统,支持对目录创建软链接,删除软链接不会影响原文件。


五、 MBR

存储设备的第一个扇区,也就是最前面的512字节,叫做入引导记录


1. 主引导记录的结构

主引导记录只有512字节,放不了太多东西,它的主要作用是告诉计算机到硬盘的哪一个位置去找操作系统。

主引导记录由以下3个部分组成:

A. 第1-446字节:调用操作系统的机器码

B. 第447-510字节:分区表 (Partition  table)

C. 第511-512字节:主引导记录签名(0X55和0XAA)


2. 分区表

硬盘分区有很多好处,考虑到每个区可以安装不同的操作系统,主引导记录呢须知道 将控制权转交给哪个区。

分区表的长度只有64字节,里面又分成4项,每项16字节。所以一个硬盘 最多只能分4个一级分区,又叫作主分区。每组的记录区主要记录了该区段的起始与结束的柱面号码。

每个主分区的16个字节由以下6部分组成:

A. 第1个字节,如果为0X80,就表示该主分区是激活分区,控制权要转交给这个分区。4个主分区里面只能有一个分区是激活的。

B. 第2-4字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等)

C. 第5字节:主分区类型

D. 第6-8字节:主分区最后一个扇区的物理位置

E. 第9-12字节:该主分区第一个扇区的逻辑地址

F. 第13-16字节:主分区的扇区总数。


最后的4字节(主分区的扇区总数)决定了这个主分区的长度,也就是说,一个主分区的扇区总数最多不超过2的32次方。

如果每个扇区为512字节,则意味着单个分区最大不超过2TB。再考虑到扇区的逻辑地址也是32位,所以单个硬盘可利用的最大空间也不超过2TB。如果想再使用更大的硬盘,只有两个方法:一是提高每个扇区的字节数,二是增加扇区总数。


六、 文件名存储在哪里,文件的属性存储在哪里

1. 目录也是文件;

2. 文件的文件名存储在目录的数据块中;

3. 文件的属性,权限等信息存储在inode中;

相关内容

热门资讯

中纪委连打三“虎” 今天(25日),中央纪委国家监委网站连发三份通报。肖杰被开除党籍经中共中央批准,中央纪委国家监委对海...
扎根硬核场景,璇玑动力以全栈自... 2026 世界人工智能大会落地三地四馆,具身智能成为全场核心主线,超 200 家企业同台竞技。展区内...
靠谱大容量TF卡推荐:三星T7... 三星原厂 · 全能微存储新基准 当平板扩容需求激增、Switch游戏掌机需加载多款3A游戏、航拍无人...
买不起大疆、影石的年轻人,排队... 文 | 表外表里 ,作者 | 陈梓洁,编辑 | 杨静、曹宾玲 “一台机器,旺季月入1500。” 去...
美国众议员当街打掉拍摄人员的手... 近日,美国KCCI电视台爆出的一段视频显示,美国众议员扎克·纳恩在街道上与跟踪拍摄人员发生口角,并动...
今天上凯道人数成关键!媒体人示... 海峡导报综合报道 台湾中联油脂致癌油风暴继续延烧,国民党今天(25日)在凯道举办“我是人、我反毒台”...
谷歌公布1500万次AI交互,... 导读:谷歌分析1500万次去标识化AI交互后发现,在一个典型职业中,AI大约可参与21%的任务,但完...
空调水管不出水不制冷 原因可能是空调缺氟或是氟利昂泄漏,可以修补泄漏点,添加适量的氟;原因可能是空调的功率不够,可以更换与...
洗衣机不出水怎样修理拆装 如果您的洗衣机出现不出水的问题,也许是因为以下几个原因:1. 水龙头未开启:在洗衣机不出水的情况下,...
原创 三... 随着REDMI K100系列两杯(Pro/ProMax)的入网,以及一款小米神秘新机,小米在8月份的...