分区表格式

分区表格式

百度百科-主引导记录

百度百科-全局唯一标识分区表

参考《鸟哥的Linux私房菜基础学习篇》

MBR

Master Boot Record,主要开机记录区,主要存放在磁盘的第一个扇区,这个扇区大小通常是512Bytes,主要存放两种数据:

  • 主要开机记录区(MBR):可以安装启动引导程序,大小为446Bytes

    启动引导程序功能:

    • 加载操作系统内核

    • 存在多系统时,在开机的时候提供一个菜单,让用户选择启动哪个系统

    • 调用其他的启动引导程序

      注:双系统一般安装在磁盘的不同的分区中,每个分区会分出一个扇区,称作引导扇区(Boot Sector),在这也可以安装启动引导程序

  • 分区表(Partition Table):记录分区信息,大小为64Bytes,即最多能有四组分区,分区类型包含主分区和扩展分区;系统写入数据到磁盘时会查看分区信息,这样才能针对指定分区进行数据处理

    每个分区记录分别使用32bits(4Bytes)来记载开始/结束的扇区号码;即单一分区的最大容量限制为:232 * 512Bytes = 231 *

    1KBytes = 2TB,硬盘厂商按照1000进位则大为2199023255552Bytes,即2.199TB,约为2.2TB,即最多2.2TB

注:剩余两个字节为55AA结束标志符

主引导记录:

偏移地址字节数内容
00446启动代码
44616分区项1
46216分区项2
47816分区项3
49416分区项4
5102结束标志55AA

分区记录信息:

偏移地址字节数内容
01分区状态,0:inactive,1:active
13分区起始地址(H/S/C,柱面/扇区/磁头号)
41文件系统类型,FAT32:0x0B,0x0C,扩展分区:0x0F,0x05,NTFS:0x07
53分区结束地址(H/S/C,柱面/扇区/磁头号)
84分区起始逻辑扇区,逻辑扇区编号
C4分区占有的总扇区数
分区的意义
  • 保证数据安全:每个分区的数据时分开的,如果要重装系统,可以将重要数据拷贝到其他分区,避免数据丢失
  • 系统性能:每个分区的数据都集中在磁盘某个柱面的区段中,这样在操作这个分区的数据时,磁盘只会在这个区段查找或写入数据
使用扩展分区在磁盘上创建4个以上分区
  • 使用扩展分区创建4个以上分区,可以使P + P + P + E,分配完P的空间后,磁盘剩余空间全部分给E,在扩展分区中创建逻辑分区

  • 设备文件名/dev/sda1-4是预留给主分区和扩展分区的,逻辑分区从/dev/sda5开始

主分区、扩展分区、逻辑分区定义
  • 扩展分区只能存在一个(系统限制)
  • 扩展分区使用额外的扇区来记录逻辑分区的分区信息,本身不能进行格式化
  • 实际上扩展分区并不是只占一个区块,而是使用每个分区的最前面几个扇区来记载分区信息
  • 逻辑分区是由扩展分区切割出来的分区
  • 主分区和逻辑分区可以存取数据,可以被格式化
  • 逻辑分区的数量限制在不用系统是不一样的
存在问题
  • 每组分区表仅有16Bytes,可以记录的信息很少,操作系统无法抓取到2.2TB以上的磁盘
  • MBR仅有一个区块,被破坏后,导致磁盘不可用且很难恢复
  • MBR存放启动引导程序仅有446Bytes,无法容纳较大的程序

GPT

过去一个扇区是512Bytes,但是目前已经有4k的扇区,所有为了兼容所有磁盘,使用逻辑区块位址(Logical Block Address, LBA)来处理扇区的定义,GPT将磁盘所有区块以LBA来规划。

与MBR不同,GPT使用34个LBA区块来记录分区信息,其中第一个扇区仍用作MBR,之后才是GPT的头,并且还会使用最后33个LBA来做一个分区表的备份,避免分区表损坏的风险
在这里插入图片描述

LBA 0

与传统的MBR兼容,也被称为保护性MBR,一部分就是446Bytes的开机引导程序,第二部分就是分区表数,这里只放了一个特殊标志的分区,使得一些不认识GPT的磁盘管理程序,不会对这个磁盘继续操作,而不是将其当成一个未分区的磁盘;除非用户需要处理这个磁盘,否则该管理工具不能修改分区信息,达到保护磁盘的作用

LBA 1

GPT分区表头,记录了分区表本身的位置和大小,以及备份分区表的位置,还储存着它本身和分区表的CRC32校验;

固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错,如果出错了,可以使用软件从硬盘最后的备份GPT中恢复整个分区表,如果备份GPT也校验错误,硬盘将不可使用。所以GPT硬盘的分区表不可以直接使用16进制编辑器修改

分区表头:

起始字节长度内容
08字节签名(“EFI PART”)
84字节修订
124字节分区表头的大小
164字节分区表头(第0-91字节)的CRC32校验,在计算时,把这个字段作为0处理,需要计算出分区串行的CRC32校验后再计算本字段
204字节保留,必须是 0
248字节当前LBA(这个分区表头的位置)
328字节备份LBA(另一个分区表头的位置)
408字节第一个可用于分区的LBA(主分区表的最后一个LBA + 1)
488字节最后一个可用于分区的LBA(备份分区表的第一个LBA − 1)
5616字节硬盘GUID(在类UNIX系统中也叫UUID
728字节分区表项的起始LBA(在主分区表中是2)
804字节分区表项的数量
844字节一个分区表项的大小(通常是128)
884字节分区串行的CRC32校验
92*保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节)
LBA 2-33

存放分区记录信息,每个LBA可以存放4个分区记录信息,所以默认情况下可以存放4 * 32 = 128个分区记录信息;

每个分区记录分别使用64bits(8Bytes)来记载开始/结束的扇区号码;即单一分区的最大容量限制为:264 * 512Bytes = 263 *

1KBytes = 233*TB = 8 ZB;1ZB = 230TB

分区记录信息:

起始字节长度内容
016字节分区类型GUID
1616字节分区GUID
328字节起始LBA(小端格式)
408字节末尾LBA
488字节属性标签(如:60表示"只读")
5672字节分区名(可以包括36个UTF-16(小端格式)字符)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值