移动硬盘选mbr还是gpt |
您所在的位置:网站首页 › mbr和gpt区别哪个好 › 移动硬盘选mbr还是gpt |
一、磁盘结构
原本硬盘的扇区都是设计成512B的大小,但随着硬盘容量的增大,为了减少数据量的拆解,目前绝大多数的高容量硬盘使用了4K大小的扇区设计。 为什么要分区? 1.数据的安全性 每个分区的数据是分开存储的,当要对某个分区的数据进行整理时,不会影响到其它分区。例如对安装有Windows系统的C盘进行重装时,对其它分区如D盘、E盘中的数据不会产生影响。2.系统的性能 某个分区处在特定范围的柱面范围内,当要在该分区内读取数据时,只需要在其柱面范围内检索,由于数据较为集中,所以读取速度和性能较高。主要的分区格式有早期的MBR格式和新的GPT格式。 二、分区格式 1、MBR (1)简介MBR分区格式中柱面是文件系统的最小单位,也就是分区的最小单位。 第一个扇区(旧式磁盘中为512字节)中存放着启动引导程序和分区表: 主引导记录(Master Boot Record, MBR):可以安装启动引导程序的地方,有446字节;分区表(partition table):记录整块硬盘分区的状态,有64字节。分区表64字节最多仅能有四组记录区,每个记录区16字节。 总结: 所谓的分区就是针对64字节的分区表进行设置而已。磁盘默认的分区表仅能写入四组分区信息,每组记录区记录了该区段的起始与结束的柱面号码。这四个分区的记录被称为主要(Primary)分区或扩展(Extended)分区。当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理。 (2)扩展分区和逻辑分区:扩展分区的目的是使用额外的扇区来记录分区的信息,扩展分区本身并不能被拿来格式化。 扩展分区可以继续划分出逻辑分区(logical partition)。 /dev/sda[1-4] 都是留给主分区或扩展分区用的,所以逻辑分区的设备文件名就从 sda5 开始。 总结: 主分区和扩展分区最多可以有4个(硬盘限制)。扩展分区最多只能有1个(操作系统限制)。逻辑分区是由扩展分区持续划分出来的分区。能够被格式化后作为数据存取的分区是主分区和逻辑分区,扩展分区无法格式化。逻辑分区的数量依操作系统而不同,在Linux中SATA硬盘已经可以突破63个以上的分区限制。一般建议将扩展分区的柱面号码分配到最后的柱面内。MBR模式简略图: 分区表组最后4个字节表示分区中的扇区数量,有4*8=32位,最大值为 20+21+ … +231 = 232-1 个扇区,每个扇区大小为512字节,所以能表示的最大容量为 : ( 2 32 − 1 ) ∗ 512 = 2199023255040 b y t e s = 2048 G B = 2 T B (2^{32}-1) * 512= 2199023255040 \, bytes = 2048 \, GB = 2 \, TB (232−1)∗512=2199023255040bytes=2048GB=2TB注意这里是用1:1024换算的,硬盘制造商使用1:1000换算,所以就会得出2.2TB的结果。 2TB是对单一分区容量的限制,如果第一个分区就占了2TB,那么其第二个分区的扇区物理地址就无法表示了,所以2TB也是对整个硬盘最大容量的限制。 详细说明见Wiki页面:https://zh.wikipedia.org/wiki/Master_boot_record MBR的弊端: 操作系统无法使用2.2TB以上的磁盘容量。MBR仅有一个区块,被破坏后经常无法或很难恢复。MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码。 2、GPT (1)简介如今扇区大小不仅有512字节的,还有4K大小的。为了兼容所有的磁盘,使用逻辑区块地址(Logical Block Address,LBA)来处理扇区。GPT将硬盘所有区块以LBA(默认512字节)来规划,第一个LBA称为LBA0。 与MBR仅使用第一个512字节来记录不同,GPT使用了34个LBA来记录分区信息。相比于MBR中只有一个区块记录分区信息,GPT除了前面34个LBA记录以外,整个磁盘的最后34个LBA也拿来做备份。 LBA0(MBR兼容模块) 出于兼容性考虑存储了一份传统MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。 分为两个部分,第一个是前面446字节,用来存储第一阶段的启动引导程序。而在原本的分区表的记录区内,这个兼容模式仅放入了一个特殊字符来表示此磁盘为GPT格式之意。 在使用 MBR/GPT 混合分区表的硬盘中,这部分存储了GPT分区表的一部分分区(通常是前四个分区),可以使不支持从GPT启动的操作系统从这个MBR启动,启动后只能操作MBR分区表中的分区。 LBA1(GPT表头记录) 记录了分区表本身的位置和大小,也记录了备份用的GPT分区(最后34个LBA区块)放置的位置。同时放置了分区表的校验码(CRC32),操作系统可以根据这个校验码来判断GPT是否正确。若有错误可以通过这个记录区来获取备份的GPT(磁盘最后面的备份区块)来恢复正常。 LBA[2-33](实际记录分区信息处) 从LBA2区块开始,每个LBA都可以记录4组分区记录,所以在默认情况下,总共有4*32=128组分区记录。每组记录用到128字节的空间。 起始字节长度内容016字节分区类型GUID1616字节分区GUID328字节起始LBA(小端序)408字节末尾LBA488字节属性标签(如:60表示“只读”)5672字节分区名(可以包括36个UTF-16(小端序)字符)(16+16+8+8+8+72=128) (3)GPT分区大小限制:GPT 在每组记录中分别提供了 8字节 = 64位 来记载开始/结束的扇区号码。因此,理论上对于单一分区槽来说, 它的最大容量限制为 264 * 512bytes = 263 Kbytes = 233TB = 8 ZB 。但是受操作系统限制,一般一个分区最大限制为 18EB。 GPT 分区没有所谓的主、扩展、逻辑分区的概念,每个都可以视为是主分区,每一个分区都可以格式化。 GPT 分区默认可以提供多达128 组纪录,而在Linux 本身的内核设备记录中,针对单一磁盘来说,虽然过去最多只能到达15 个分区,不过由于Linux 内核通过udev 等方式的处理,现在Linux 也已经没有这个限制了。 参考链接:1.https://en.wikipedia.org/wiki/GUID_Partition_Table 2.https://docs.microsoft.com/en-us/troubleshoot/windows-server/backup-and-storage/guid-partitioning-table-disk-faq |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |