美文网首页
Linux磁盘分区

Linux磁盘分区

作者: ywhu | 来源:发表于2018-04-22 14:09 被阅读0次

磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成,而数据的写入其实是在磁盘盘上面。

磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位,其中扇区的物理量设计有两种大小,分别是 512bytes 与 4Kbytes。

早期磁盘第一个扇区里面含有的重要信息我们称为 MBR (Master Boot Record)格式,但是由于近年来磁盘的容量不断扩大,造成读写上的一些困扰,甚至有些大于 2TB以上的磁盘分区已经让某些操作系统无法存取。因此后来又多了一个新的磁盘分区格式,称为 GPT (GUID partition table)

MSDOS(MBR) 与 GPT 磁盘分区表(partition table)

MSDOS (MBR) 分区表格式与限制

早期的 Linux 系统为了兼容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master Boot Record, 主要开机纪录区) 的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则
通通放在磁盘的第一个扇区, 这个扇区通常是 512bytes 的大小 ,
所以说,第一个扇区 512bytes 会有这两个数据:

  • 主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有 446 bytes
  • 分区表(partition table):记录整颗硬盘分区的状态,有 64 bytes

由于分区表就只有 64 bytes 而已,最多只能容纳四笔分区的记录, 这四个分区的记录被称为主要(Primary)或延伸(Extended)分区槽。

由于分区表所在区块仅有 64 bytes 容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码


上图中我们假设硬盘只有 400 个磁柱,共分区成为四个分区槽,第四个分区槽所在为第 301 到 400号磁柱的范围。 当你的操作系统为 Windows 时,那么第一到第四个分区槽的代号应该就是 C, D, E, F。
当你有资料要写入 F 槽时, 你的数据会被写入这颗磁盘的 301~400 号磁柱之间的意思。

主要分区、延伸分区与逻辑分区

  • 主要分区与延伸分区最多可以有四笔(硬盘的限制)
  • 延伸分区最多只能有一个(操作系统的限制)
  • 逻辑分区是由延伸分区持续切割出来的分区槽;
  • 能够被格式化后,作为数据存取的分区槽为主要分区与逻辑分区。延伸分区无法格式化;
  • 逻辑分区的数量依操作系统而不同,在 Linux 系统中 SATA 硬盘已经可以突破 63 个以上的分区限制;

例如:
如果我想将一颗大硬盘『暂时』 分区成为四个 partitions,同时还有其他的剩余容量可以让我在未来的时候进行规划, 我能不能分区出四个 Primary?若不行,那么你建议该如何分区?

答:

  • 由于 Primary+Extended 最多只能有四个,其中 Extended 最多只能有一个,这个例题想要分区出四个分区槽且还要预留剩余容量, 因此 P+P+P+P 的分区方式是不适合的。 因为如果使用到四个 P,则即使硬盘还有剩余容量, 因为无法再继续分区,所以剩余容量就被浪费掉了。
  • 假设你想要将所有的四笔记录都花光,那么 P+P+P+E 是比较适合的。所以可以用的四个 partitions 有 3 个主要及一个逻辑分区, 剩余的容量在延伸分区中。
  • 如果你要分区超过 4 槽以上时,一定要有 Extended 分区槽,而且必须将所有剩下的空间都分配给 Extended,然后再以 logical 的分区来规划 Extended 的空间。 另外,考虑到磁盘的连续性,一般建议将 Extended 的磁柱号码分配在最后面的磁柱内。

实际可用的是/dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb5, /dev/sdb6, /dev/sdb7 这六个,至于/dev/sdb4 这个
延伸分区本身仅是提供来给逻辑分区槽建立之用。

MBR 分区表限制

  • 操作系统无法抓取到 2.2T 以上的磁盘容量!
  • MBR 仅有一个区块,若被破坏后,经常无法或很难救援。
  • MBR 内的存放开机管理程序的区块仅 446bytes,无法容纳较多的程序代码。

GUID partition table, GPT 磁盘分区表


与 MBR 仅使用第一个 512bytes 区块来纪录不同, GPT 使用了 34 个 LBA 区块来纪录分区信息!

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

  • LBA0 (MBR 相容区块)
    与 MBR 模式相似的,这个兼容区块也分为两个部份,一个就是跟之前 446 bytes 相似的区块, 储存了第一阶段的开机管理程序! 而在原本的分区表的纪录区内,这个兼容模式仅放入一个特殊标志的分区,用来表示此磁盘为 GPT 格式之意。而不懂 GPT 分区表的磁盘
    管理程序, 就不会认识这颗磁盘,除非用户有特别要求要处理这颗磁盘,否则该管理软件不能修改此分区信息,进一步保护了此磁盘喔!
  • LBA1 (GPT 表头纪录)
    这个部份纪录了分区表本身的位置与大小,同时纪录了备份用的 GPT 分区 (就是前面谈到的在最后 34 个 LBA 区块) 放置的位置, 同时放置了分区表的检验机制码 (CRC32),操作系统可以根据这个检验码来判断 GPT 是否正确。若有错误,还可以透过这个纪录区来
    取得备份的 GPT(磁盘最后的那个备份区块) 来恢复 GPT 的正常运作。
  • LBA2-33 (实际纪录分区信息处)
    从 LBA2 区块开始, 每个 LBA 都可以纪录 4 笔分区纪录,所以在默认的情况下,总共可以有 432 = 128 笔分区纪录喔!因为每个 LBA 有 512bytes,因此每笔纪录用到 128bytes 的空间,除了每笔纪录所需要的标识符与相关的纪录之外, GPT 在每笔纪录中分别提供了 64bits 来记载开始/结束的扇区号码,因此, GPT 分区表对于单一分区槽来说, 他的最大容量限制就会在『264 * 512bytes = 263 * 1Kbytes = 233TB = 8 ZB 』(1ZB =230TB )

GPT 分区预设可以提供多达 128 笔纪录! 此外, GPT 分区已经没有所谓的主、延伸、逻辑分区的概念,既然每笔纪录都可以独立存在, 当然每个都可以视为是主分区!每一个分区都可以拿来格式化使用

相关文章

  • 磁盘分区

    磁盘分区:linux磁盘分区主要分为三种:主磁盘分区、扩展磁盘分区、逻辑分区主分区:至少一个、最多4个,且主分区+...

  • 复习重点

    重点 主机规划与磁盘分区 各硬件装置在Linux中的文件名 p66 磁盘分区:课本例题 p67 磁盘分区表例...

  • Linux监控磁盘分区及使用情况的常用命令!

    Linux中监控磁盘分区及使用情况的命令有哪些?在Linux操作系统中,可用于监控磁盘分区及使用情况的命令有很多,...

  • linux入门常用指令

    ### linux磁盘分区 ![](./resources/a.jpg) #### boot分区 引导分区,存放引...

  • linux 挂载磁盘与分区lvm逻辑卷

    linux磁盘分区与挂载 1.1查看分区挂载情况,命令: 1.2创建新的磁盘分区 1.3保存分区表 1.4查看创建...

  • Linux常用命令之 - fdisk

    fdisk - Partition table manipulator for Linux 中文的意思是磁盘分区表...

  • linux文件系统

    Genaral windows使用磁盘分区等来进行管理,Linux下有文件管理标准FHS来进行规范。linux文件...

  • Linux基础知识有哪些

    Linux基础知识有哪些 一、Linux的磁盘分区及目录 Linux的配置是通过修改配置文件来完成。 1.1、Li...

  • Linux扩展分区和文件系统

    磁盘分区 linux也与windows一样,为了使用全部的磁盘空间,需要先对磁盘分区;如果所有分区的总容量小于磁盘...

  • 5 个免费的 Linux 分区管理器

    以下是我们推荐的 Linux 分区工具。它们能让你删除、添加、调整或缩放 Linux 系统上的磁盘分区。 通常,你...

网友评论

      本文标题:Linux磁盘分区

      本文链接:https://www.haomeiwen.com/subject/juxclftx.html