【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://www.pswp.cn/web/96121.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在路由器上配置DHCP服务器?

在路由器上配置DHCP服务器的步骤因品牌(如TP-Link、华为、小米、华硕等)略有差异,但核心流程一致,主要包括登录管理界面、开启DHCP功能、设置IP地址池及相关参数。以下是通用操作指南: 一、准备工作 确保电脑/手机已连…

HTML和CSS学习

HTML学习 注释 <!-- -->组成 告诉浏览器我是html文件<!DOCTYPE html> <title>浏览器标签</title> <body> <!--- 其中是主要内容 ---> <p> 段落 </p> </body> </html> (结束点…

OpenTenBase vs MySQL vs Oracle,企业级应用数据库实盘对比分析

摘要 因为工作久了的缘故&#xff0c;接触过不少数据库。公司的管理系统用的MySQL&#xff0c;财务系统用的Oracle。随着时代发展&#xff0c;国产开源数据库已经在性能上能与这些国际知名顶尖数据库品牌相媲美&#xff0c;其中OpenTenBase以其开放环境和优越性能脱颖而出&…

Oracle 备份与恢复常见的七大问题

为了最大限度保障数据的安全性&#xff0c;同时能在不可预计灾难的情况下保证数据的快速恢复&#xff0c;需要根据数据的类型和重要程度制定相应的备份和恢复方案。在这个过程中&#xff0c;DBA的职责就是要保证数据库&#xff08;其它数据由其它岗位负责&#xff09;的高可用和…

StringBuilder类的数据结构和扩容方式解读

目录 StringBuilder是什么 核心特性&#xff1a; StringBuilder数据结构 1. 核心存储结构&#xff08;基于父类 AbstractStringBuilder&#xff09; 2. 类定义与继承关系 3. 数据结构的核心特点 StringBuilder数据结构的初始化方式 1. 无参构造&#xff1a;默认初始容量…

LangChain实战(十七):构建与PDF/PPT文档对话的AI助手

本文是《LangChain实战课》系列的第十七篇,将专篇深入讲解如何构建能够与PDF和PPT文档进行智能对话的AI助手。通过学习本文,您将掌握复杂格式文档的解析技巧、文本与表格处理技术,以及实现精准问答的系统方法。 前言 在日常工作和学习中,PDF和PPT文档是我们最常接触的文档…

鱼眼相机模型

鱼眼相机模型 最近涉及鱼眼相机模型、标定使用等&#xff0c;作为记录&#xff0c;更新很久不曾更新的博客。 文章目录鱼眼相机模型1 相机成像2 鱼眼模型3 畸变3.1 适用针孔和MEI3.2 Kannala-Brandt鱼眼模型4 代码实现1 相机成像 针孔相机&#xff1a;所有光线从一个孔&#xf…

大语言模型提示词工程详尽实战指南

引言&#xff1a;与大型语言模型&#xff08;LLM&#xff09;高效对话的艺术大型语言模型&#xff08;LLM&#xff09;——例如我们熟知的GPT系列、Claude、Llama等——在自然语言处理&#xff08;NLP&#xff09;领域展现了惊人的能力&#xff0c;能够执行文本摘要、翻译、代码…

HTTP 请求体格式详解

1. 概览与概念 Content-Type&#xff1a;HTTP 请求/响应头&#xff0c;表示消息体的媒体类型&#xff08;MIME type&#xff09;。服务端用它决定如何解析请求体。常见场景&#xff1a; 纯结构化数据&#xff08;JSON&#xff09; → application/json表单 文件上传 → multip…

事务设置和消息分发

事务 RabbitMQ是基于AMQP协议实现的&#xff0c;该协议实现了事务机制&#xff0c;因此RabbitMQ也支持事务机制. SpringAMQP也提供了对事务相关的操作&#xff0c;RabbitMQ事务允许开发者确保消息的发送和接收是原子性的&#xff0c;要么 全部成功&#xff0c;要么全部失败.| 前…

Python 中 try / except / else / finally 异常处理详解

1. 基本结构 try:# 可能会抛出异常的代码 except SomeException as e:# 捕获并处理异常 else:# 如果 try 中代码没有异常&#xff0c;就执行这里 finally:# 无论是否发生异常&#xff0c;最后都会执行这里2. 各部分的作用 try 用途&#xff1a;包含可能发生异常的代码段。如果代…

冰火岛 Tech 传:Apple Foundation Models 心法解密(下集)

引子 上集说到冰火岛冰屋内,谢逊、张翠山、殷素素三人亲见 “指令(Instructions)” 如何让 AI 脱胎换骨,从木讷报地名的 “愣头青”,变身为文采斐然的 “旅行作家”。 正当素素惊叹这 AI 武学的奇妙时,谢逊却突然神色一凛,指着手腕上用冰屑刻的 “4096” 字样道:“这等…

Qt信号与槽机制全面解析

✨ 1. 核心概念信号与槽是Qt独创的一种对象间通信机制&#xff0c;它使得一个对象的状态变化或事件发生能够自动通知其他对象作出响应&#xff0c;从而实现高度解耦的代码设计。1.1 信号&#xff08;Signals&#xff09;定义&#xff1a;信号是由对象在特定事件发生时发出&…

2025年COR SCI2区,基于近似细胞分解的能源高效无人机路径规划问题用于地质灾害监测,深度解析+性能实测

目录1.摘要2.问题描述与数学模型3.能源网格混合元启发式算法4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流1.摘要 本文提出了一种能源高效的无人机路径规划方法&#xff08;EURP&#xff09;用于监测分散的地质灾害易发区域&#xff0c;通过建立无人机飞行模式的…

LangChain关于提示词的几种写法

上文中 <---->(可点击移步查阅),我们已经了解到LangChain如何编写调用大模型的一个基本框架, 在编写完这个基本框架后,就要与大模型进行交互了,这时候,就需要我们编写提示词了, 那么以下,就会介绍提示词的几种编写方式 1 可携带变量的提示词 1.1 PromptTempla…

CyberPoC 是一个现代化的网络安全练习和竞赛平台,支持容器化部署的安全挑战,为用户提供实践网络安全技能的环境。

工具介绍 CyberPoC 是一个现代化的网络安全练习和竞赛平台&#xff0c;支持容器化部署的安全挑战&#xff0c;为用户提供实践网络安全技能的环境。 &#x1f680; 快速开始 使用 Docker Compose (推荐) 克隆项目 git clone https://github.com/dushixiang/cyberpoc.gitcd cy…

【单片机day03】

UART串口通用异步收发器&#xff0c;2个串口(1个串口被用于ISP下载程序&#xff0c;1个串口被用于和主机之间的通信)全双工&#xff08;两根线TX、RX&#xff09;、串行、异步通信方式&#xff1a;单工&#xff1a;发送方和接收方是固定的&#xff0c;数据只能从发送方 发给 …

react16到react19更新及底层实现是什么以及区别

好问题 &#x1f44d;。React 16 → 19 的更新跨度其实涵盖了 React 的几个“时代级”的演进&#xff1a;从 Fiber 架构 的重写、到 并发特性 的引入&#xff0c;再到 React Server Components 和 现代语法支持。我帮你梳理下主要更新点和底层实现的区别&#xff0c;方便你系统…

【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件

偶然间发现了这个项目&#xff0c;分享出来。 【分享】基于百度脑图&#xff0c;并使用Vue二次开发的用例脑图编辑器组件1 项目地址2 项目简介3 项目部署3.1 安装node和npm3.2 项目下载3.3 修改npm镜像源3.4 部署4 项目中使用1 项目地址 基于百度脑图&#xff0c;并使用Vue二次…

Kotlin中抽象类和开放类

抽象类 (Abstract Class) 定义和特点 抽象类使用 abstract 关键字声明&#xff0c;是一种不能被直接实例化的特殊类&#xff0c;主要用于被其他类继承。 abstract class Base {open fun f() {} }abstract class Derived : Base() {override abstract fun f() // 抽象成员在类中…