磁盘分区

磁盘分区

Windows的磁盘分区

windows中磁盘分区比较直观,可能会将一个磁盘划分成C,D,E,F盘,C,D,E,F就是分区。

在这里插入图片描述

linux的磁盘分区

linux下一切皆文件的概念来说,磁盘也就是一个特殊的文件。

正常的物理机器使用的都是/dev/sd[a-p]的磁盘文件名,至于虚拟环境中,为了加速,可能会使用/dev/vd[a-p]的文件名。

磁盘的划分和其物理构造有很大的关系,磁盘主要由碟片、机械手臂、磁头、主轴马达组成。

碟片上可以细分出扇区与磁道两种单位,其中扇区的物理大小有两种设计,分别是512字节与4K字节。

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

MBR

所有碟片的同一磁道我们称之为“柱面”,柱面是文件系统的最小单位,也就是分区的最小单位。

早期Linux为了兼容Windows的磁盘,因此使用的是支持Windows的MBR的方式来处理启动引导程序与分区表。启动引导程序及录取与分区表则统统放在磁盘的第一个扇区,这个扇区通常是512字节大小。

第一扇区的512字节会包含两个东西:

  • 主引导记录(MBR),可以安装启动引导程序的地方,有446字节。
  • 分区表,记录整块硬盘分区的状态,有64字节。

由于分区表所在部分只占了64字节,因此最多仅能有四组及录取,每组记录区记录了该区段的起始与结束的柱面号码。

将柱面以柱形图来看,即把每个柱面拆为矩形:

假设硬盘有400个柱面,共划分为四个分区。

在这里插入图片描述

对与Windows来说,上面四分区就相当于C、D、E、F四个,当数据要写入F时,就相当于数据会被写入301-400号柱面之间。

由于64字节的限制,最多只能容纳四组分区记录,这四个分区的记录被称为主要(Primary)或者扩展(Extended)分区。

当然这不代表只能划分出四个分区,你可以将一块硬盘划分成十个以上的分区。用到扩展分区的方式来处理。

扩展分区的意思是,既然第一个扇区所在的分区表只能记录四组数据,那可利用额外的扇区来记录更多的分区信息,如下图:

在这里插入图片描述

逻辑分区属于扩展分区,扩展分区属于主分区。

由扩展分区继续划分出来的分区,被称为逻辑分区,逻辑分区的设备号名称号码是由5开始的。

MBR、主要分区、扩展分区、逻辑分区的特性简单定义:

  • 主要分区与扩展分区最多可以由四个(硬盘的限制),如3个主要分区,1个扩展分区。
  • 扩展分区最多只能有一个(操作系统的限制)。
  • 逻辑分区是由扩展分区持续划分出来的分区。
  • 能够被格式化后作为数据存取的分区是主要分区和逻辑分区,扩展分区无法格式化。
  • 逻辑分区的数量依赖操作系统而不同,子啊linux系统中SATA硬盘已经可以突破63个以上的分区限制。

过去MBR分区表的限制中经常可以发现如下问题:

  • 操作系统无法使用2.2TB以上的磁盘容量。
  • MBR仅有一个区块(一个只有512字节的区块),若被破坏后,经常无法或很难恢复。
  • MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码。

GPT

为了兼容所有的磁盘,在扇区定义上面,大多会采用所谓的逻辑区块地址(Logical Block Address, LBA)来处理。GPT将磁盘的所有区块以LBA(默认为512字节)来规划,第一个LBA称为LBA0(从0开始编号)。

与MBR仅使用第一个512字节区块来记录不同,GPT使用了34个LBA区块来记录分区信息,除了前面34LBA区块外,整个磁盘的最后34个LBA也拿来做备份。

在这里插入图片描述

上图的解释说明:

  1. LBA0(MBR 兼容区块)

    与MBR模式相似,也分两部分,一个跟之间446字节相似的区块,存储第一阶段的启动引导程序。而在原本的分区表记录内,这个兼容模式仅放入一个特殊标识符,用来表示此磁盘为 GPT 格式之意。对于不懂 GPT 分区表磁盘管理程序,就不会认识这块磁盘,就不能修改此分区信息,进一步保护了磁盘。

  2. LBA1(GPT 表头记录)

    这部分记录了分区表本身的位置和大小,同时记录了备份用的 GPT 分区放置的位置,同时放置了分区表的校验码(CRC32),操作系统可以根据这个校验码来判断 GPT 是否正确,若失败可以读取备份来恢复。

  3. LBA2~LBA33(实际记录分区信息处)

    从LBA2开始,每个LBA都可以记录四组分区记录,所以默认情况下总共可以有4*32=128组分区记录。每组记录可以用到128字节的空间。

GPT分区已经没有所谓的主、扩展、逻辑分区的概念,每组记录都可以独立存在,当然每个都可以视为是主要分区,每一个分区都可以拿来格式化使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值