• 磁盘结构及磁盘分区


    一、磁盘结构

    这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。

    如图1所示,图中的一圈圈灰色同心圆为一条条磁道

    从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512bytes(还有4kb的)。

    由多个扇区组成的单位叫

    图1-老式磁盘的一个盘片

    图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。

    图2-老式磁盘整体结构

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

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

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

    即:

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

     

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

    图3-一张Linux的分区表

    参考:https://www.cnblogs.com/joydinghappy/articles/2511948.html

    二、磁盘分区

      在了解了磁盘结构后,了解下什么叫磁盘分区。

        在鸟哥私房菜中是这样说的,整颗硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段才能够再制作成为你想要的家具!如果没有进行切割,那么原木就不能被有效的使用。所以要想使用就必须进行分区。而分区就是对下面的partition table进行设置。

      分区主要有两种格式,

      1、早期分区表格式,MBR(master boot record)主引导记录区:用来处理开机管理程序以及分区表,而MBR则通通放在第一个扇区(当然还包括partition table)。其中MBR占446bytes,partition table占64bytes,剩余的2bytes用来区分扇区间隔。

      由于MBR大小限制,不能存放太多的开机程序,以及无法获取2.2T以上的磁盘(GPT的出现)。损坏后就无法恢复。

      2.2T大小限制原因:http://blog.sina.com.cn/s/blog_8877bfa40101k29y.html

      而partition table则由主分区或扩展分区组成。而默认的partition table最多能写入4组分区,只能有1个扩展分区(操作系统限制)。


     

      为什么只有一个扩展分区,百度知道回答:扩展分区是所有逻辑分区的总和,如果你有多个分区的话,系统就不知道怎么样去引导多个分区了。这个和主去是一样的道理,如果条条大陆通罗马的话,系统是不知道走哪天路去罗马的。

      一个硬盘最多只能划分为4个主分区,或者是3个主分区加上一个扩展分区,这是因为在硬盘的开头,也就是0磁头(head)、0柱(cyliner)、0面(side)、0磁道(track)、0扇区(sector)总共512字节存放着硬盘最重要的信息MBR(Master Boot Record,主引导记录)和分区的相关信息,由于记录空间只有那么大,所以也只能记录这4个分区的信息。
      一个硬盘可以有4个主分区,但只能有一个扩展分区.
      一个主分区能够独占一个磁盘的全部空间,或其中一部分.一个硬盘最多可有4个分区,并且所有这4个分区都可以是主分区,一个主分区能被格式化成一个单独的逻辑驱动器(而非多个逻辑驱动器).
    在计算机第一个硬盘上的任何一个主分区都可以指定为活动分区.激活分区很重要,因为在计算机启动时,它试从计算机的第一个硬盘上的活动主分区上加载操作系统,Windows2000的操作系统分区必须位于计算机的第一个硬盘上的活动主分区中.
      一个硬盘上只能有一个扩展分区.扩展分区不能被标识为活动分区,并且不能作为—台计算机的系统分区.
    扩展分区能够格式化成一个或多个逻辑驱动器,每一个分区被赋予不同的驱动器符.逻辑驱动器能被格式化成FAT或者NTFS格式.用户可以使一个逻辑驱动器格式化为FAT格式,而将另一个位于同一扩展分区的逻辑驱动器格式化为NTFS格式.
      扩展分区很方便地将一个物理驱动器分割成4个以上的逻辑驱动器。


      分区的最小单位通常为柱面。每组分区记录了起始与与结束的柱面号码。那么只能划分4个分区吗?当然不会啦。

      EBR(extended boot record)或者说EPBR(extended partion boot record)实现了多个分区,EBR在第一个扩展分区的第一个扇区,该扩展分区可以被细分为多个逻辑分区。

      所以扩展分区只是用来记录分区信息的,能够存储数据的只有主分区和逻辑分区。

      2、GPT(GUID partition table ,globally unique identifier,GUID):

    它是可扩展固件接口EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主引导记录(MBR)分区表。

      因为过去一个扇区大小就是 512Bytes 而已,不过目前已经有 4K 的扇区设计出现!为了相容于所有的磁盘,因此在扇区的定义上面, 大多会使用所谓的逻辑区块位址(Logical Block Address, LBA)来处理。GPT 将磁盘所有区块以此 LBA(默认为 512Bytes 喔!) 来规划,而第一个 LBA 称为 LBA0 (从 0 开始编号)。

      与 MBR 仅使用第一个 512Bytes 区块来纪录不同, GPT 使用了 34 个 LBA 区块来纪录分区信息!同时与过去 MBR 仅有一的区块,被干掉就死光光的情况不同, GPT 除了前面 34 个LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份!

      

      LBA0 (MBR 相容区块)

    • 前 446 Bytes 与MBR类似,储存了第一阶段的开机管理程序(启动过程下文会提到)。
    • MBR原本的分区表的记录区内,放入一个特殊标志的分区,用来表示此磁盘为 GPT 格式。 不支持GPT 分区表的磁盘管理程序就无法识别。


      LBA1 (GPT 表头纪录)

    • 纪录了分区表本身的位置与大小。
    • 纪录了备份用的 GPT 分区 (最后 34 个 LBA 区块) 放置的位置。
    • 放置了分区表的检验机制(CRC32),操作系统可以根据这个检验码来判断 GPT 是否正确。若有错误,可以通过这个纪录区来取得备份的 GPT(磁盘最后的那个备份区块) 来恢复 GPT 的正常运行。


      LBA2-33 (实际纪录分区信息处)

      • 从 LBA2 区块开始,每个 LBA 都可以纪录 4 笔分区纪录,默认的情况下,总共可以有 4*32(分区记录LBA数量) = 128 笔分区纪录。
      • 除了每笔纪录所需要的识别码与相关的纪录之外,GPT 在每笔纪录中分别提供了 64bits 来记载开始/结束的扇区号码。
      • 对于每个扇区大小为512字节的磁盘,那意味着可以有9.4ZB(9.4 x 10^21字节)或18 E 个512字节(9,444,732,965,739,290,426,880字节 或 18,446,744,073,709,551,615(2^64-1)个扇区 x 512(=2^9)字节每扇区)。
      • GPT 分区已经没有所谓的主、延伸、逻辑 
        分区的概念,每笔纪录都可以独立存在, 每个都可以视为是主分区并格式化使用。

      

  • 相关阅读:
    盒子模型
    flex布局
    less基本使用
    vue全局配置(引入全局方法样式、按需加载elementui)
    vue性能优化
    vue实现原理
    webapi读取配置文件内容
    命令行启动dotnet core项目
    Linux常用命令
    sqlserver数据库密码忘记了,如何重置?
  • 原文地址:https://www.cnblogs.com/ls11736/p/9377169.html
Copyright © 2020-2023  润新知