Linux 使用 Parted 进行磁盘分区
在 Linux 中,为磁盘分区通常使用 fdisk 和 parted 命令。通常情况下,使用 fdisk 可以满足日常的使用,但是它仅仅支持 2 TB 以下磁盘的分区,超出 2 TB 部分无法识别。
而随着科技的进步,大容量硬盘已经步入我们的生活,10 TB 的 HDD 和 30 TB 的 SSD 也已面世,无论是家用还是商用领域 SSD 的容量和价格都更加充满吸引力。
仅仅能识别 2 TB 的 fdisk 很明显无法满足需求了,于是乎 parted & GPT 磁盘成为了绝佳的搭配。本文主要介绍使用 parted 为 MBR 以及 GPT 磁盘分区的方法,也算是作为备忘。
磁盘分区
在一块物理磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。
在Windows操作系统中可以可以将一块物理磁盘划分为逻辑上的C盘D盘E盘。
在 Linux 系统中,一块物理磁盘,往往以块设备的形式出现,Linux 系统中“一切皆文件”。每个设备,在 /dev 目录中都有对一个设备文件(device file),比如:
- /dev/sda 表示操作系统识别到的第一块 SCSI/IDE 盘(通常是物理机)
- /dev/vda 表示操作系统识别到的第一个 virtio 磁盘(通常是虚拟机)
磁盘分区信息存储的两种形式
常见磁盘分区存储形式类型有两种:MBR(MSDOS) 和 GPT
什么是 MBR
MBR(Master Boot Record,主引导记录)。
MBR 是存在于驱动器最开始部分的一个特殊的启动扇区(磁道0柱面1扇区),一般叫它 0 扇区。
它由 446B (446字节)的启动加载器(Windows 和 Linux 的不同),64B (64字节)的分区表,和 2B 用来存放区域的有效性标识 55AA,共 512B。
MBR 中一个硬盘分区最大只支持 2T
在分区表中每 16B 标识一个分区,包括分区的活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目 (4 个字节)、分区总扇区数目(4 个字节) 等信息。
分区总扇区数目决定了这一分区的大小,一个扇区一般 512B,所以 4 个字节,32 位所能表示的最大扇区数为 2 的 32 次方。
也就决定了一个分区的大小最大为 2T( 2*_32 _512 / 1024 / 1024 / 1024 /1024)。
MBR 只支持最多 4 个主分区
16B 标识一个分区,64B 就一共只能有 4 个分区,所以主分区最多只能有 4 个。一块磁盘如果要分多于 4 个分区,必须要分一个扩展分区,然后在扩展分区中再去划分逻辑分区。