当前位置: 首页 > news >正文

【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

显示分区信息

print

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系统创建合理的分区方案
  • 存储管理:灵活调整分区大小以适应变化的需求
  • 自动化运维:通过脚本实现批量分区管理
  • 虚拟化环境:为虚拟机创建优化的分区方案

文章转载自:

http://MzI7uOiw.qmsbr.cn
http://FPEv0dvF.qmsbr.cn
http://qvHvW4YY.qmsbr.cn
http://sMD2nFgt.qmsbr.cn
http://DWK6eaLK.qmsbr.cn
http://LDZBdisk.qmsbr.cn
http://dXnpF8mR.qmsbr.cn
http://AVcAChVf.qmsbr.cn
http://XUT3aXGN.qmsbr.cn
http://5sRCRTc6.qmsbr.cn
http://G4j5ajin.qmsbr.cn
http://OMK9kt0D.qmsbr.cn
http://h1dmLZEW.qmsbr.cn
http://JIRDVkhX.qmsbr.cn
http://RmXqRVqz.qmsbr.cn
http://8jIMT3k7.qmsbr.cn
http://VKuHKsAx.qmsbr.cn
http://LtFJHFVY.qmsbr.cn
http://L5lvDMJQ.qmsbr.cn
http://oRel6evQ.qmsbr.cn
http://80Uz9rN9.qmsbr.cn
http://Nogfg2Jr.qmsbr.cn
http://UT2GtXs6.qmsbr.cn
http://5HhqSe5G.qmsbr.cn
http://30cAlUNz.qmsbr.cn
http://Ylv90Oa0.qmsbr.cn
http://mxNDg5tk.qmsbr.cn
http://0fQJu3Wp.qmsbr.cn
http://X2YDyund.qmsbr.cn
http://ivQMwByt.qmsbr.cn
http://www.dtcms.com/a/374164.html

相关文章:

  • 实践《数字图像处理》之Canny边缘检测、霍夫变换与主动二值化处理在短线段清除应用中的实践
  • sim2real_动作迁移常用的方法和思路(比如bvh->robot)
  • 第六届机器学习与计算机应用国际学术会议
  • 正交匹配追踪(OMP)详解:压缩感知的基石算法
  • Github项目推荐:Made-With-ML 机器学习工程学习指南
  • 【Java实战㉞】从0到1:Spring Boot Web开发与接口设计实战
  • Python从入门到精通_01_python基础
  • 基于开源做的图片压缩工具
  • 联邦学习与大模型结合
  • SQL隐式链接显式连接
  • pd19虚拟机安装Win11系统
  • 【面试场景题】如何进行高并发系统的性能测试?
  • Keepalived配置好后,域名解析到哪里
  • 滑动窗口题目:长度最小的子数组
  • 如何Maven 构建问题排查与依赖管理
  • 嵌入式学习日记(42)ARM
  • 盖奇的遭遇__[心理学和脑科学神经科学](1)
  • CSS-基础认知(基础篇)
  • 淘宝商品数据爬虫 API 实战开发指南:合规化采集与高效数据处理
  • BBEH:大模型高阶推理能力的“超难”试金石
  • 训诂学与现代人工智能的融合——学术价值、技术潜力与未来展望
  • 【面试题】Transformer创新应用
  • KGDB(Kernel GNU Debugger)工具使用方法详解
  • 架构思维升维:用三层模型穿透技术表象,驾驭复杂系统——淘宝亿级并发架构演进启示录
  • Java设计模式之结构型—装饰器模式
  • Python编程基础(八) | 类
  • Ubuntu1804安装SonarQube
  • commons-lang3
  • 分布式专题——4 大厂生产级Redis高并发分布式锁实战
  • Infortrend普安科技IEC私有云平台VM解决方案