Linux磁盘与文件系统概念理解

磁盘级别概念

    这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。

       

简简单介绍了磁盘结构后,下面我们将对磁盘的参数进行讲解。磁盘的常见参数如下:

  • 磁头(head)
  • 磁道(track)
  • 柱面(cylinder)
  • 扇区(sector)
  • 圆盘(platter)

图2中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6*7*12*512字节。

即:

     存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数

下面讲一下现代磁盘,在老式磁盘中,尽管磁道周长不同,但每个磁道上的扇区数是相等的,越往圆心扇区弧段越短,但其存储密度越高。不过这种方式显然比较浪费空间,因此现代磁盘则改为等密度结构,这意味着外围磁道上的扇区数量要大于内圈的磁道,寻址方式也改为以扇区为单位的线性寻址。为了兼容老式的3D寻址方式,现代磁盘控制器中都有一个地址翻译器将 3D 寻址参数翻译为线性参数。

来源: <http://www.cnblogs.com/joydinghappy/articles/2511948.html>

扇区(sector):最小的物理存储单位,每个扇区512bytes

柱面(cylinder):扇区组成的一个圆,柱面是分区(partition)的最小单位

第一个扇区:包含开机启动记录(MBR,Master boot record)以及分区表(partition table),其中MBR为446bytes,partition table为64byte

因为分区表大小只有64byte,所以只能存储4个分区信息,这也是为什么一块硬盘只能分为四个主分区,或者将其中一个作为扩展分区,在其中再划分逻辑分区。

    

多重引导

图中蓝色为MBR,黄色为每个分区的启动扇区(boot sector)

  • 每个分区都拥有自己的启动扇区(boot sector)
  • 图中的系统分区为第一及第二分区
  • 实际可开机的核心文件是放置到各分区内的!
  • loader 只会认识自己的系统分区内的可开机核心文件,以及其他 loader 而已;
  • loader 可直接指向或者是间接将管理权转交给另一个管理程序。

分区概念

分区的最小单位是柱面,柱面=每个磁道的扇区数*扇区大小*磁头数,所以分区不可能是准确的大小,会有一个柱面大小的偏差。

分区示意图如下

一块硬盘最开始是MBR和分区表,并且每个分区都有各自的boot sector。

文件系统概念

文件系统定义了以什么样的结构存储数据。每个分区可以是不同的文件系统,文件系统的划分是针对分区的。

Linux文件系统ext2主要分为三种类型的结构,superblock,inode,block。

superblock(超级块)

superblock记录了整个filesystem相关信息的地方,没有superblock,就没有filesystem

  • block与inode的总量
  • 未使用与已使用的inode/block数量
  • block与inode的大小
  • filesystem挂载时间,最近一次写入数据时间,最近一次检验磁盘时间等
  • 一个valid bit数值,若被挂载为0,否则为1

inode

  • 文件的字节数
  • 文件拥有者的User ID
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
  • 链接数,即有多少文件名指向这个inode
  • 文件数据block的位置

block

大小一般为1k,2k,4k,是真实存储数据内容的区域。

下图为他们三者的关系

另外还有其他部分

Filesystem Description (文件系统描述说明)

这个区段可以描述每个 block group 的开始和结束的block号码,以及说明每个区段 (superblock, bitmap, inodemap, data block) 分别位于哪一个 block 号码之间。这部分也能够用 dumpe2fs 来观察。

block bitmap (区块对照表)

如果你想要新增文件时总会用到 block 吧!那你要使用那个 block 来记录呢?当然是选择『空的

block 』来记录新文件的数据。 那你怎么知道那个 block 是空的?这就得要透过 block bitmap 了。从 block bitmap 当中可以知道哪些 block 是空癿,因此我们的系统就能够迅速的找到可使用的空间来处置文件。

inode bitmap (inode 对照表)

这个其实不 block bitmap 是类似的功能,叧是 block bitmap 记录的是使用不未使用的block 号码,至于inode bitmap 则是记录使用不未使用的inode 号码啰!

目录和文件的存储方式

目录存储方式

当我们在 Linux 下癿 ext2 文件系统建立一个目彔时, ext2 会分配一个 inode 不至少一块 block 给该目录。其中,inode 记录该目录的相关权限和属性,并可记录分配到的那块 block 号码; 而 block 则是记录在这个目录下的文件名与该文件名占用的 inode 号码数据。

文件存储方式

文件存储也是分配一个inode,并且这个inode中有12个直接,一个间接,一个双间接,一个三间接记录区

文件检索过程

比如打开/var/test文件过程

首先找到/目录,然后找到其对应block下面的目录名var对应的inode

在var的inode中找到对应的block,在block中找到文件test对应的inode

在test的inode中找到对应的block,即为test文件的内容。

如下图所示

参考文章:http://www.cnblogs.com/vamei/p/3506566.html

来自为知笔记(Wiz)

时间: 2024-08-05 19:27:47

Linux磁盘与文件系统概念理解的相关文章

2018-1-17Linux系统管理(1)Linux磁盘及文件系统的概念

在本章当中,我们开始对于Linux的系统篇的介绍,我们首先了解一下磁盘的构造以及文件系统的概念,在上一篇的基础中,主要介绍了Linux的命令的用法等其它的一些概念,知识比较琐碎,希望将这些基础知识多看得以巩固,唉...日子不好过啊,学习本来就很难.那么在这一章当中我们来讲述Linux磁盘及文件系统的概念. 一.操作系统的组成部分 我们操作系统组成部分大致分为硬件和软件,硬件设备是最底层的,这是计算机的一个运行的基础,冯诺依曼定义了硬件部件,分别为是CPU(由运算器和控制器组成)然后是Memory

Linux磁盘及文件系统的管理

Linux磁盘及文件系统的管理 我们计算机当中的核心部件并不包括磁盘,磁盘对我们的计算机来说属于外部I/O设备,我们目前主流的硬盘是机械式硬盘,我们的CPU以及内存设备属于电子设备,而我们的硬盘属于机械设备,所以说在发展速度上,CPU和内存要比硬盘快很多,我们通常所说的磁盘格式化分为两种,一种叫做低级格式化,低级格式化是硬盘厂商在出厂前就已经做好的,低级的格式化的目的是为了划分好磁盘上的磁道等物理边界,而当我们将磁盘拿到自己手里之后都会对磁盘进行分区(partition),我们对磁盘进行分区的目

Linux磁盘和文件系统

Linux磁盘和文件系统 ??当我们拿到一块全新的磁盘的时候,我们并不能直接使用,而是需要经过分区.格式化.挂载后,才能被操作系统识别并写入和读取数据.不同的操作系统的文件系统有所不同,因此对磁盘的划分方式也不一样. 一.磁盘 1.结构 ??在计算机领域,磁盘是现在使用最多.性价比最高的存储介质.随着存储技术的不断发张,磁盘又分为机械硬盘和固态硬盘.机械硬盘主要由:盘片.磁头.盘片转轴和磁头控制器.数据转换器.接口等几部分组成.数据存储在盘片上,在电机的带动下盘片高速旋转,每个盘片的存储面上有一

Linux磁盘及文件系统(三)Linux文件系统

一.文件系统的组成 Linux常见的文件系统类型有ReiserFS,ext2,ext3,ext4,vfat,XFS等,文件系统是对一个存储设备上数据和元数据进行组织的机制.他的最终目的是把大量数据有组织的放入持久性的存储设备中,比如硬盘和磁盘.文件系统就是文件在逻辑上组织形式,他以一种更加清晰的方式来存放各个文件.数据被存放到某个分区中.一个典型的Linux分区包含有以下各个部分: boot block:任何分区的第一个块,存放系统的引导程序. super block(超级块):保存整个分区的全

12.LInux磁盘,系统文件概念《Mr.Robot》

前言:这些系统洗盘文件概念,要懂.<Mr.Robot> ---------------------------------------------------- 磁盘最外侧  速度最快   一般被分到c盘 MBR:主引导记录 不能用来分区, 硬盘用来记录分区情况的, 512bytes: 446bytes   :加载操作系统的一段系统启动程序boot 64bytes  :16字节一个分区 ,总共能有4个分区,所以硬盘主分区最多4个,fat 2 bytes :MBR有效性的标记 5A 3个 主分区

Linux磁盘和文件系统扩容彻底研究

1.物理卷: LVM 逻辑卷的底层物理存储单元是一个块设备,比如一个分区或整个磁盘.要在 LVM 逻辑卷中使用该设备,则必须将该设备初始化为物理卷(PV). 2.卷组:物理卷合并为卷组(VG).这样就创建了磁盘空间池,并可使用它分配逻辑卷. 3.逻辑卷:逻辑卷管理会根据物理存储生成提取层,以便创建逻辑存储卷.这样就比直接使用物理存储在很多方面提供了更大的灵活性.使用逻辑卷时不会受物理磁盘大小限制.另外,软件无法看到硬件存储配置,因此可在不停止应用程序或者卸载文件系统的情况下,重新定义大小并进行移

Linux磁盘及文件系统(二)Linux下磁盘命名和分区

在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一.磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推.一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备.主SCSI上的两个设备分别对应sda和sdb,第二个SCSI口上的设备对应sdc和sdd.一般硬盘安装在SCSI的主接口上,所以是sda和sdb,而光驱一般安装在第二个SCSI的主接口上,所以是sdc.IDE有两个口,第一个IDE口叫做

Linux磁盘及文件系统的创建,查看及管理

用到的命令有:fdisk,mkfs,mke2fs,tune2fs,blkid,fsck,e2fsck,dumpe2fs,e2label,mount,umount,partx,kpartx,mkswap,swapon,swapoff,free 1.手动添加一块新磁盘,启动系统查看是检测到新磁盘 #fdisk -l /dev/sd[a-z] 2.创建3个分区,分别为主分区,swap分区,扩展分区 常用到的命令分别为 m:查看帮助 n:创建新分区 p:创建主分区 e:创建扩展分区 l:在扩展分区的基础

Linux磁盘及文件系统(一)

一.磁盘 1.IO接口类型 (1)传输类型分类 并口:同一个线缆可以接多块设备 IDE口:两个,一个主设备,一个从设备 SCSI:宽带:16-1:窄带:8-1 串口:同一个线缆只可以接一个设备 (2)硬盘类型分类(理论传输数据) IDE(ata):并口,133MB/s SCSI:并口,Ultrascsi320,320MB/s,UltraSCSI640,640MB/s SATA:串口,6gbps SAS:串口,6gbps USB:串口,480MB/s 2.硬盘种类和磁盘 (1)机械硬盘:内部真空