硬盘与文件系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬盘与文件系统相关的知识,希望对你有一定的参考价值。

技术分享

1硬盘的物理组成:原型盘片,加磁头组成。

一个盘片有2面 ,有多个柱面,有多个扇区,多个磁道。

每一个扇区大小相同都是512bit,每一个磁道有相同数目的扇区(扇区存储的数据相同但是密度不同),每一个扇区可用3维坐标来表示(柱面,磁头,扇区),

硬盘的容量可表示为: C=A*B

A=(磁头数*柱面数)=多少个磁道

又因为每个磁道扇区数目相等以及每个扇区存储数据相同,也就是每个磁道存储的数据大小相等

B=(磁道容量=扇区数量*扇区大小)

第一个扇区就是(0,0,1)就是主引导程序(mbr)446b和分区表64b

 

2磁盘分区:代表的是高速操作系统次分区可以访问从a柱面到b柱面的之间的块。

因为磁盘分区表只有64个字节所以只能记录4条分区的记录 (这4条记录称为主分区(p)和扩展分区(e))其中扩展分区还可以在划分但是主分区不可以.

如可以划分为 p+p+p+p

或者p+p+p+e(e可以再划分)

只可以格式化p或者可扩展分区的逻辑分区,即扩展分区不能被整体格式化

3分区完成之后要格式化:目的是使分区成为能被操作系统利用的文件系统。

如windows 是ntfs 而linux正规文件系统是ext2

4.以前一个分区只可以格式化为一个文件系统。现在可以一个分区可以挂在多个文件系统

由于上面原因:现在我们称一个可以被挂载的数据为一个文件系统

5.文件系统的如何运行:一般一个文件系统分为:3个文件块

一个是inode 块(记录文件的属性权限,还有文件数据所在的block块号)

一个是block 块(实际记录文件的数据,文件太大可以占多个块)

一个是super block块(记录inode 和block的使用情况,文件系统的格式和相关信息)

6文件系统的访问:索引式访问和链表式访问。

Linux是索引式访问

U盘是fat格式为链表式访问

7.inode和block块在格式化完成后就被文件系统分好啦

文件系统可以分为多个块组,,每个块组都有自己的(super block, inode, block)

启动扇区

Block group1

Block group2

Block group3

Block group4

每一个block group 又可以分为

Superblock

文件系统描述

块对应表

Inode对应表

Inode table

datablock

 

在文件系统的最前面的一个扇区安装引导驱动程序(mbr)

8.data block 在ext2下有3种大小:1kb,2kb,4kb

每一个文件都会占用一个或多个block ,所以合理设置block很重要,会对内存的利用率提高。

9inode table

文件权限,属性记录区

12个直接记录区

一个间接记录区

一个双间接记录区

一个3间接记录区

12个直接记录block号   inode ->block   可以有12block号

假设一个block分为1kb,每个block占4个字节

间接记录Inode->block->block:  可以有:1*1kb/4=256个block号

双间接记录Inode->block->block->block

3间接记录Inode->block->block-> block->block

9.superblock(大小为1024个字节) 使用过dumpe2fs命令查看。

主要记录block与inode的总量,以及使用情况以及(block的大小(1,2,4kB),或者inode的大小(128B)),文件系统的挂载时间,最近一次写入磁盘的时间,最近一次检验磁盘的时间等

Vaildbit 代表文件系统是否被挂载(1时被挂载,0未被挂载)

一般superblock只有一个,若有多个只是第一个的备份,用于数据的恢复

10.inode 对应表代表inode的使用情况

11.block 块对应表代表block的使用情况

12.文件系统描述符代表的是每一个block group的详细信息,如开始block,结束block,以及每一个区段的各个描述表所在的位置。

13文件系统与目录树的关系

1每个文件或目录都会占用一个inode号用于文件的属性与权限

2.每个文件或目录会分配多个block用于存储真正的数据

对于目录,inode存储的是目录的相关属性与权限,block记录的是目录下的文件名和文件名占用的inode号

对于文件,inode记录文件的相关信息,block记录真正的数据(先用直接,后间接后…)

3目录树的读取:系统根挂载点的信息找到挂载点号码得到根目录的inode内容,得到根目录的block文件数据,在一层层的往下读。

4关于文件系统的大小与读写性能:

如果文件过于离散,则把数据全部复制出来再格式化一下文件系统在复制回去。

分区不适宜过大,应该对主机的用途做划分。

14.ext2ext3文件的访问和日志文件系统的功能

当新增一个文件时根据权限检查,从inode 对应表找出未使用的inode并将文件相关属性权限信息写入inode,根据block对应表 找出未使用的block写入数据,更新inode对应表和block对应表以及superblock表

日志文件系统的由来:由于文件存入是可能会导致block bitmap 和inodebitmap未作出及时处理,导致文件系统不一致,所以ext2每次系统都回检查全部磁盘,从而浪费时间

Ext3比ext2多一个日志文件系统

日志文件工作流程:

1预备文件准备录入的信息

2写入块表和inode表,更新medadata表

3日志文件记录流程.

优点:无需检查全部磁盘,只需要看日志文件即可.

 

15linux文件系统的操作:会缓冲常用的文件数据到内存,物理内存会被用光,未被改动的文件设置为clean改动过得设置为dirty,可以通过sync同步写入磁盘

正常关机会自动调用sync,非自动关机可能会导致磁盘数据的损毁。

16.文件系统与挂载点

文件系统只有与目录树结合才能被使用,这个称为挂载。

挂载点一定是目录,目录为该文件系统的入口。

以上是关于硬盘与文件系统的主要内容,如果未能解决你的问题,请参考以下文章

linux磁盘与文件系统管理/查看硬盘内存空间/文件系统的操作/ 文件的压缩和打包

磁盘管理与文件系统

Linux硬盘分区与文件系统---学习笔记

硬盘分区与挂载

Linux 硬盘与硬件管理

Linux文件系统与硬盘存储(分区格式化挂载inode软链接与硬链接)