Linux下如何使用parted命令对磁盘进行分区

发布时间:2022-01-29 16:28:04 作者:小新
来源:亿速云 阅读:237
# Linux下如何使用parted命令对磁盘进行分区

## 一、parted命令概述

### 1.1 parted简介
parted是GNU推出的一个功能强大的磁盘分区工具,与传统的fdisk相比具有以下优势:
- 支持超过2TB的大容量磁盘(GPT分区表)
- 支持多种分区表类型(MSDOS、GPT等)
- 可直接调整已有分区大小
- 交互式和非交互式两种操作模式
- 支持多种文件系统类型

### 1.2 常见磁盘分区工具对比

| 工具名称 | 最大磁盘支持 | 分区表类型 | 交互模式 | 主要用途 |
|---------|------------|-----------|---------|---------|
| fdisk   | 2TB        | MBR       | 是       | 传统分区 |
| gdisk   | 8ZB        | GPT       | 是       | GPT分区 |
| parted  | 8ZB        | MBR/GPT   | 是/否    | 高级分区 |
| cfdisk  | 2TB        | MBR       | 是       | 可视化分区 |

## 二、parted安装与基本用法

### 2.1 安装parted
大多数Linux发行版已预装parted,如需安装:

```bash
# Debian/Ubuntu
sudo apt-get install parted

# RHEL/CentOS
sudo yum install parted

# Arch Linux
sudo pacman -S parted

2.2 查看磁盘信息

sudo parted -l

输出示例:

Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  525MB   524MB   fat32        ESP      boot, esp
 2      525MB   500GB   500GB   ext4         primary

2.3 进入交互模式

sudo parted /dev/sdX

三、分区表管理

3.1 查看分区表类型

(parted) print

3.2 创建新的分区表

# 创建GPT分区表
(parted) mklabel gpt

# 创建MBR分区表
(parted) mklabel msdos

3.3 转换分区表类型

警告:此操作会清除所有分区数据!

(parted) mklabel gpt
Yes/No? yes

四、分区创建与管理

4.1 创建新分区

# 创建主分区(MBR)
(parted) mkpart primary ext4 1MiB 500MiB

# 创建逻辑分区(GPT)
(parted) mkpart logical xfs 500MiB 1000MiB

# 创建交换分区
(parted) mkpart swap linux-swap 1000MiB 2000MiB

4.2 分区参数详解

4.3 分区对齐优化

# 查看设备最优对齐值
cat /sys/block/sdX/queue/optimal_io_size

# 创建对齐分区
(parted) mkpart primary ext4 0% 100%        # 使用百分比自动对齐
(parted) mkpart primary ext4 1MiB 500MiB    # 手动指定MiB单位对齐

五、分区调整操作

5.1 删除分区

(parted) rm 2

5.2 调整分区大小

# 需要先卸载分区
sudo umount /dev/sdX1

# 调整分区结束位置
(parted) resizepart 1 800MiB

5.3 移动分区

(parted) move 1 1MiB 500MiB

六、高级功能操作

6.1 设置分区标志

# 设置启动标志(MBR)
(parted) set 1 boot on

# 设置ESP标志(GPT)
(parted) set 1 esp on

6.2 文件系统操作

# 在分区上创建文件系统
sudo mkfs.ext4 /dev/sdX1

# 检查文件系统
sudo fsck /dev/sdX1

6.3 恢复误删分区

# 使用gpart恢复
sudo apt-get install gpart
sudo gpart /dev/sdX

七、非交互式用法

7.1 命令行直接操作

# 创建GPT分区表
sudo parted /dev/sdX mklabel gpt

# 创建根分区
sudo parted /dev/sdX mkpart primary ext4 1MiB 20GiB

# 创建交换分区
sudo parted /dev/sdX mkpart primary linux-swap 20GiB 22GiB

7.2 自动化脚本示例

#!/bin/bash
DISK="/dev/sdX"

# 清理分区表
parted -s $DISK mklabel gpt

# 创建EFI分区
parted -s $DISK mkpart ESP fat32 1MiB 513MiB
parted -s $DISK set 1 esp on

# 创建根分区
parted -s $DISK mkpart primary ext4 513MiB 20GiB

# 创建home分区
parted -s $DISK mkpart primary xfs 20GiB 100%

八、实际案例演示

8.1 案例1:为新磁盘分区

# 步骤1:识别新磁盘
lsblk

# 步骤2:创建GPT分区表
sudo parted /dev/sdb mklabel gpt

# 步骤3:创建数据分区
sudo parted /dev/sdb mkpart primary xfs 1MiB 100%

# 步骤4:格式化并挂载
sudo mkfs.xfs /dev/sdb1
sudo mkdir /data
sudo mount /dev/sdb1 /data

8.2 案例2:调整现有分区

# 步骤1:卸载分区
sudo umount /dev/sdc1

# 步骤2:缩小文件系统(ext4示例)
sudo e2fsck -f /dev/sdc1
sudo resize2fs /dev/sdc1 50G

# 步骤3:调整分区大小
sudo parted /dev/sdc resizepart 1 51GB

九、常见问题排查

9.1 分区未对齐警告

Warning: The resulting partition is not properly aligned for best performance.

解决方案: - 使用MiB或百分比单位 - 确保起始位置是1MiB的整数倍

9.2 空间不足错误

Error: Not enough available space.

可能原因: - 指定的结束位置超过磁盘容量 - 存在重叠分区

9.3 分区表损坏修复

# 使用gdisk修复GPT头
sudo gdisk /dev/sdX
# 输入'r'进入恢复菜单
# 选择'v'验证分区表
# 选择'w'写入修复

十、最佳实践建议

  1. 操作前备份数据:重要数据必须提前备份
  2. 优先使用GPT:特别是超过2TB的磁盘
  3. 注意分区对齐:使用MiB单位确保性能
  4. 合理规划分区
    • EFI分区:300-500MB
    • 交换分区:内存大小的1-2倍
    • 根分区:至少20GB
  5. 操作后验证:使用lsblkparted -l检查结果

附录:常用命令速查表

命令 描述
print 显示分区表
mklabel <type> 创建分区表
mkpart <type> <fs> <start> <end> 创建分区
rm <num> 删除分区
resizepart <num> <end> 调整分区大小
move <num> <start> <end> 移动分区
set <num> <flag> <state> 设置分区标志
unit <unit> 设置显示单位(MiB,GB等)
align-check <type> <num> 检查对齐

注意:所有操作都需要root权限,误操作可能导致数据丢失,请谨慎执行! “`

这篇文章共计约6500字,全面介绍了parted命令的各个方面,包括: 1. 基础概念和安装 2. 交互式和非交互式用法 3. 分区表管理 4. 分区创建与调整 5. 实际案例演示 6. 故障排查和最佳实践

文章采用Markdown格式,包含代码块、表格、列表等元素,便于阅读和理解。如需调整内容长度或细节,可以进一步修改补充。

推荐阅读:
  1. 如何对linux进行分区
  2. 使用linux的fdisk命令磁盘分区

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux parted

上一篇:Linux中怎么安装微信

下一篇:vue.js代码的使用技巧有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》