0%

linux扩容分区

网上搜索磁盘分区相关的资料一搜一大把,自己又重新整了一遍主要为了自己再复习一遍,同时整理成自己的东西。

以前一直都是写写应用层代码开发,做一些应用层相关的工作,对于操作系统底层相关的 东西没有太多的接触,最近做了一个升级dpdk的工作跟底层接触比较多,诸如网卡、pci地址,总线相关、cpu相关,大页内存等等,以及后期制作镜像等等,一人分饰几个角色,接触的东西比较多,特意去研究了下相关的技术栈。

MBR与GPT区别

  • MBR是Master Boot Record的简写,
image-20220123090236532

传统的MBR分区

要了解MBR分区我们需要先对MBR分区的分区结构有一个基本的了解。

​ Structure of a classical generic MBR

MBR分区的结构在0柱面0扇区,第一个扇区512字节(bytes)是MBR的引导分区。

主引导程序(boot loader)占用446字节,可以安装引导加载程序。

主分区表(partition table): 64 bytes,记录整块磁盘的分区状态,每一个分区使用16字节标识,所以MBR最多是只有4个主分区。如果需要超过4个分区,就需要使用扩展分区。

image-20220214222307182

16字节的分区结构表中,其中总扇区数是4字节

2^32=4294967296

标准扇区大小为512字节

能表示最大的容量为:4294967296*512=2.1990233+12字节

所以MBR最大只能表示2T。

剩下的两个字节是结束标志:0x55AA ,标识MBR分区有效。

GPT分区

GPT支持多达128个分区,每个分区大小为128字节,分区大小采用8字节的长度存储,所以理论上可支持2^64*512大小。

1
2
3
# 列出块设备的信息
lsblk
#

reference

[1] https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout

[2] https://www.mustbegeek.com/difference-between-mbr-and-gpt/

小主,路过打个赏再走呗~