【Linux基础】parted命令详解:从入门到精通的磁盘分区管理完全指南
目录
前言
1 parted命令概述
1.1 什么是parted
1.2 parted与fdisk的对比
1.3 parted的主要优势
2 parted命令的安装与基本语法
2.1 在不同Linux发行版中安装parted
2.2 parted的基本语法
2.3 parted的工作模式
3 parted交互式命令详解
3.1 交互式操作流程
3.2 主要交互命令
3.3 分区表管理
3.3.1 创建分区表
3.3.2 查看分区表信息
3.4 分区创建与管理
3.4.1 创建分区
3.4.2 分区对齐优化
3.4.3 调整分区大小
3.4.4 删除分区
3.5 分区标志管理
4 parted非交互式操作
4.1 非交互式操作流程
4.2 常用非交互式命令
4.2.1 设备查看与分区表创建
4.2.2 分区创建与管理
4.2.3 分区标志设置
5 注意事项与常见问题
5.1 安全注意事项
5.2 常见错误及解决方案
5.3 性能优化建议
5.4 实践总结
6 总结
前言
在Linux系统管理中,磁盘分区是一项基础且至关重要的操作。虽然fdisk是最广为人知的分区工具,但随着现代存储设备容量的不断增大,fdisk在处理超过2TB的大容量磁盘时显得力不从心。而parted作为GNU组织开发的一款功能强大的磁盘分区工具,不仅支持大容量磁盘的分区,还提供了更灵活的分区管理功能。
1 parted命令概述
1.1 什么是parted
parted(Partition Editor)是由GNU组织开发的一款功能强大的磁盘分区和分区大小调整工具。它是一个灵活的命令行程序,支持多种分区表格式,能够创建、删除、调整和管理磁盘分区。
核心功能:
- 创建、删除、调整分区大小
- 支持MBR和GPT分区表格式
- 处理超过2TB的大容量磁盘
- 提供交互式和非交互式两种操作模式
- 支持多种文件系统类型
1.2 parted与fdisk的对比

- 容量评估:首先需要确定要分区的磁盘容量
- 工具选择:根据磁盘容量选择合适的分区工具
- 分区表选择:根据需求选择MBR或GPT分区表格式
- 执行操作:使用选定的工具进行具体的分区操作
1.3 parted的主要优势
特性 | 说明 |
大容量支持 | 支持超过2TB的分区,最大可达18EB |
灵活的分区管理 | 可以调整分区大小而不丢失数据 |
即时生效 | 大多数操作立即写入磁盘,无需额外确认 |
脚本支持 | 支持非交互式脚本模式,适合自动化 |
多种文件系统 | 支持ext2/3/4、xfs、btrfs、fat、ntfs等 |
2 parted命令的安装与基本语法
2.1 在不同Linux发行版中安装parted
- Ubuntu/Debian系统:
sudo apt update
sudo apt install parted
- CentOS/RHEL系统:
sudo yum install parted
# 或
sudo dnf install parted
- Arch Linux系统:
sudo pacman -S parted
2.2 parted的基本语法
parted [选项] [设备] [命令 [参数]...]
- 常用选项:
选项 | 说明 |
-l | 列出所有块设备的分区信息 |
-s | 脚本模式(非交互式) |
-a | 设置对齐类型(min/opt/none) |
-f | 抑制部分警告信息 |
-i | 交互模式(默认) |
-v | 显示版本信息 |
2.3 parted的工作模式
parted支持两种主要的工作模式:
- 交互式模式:进入parted的交互环境,逐条执行命令
- 非交互式模式:在命令行直接执行完整命令,适合脚本自动化
3 parted交互式命令详解
3.1 交互式操作流程

- 启动parted:使用parted /dev/sdX命令进入交互模式
- 选择设备:parted会自动选择指定的设备
- 创建/选择分区表:使用mklabel命令创建新的分区表
- 查看当前分区:使用print命令查看分区信息
- 执行操作:根据需要进行创建、调整、删除等操作
- 保存退出:使用quit命令退出parted
- 验证结果:使用fdisk -l或lsblk验证分区结果
3.2 主要交互命令
命令 | 功能 | 示例 |
help | 显示帮助信息 | help 或 help mkpart |
| 显示分区信息 | 或 print free |
mklabel | 创建分区表 | mklabel gpt |
mkpart | 创建分区 | mkpart primary ext4 1GB 10GB |
rm | 删除分区 | rm 1 |
resizepart | 调整分区大小 | resizepart 2 20GB |
set | 设置分区标志 | set 1 boot on |
unit | 设置显示单位 | unit GB |
quit | 退出parted | quit |
3.3 分区表管理
3.3.1 创建分区表
# 创建GPT分区表
(parted) mklabel gpt# 创建MBR分区表
(parted) mklabel msdos
注意事项:
- 创建新分区表会删除磁盘上所有现有数据
- GPT分区表支持超过2TB的分区
- MBR分区表最多支持4个主分区
3.3.2 查看分区表信息
# 显示完整分区信息
(parted) print# 显示空闲空间
(parted) print free# 显示设备信息
(parted) print devices
3.4 分区创建与管理
3.4.1 创建分区
# 创建主分区
(parted) mkpart primary ext4 1GB 10GB# 创建扩展分区(MBR)
(parted) mkpart extended 10GB 20GB# 创建逻辑分区(MBR)
(parted) mkpart logical 20GB 30GB# 使用百分比创建分区
(parted) mkpart primary ext4 0% 50%
(parted) mkpart primary ext4 50% 100%
参数说明:
- primary:主分区
- extended:扩展分区(仅MBR)
- logical:逻辑分区(仅MBR)
- ext4:文件系统类型(可选)
- 1GB:起始位置
- 10GB:结束位置
3.4.2 分区对齐优化

- 百分比方式:
(parted) mkpart primary ext4 0% 100%
- 1MiB偏移方式:
(parted) mkpart primary ext4 1MiB 100%
- 精确扇区计算:
# 查询对齐参数
cat /sys/block/sdb/queue/optimal_io_size
cat /sys/block/sdb/alignment_offset
cat /sys/block/sdb/queue/physical_block_size# 计算起始扇区
# optimal_io_size + alignment_offset / physical_block_size# 创建对齐分区
(parted) mkpart primary ext4 2560 100%
3.4.3 调整分区大小
# 调整分区大小
(parted) resizepart 2 20GB# 使用百分比调整
(parted) resizepart 2 80%
注意事项:
- 调整分区大小不会丢失数据,但需要文件系统支持
- 不能调整正在使用的分区
- 新大小不能超过磁盘容量
3.4.4 删除分区
# 删除指定分区
(parted) rm 1# 删除多个分区
(parted) rm 1
(parted) rm 2
3.5 分区标志管理

常用标志:
- boot:引导分区
- esp:EFI系统分区
- lvm:LVM物理卷
- raid:RAID分区
- swap:交换分区
- hidden:隐藏分区
- 设置示例:
# 设置启动标志
(parted) set 1 boot on# 设置LVM标志
(parted) set 2 lvm on# 清除标志
(parted) set 1 boot off
4 parted非交互式操作
4.1 非交互式操作流程

- 准备设备:确保目标设备未被挂载
- 创建分区表:使用mklabel命令创建分区表
- 创建分区:使用mkpart命令创建分区
- 设置标志:使用set命令设置分区标志
- 验证结果:使用parted -l查看分区信息
- 结束操作:完成所有分区操作
4.2 常用非交互式命令
4.2.1 设备查看与分区表创建
# 查看所有设备分区
sudo parted -l# 创建GPT分区表
sudo parted /dev/sdb mklabel gpt# 创建MBR分区表
sudo parted /dev/sdb mklabel msdos
4.2.2 分区创建与管理
# 创建主分区(脚本模式)
sudo parted -s /dev/sdb mkpart primary ext4 1MiB 10GiB# 创建扩展分区
sudo parted -s /dev/sdb mkpart extended 10GiB 20GiB# 创建逻辑分区
sudo parted -s /dev/sdb mkpart logical 20GiB 30GiB# 使用百分比创建
sudo parted -s /dev/sdb mkpart primary ext4 0% 50%# 调整分区大小
sudo parted -s /dev/sdb resizepart 2 20GiB# 删除分区
sudo parted -s /dev/sdb rm 1
4.2.3 分区标志设置
# 设置启动标志
sudo parted -s /dev/sda set 1 boot on# 设置ESP标志
sudo parted -s /dev/sda set 1 esp on# 设置LVM标志
sudo parted -s /dev/sda set 2 lvm on
5 注意事项与常见问题
5.1 安全注意事项
- 数据备份:分区操作可能导致数据丢失,务必提前备份
- 设备确认:确保操作正确的设备,避免误操作其他磁盘
- 分区使用中:不能修改已挂载的分区
- 电源稳定:避免在分区过程中断电,可能导致分区表损坏
5.2 常见错误及解决方案
错误信息 | 可能原因 | 解决方案 |
Error: /dev/sdb: unrecognised disk label | 分区表损坏或不存在 | 使用mklabel创建新分区表 |
Partition /dev/sdb1 is being used | 分区正在使用 | 卸载相关分区或重启系统 |
Warning: The resulting partition is not properly aligned | 分区未对齐 | 使用1MiB偏移或百分比方式 |
Invalid partition table | 分区表格式错误 | 重新创建分区表 |
Cannot have overlapping partitions | 分区重叠 | 调整分区范围避免重叠 |
5.3 性能优化建议
- 分区对齐:确保分区起始位置符合硬盘的物理扇区大小
- 文件系统选择:根据使用场景选择合适的文件系统(ext4、xfs、btrfs等)
- 分区大小规划:避免创建过小的分区,减少分区表碎片
- 定期检查:定期检查磁盘健康状态和分区完整性
5.4 实践总结
- 使用GPT分区表:现代系统推荐使用GPT,支持更多分区和更大容量
- 正确对齐分区:特别是SSD,使用-a optimal选项
- 脚本化操作:重复性操作使用脚本模式提高效率
- 验证结果:操作完成后使用parted -l验证分区信息
- 文档记录:记录分区方案,便于后续维护
6 总结
parted作为Linux系统中最现代化、最灵活的磁盘分区工具,相比传统的fdisk具有显著的优势。它不仅支持大容量磁盘的分区,还提供了丰富的功能来满足各种分区管理需求。主要优势:
- 大容量支持:轻松处理超过2TB的磁盘
- 灵活的分区管理:支持创建、删除、调整分区大小
- 多种分区表格式:同时支持MBR和GPT
- 脚本支持:非交互式模式适合自动化操作
- 即时生效:操作立即写入磁盘,提高效率
核心应用场景:
- 大容量磁盘分区:处理超过2TB的企业级存储设备
- 系统安装部署:为Linux系统创建合理的分区方案
- 存储管理:灵活调整分区大小以适应变化的需求
- 自动化运维:通过脚本实现批量分区管理
- 虚拟化环境:为虚拟机创建优化的分区方案