写点什么

Parted 创建 GPT 分区

用户头像
耳东
关注
发布于: 4 小时前

对于磁盘的分区表 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 分区。


parted /dev/sdb print 
复制代码

交互模式

parted [option] device 进入交互模式。尤其是对 parted 命令不是很熟悉的情况下建议使用交互模式。


parted /dev/sdb 
复制代码

parted 命令常用选项

进入 交互模式下, 输入 help 可以看到如下提示,本文基于 Parted 3.2 进行说明。


test@test01:~$ sudo parted /dev/sdbGNU Parted 3.2使用 /dev/sdb欢迎使用 GNU Parted! 输入 'help'可获得命令列表.(parted) help  align-check TYPE N                        check partition N for TYPE(min|opt) alignment  help [COMMAND]                           print general help, or help on COMMAND  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)  mkpart 分区类型 [文件系统类型] 起始点 终止点      创建一个分区  name NUMBER 名称               将编号为NUMBER 的分区命名为“名称”  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space,        all found partitions, or a particular partition  quit                          退出程序  rescue 起始点 终止点  挽救临近“起始点”、“终止点”的遗失的分区  resizepart NUMBER END                    resize partition NUMBER  rm MINOR                      删除编号为 MINOR 的分区  选择设备  选择要编辑的设备  disk_set FLAG STATE                      change the FLAG on selected device  disk_toggle [FLAG]                       toggle the state of FLAG on selected device  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER  toggle [NUMBER [FLAG]]                   切换分区 NUMBER 的 FLAG 标记  unit UNIT                                set the default unit to UNIT  version                                  display the version number and copyright information of GNU        Parted(parted)
复制代码


比较常用的几个选项是


  • help 打印帮助信息

  • print 输出分区信息

  • mklabel 创建分区表, 即是使用 msdos(MBR)还是使用 gpt,或者是其他方式分区表

  • mkpart 创建新分区格式:mkpart PART-TYPE START ENDPART-TYPE 类型主要有 primary(主分区), extended(扩展分区), logical(逻辑区). 扩展分区和逻辑分区只对 msdos。

  • rm 删除一个分区

  • resizepart 调整指定的分区的大小

  • quit 退出该交互界面

对磁盘进行分区

首先对于容量较大的磁盘使用 fdisk 工具会得到如下提示:


test@test01:~$ sudo fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.31.1)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。
设备不包含可识别的分区表。The size of this disk is 3.7 TiB (4000787030016 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).
创建了一个磁盘标识符为 0x9f682389 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):
复制代码


这个时候我们就需要更新 parted 来对磁盘进行分区。

更改分区表

操作如下:


(parted) mklabel gpt(parted) printModel: ATA ST4000DM004-2CV1 (scsi)磁盘 /dev/sdb: 4001GBSector size (logical/physical): 512B/4096B分区表:gptDisk Flags:
数字 开始: End 大小 文件系统 Name 标志
(parted)
复制代码

创建分区

使用 mkpart 创建自己需要的大小的分区


(parted) mkpart primary 0 4TB(parted) pModel: ATA ST4000DM004-2CV1 (scsi)磁盘 /dev/sdb: 4001GBSector size (logical/physical): 512B/4096B分区表:gptDisk Flags:
数字 开始: End 大小 文件系统 Name 标志 1 1049kB 4001GB 4001GB primary
(parted)
复制代码


创建好以后退出。


parted 的每一个操作都是即时生效,和 fdisk 不同,fdisk 只有在最后使用 w 进行保存以后才会生效 。

格式化分区

格式化成你需要的文件系统。


mkfs.ext4 /dev/sdb1
复制代码


整个分区创建过程就结束了。

对齐分区以得到最优性能

当分区不对齐时,parted 会提示如下


警告: The resulting partition is not properly aligned for best performance.忽略/Ignore/放弃/Cancel?
复制代码


对于这个提示,只要分区对齐就好。如果你的设计,就是要不对齐,那么可以忽略这个提示。


对齐分区有两个方法,


方法一,使用百分比来表示要分区的的空间大小,那么到 100%的时候自然是对齐的。示例如下:


(parted) mkpart primary 0% 100%(parted) pModel: ATA ST4000DM004-2CV1 (scsi)磁盘 /dev/sdb: 4001GBSector size (logical/physical): 512B/4096B分区表:gptDisk Flags:
数字 开始: End 大小 文件系统 Name 标志 1 1049kB 4001GB 4001GB primary
(parted)
复制代码


方法二,如果是使用容量来进行空间大小的话,那么 -1 这个值代表的是最后的位置。示例如下:


(parted) mkpart primary 0TB -1(parted) pModel: ATA ST4000DM004-2CV1 (scsi)磁盘 /dev/sdb: 4001GBSector size (logical/physical): 512B/4096B分区表:gptDisk Flags:
数字 开始: End 大小 文件系统 Name 标志 1 1049kB 4001GB 4001GB primary
(parted)
复制代码


方法三,手动进行计算。


下边这篇博客的作者描述了如何计算磁盘的扇区来保证分区对齐。


https://rainbow.chard.org/2013/01/30/how-to-align-partitions-for-best-performance-using-parted/

发布于: 4 小时前阅读数: 3
用户头像

耳东

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
Parted 创建 GPT 分区