对于磁盘的分区表 MBR与GPT区别。
MBR:MBR分区表(即主引导记录)大家都很熟悉,是过去我们使用windows时常用的。
所支持的最大卷:2T,而且对分区有限制:最多4个主分区或3个主分区加一个扩展分区
GPT: GPT(即GUID分区表)。是源自EFI标准的一种较新的磁盘分区表结构的标准,是未来磁盘分区的主要形式。与MBR分区方式相比,具有如下优点。
突破MBR 4个主分区限制,每个磁盘最多支持128个分区。支持大于2T的分区,最大卷可达18EB。
对于 GPT 的分区,建议使用 parted 工具进行分区,fdisk 在 GPT 这块不是很好。
Parted 介绍
Parted 命令分为两种模式:命令行模式和交互模式。
命令行模式
parted [option] device [command] ,该模式可以直接在命令行下对磁盘进行分区操作,比较适合编程应用。如:
显示磁盘/dev/sdb分区。
1 | parted /dev/sdb print |
交互模式
parted [option] device 进入交互模式。尤其是对 parted 命令不是很熟悉的情况下建议使用交互模式。
1 | parted /dev/sdb |
parted命令常用选项
进入 交互模式下, 输入 help
可以看到如下提示,本文基于 Parted 3.2 进行说明。
1 | test@test01:~$ sudo parted /dev/sdb |
比较常用的几个选项是
- help 打印帮助信息
- print 输出分区信息
- mklabel 创建分区表, 即是使用msdos(MBR)还是使用gpt,或者是其他方式分区表
- mkpart 创建新分区
格式:mkpart PART-TYPE START END
PART-TYPE类型主要有primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对msdos。 - rm 删除一个分区
- resizepart 调整指定的分区的大小
- quit 退出该交互界面
对磁盘进行分区
首先对于容量较大的磁盘使用 fdisk 工具会得到如下提示:
1 | test@test01:~$ sudo fdisk /dev/sdb |
这个时候我们就需要更新 parted 来对磁盘进行分区。
更改分区表
操作如下:
1 | (parted) mklabel gpt |
创建分区
使用 mkpart 创建自己需要的大小的分区
1 | (parted) mkpart primary 0 4TB |
创建好以后退出。
parted 的每一个操作都是即时生效,和 fdisk 不同,fdisk 只有在最后使用
w
进行保存以后才会生效 。
格式化分区
格式化成你需要的文件系统。
1 | mkfs.ext4 /dev/sdb1 |
整个分区创建过程就结束了。
对齐分区以得到最优性能
当分区不对齐时,parted 会提示如下
1 | 警告: The resulting partition is not properly aligned for best performance. |
对于这个提示,只要分区对齐就好。如果你的设计,就是要不对齐,那么可以忽略这个提示。
对齐分区有两个方法,
方法一,使用百分比来表示要分区的的空间大小,那么到100%的时候自然是对齐的。示例如下:
1 | (parted) mkpart primary 0% 100% |
方法二,如果是使用容量来进行空间大小的话,那么 -1
这个值代表的是最后的位置。示例如下:
1 | (parted) mkpart primary 0TB -1 |
方法三,手动进行计算。
下边这篇博客的作者描述了如何计算磁盘的扇区来保证分区对齐。
https://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/
======================
Erdong, A Linux user !