您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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
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
sudo parted /dev/sdX
(parted) print
# 创建GPT分区表
(parted) mklabel gpt
# 创建MBR分区表
(parted) mklabel msdos
警告:此操作会清除所有分区数据!
(parted) mklabel gpt
Yes/No? yes
# 创建主分区(MBR)
(parted) mkpart primary ext4 1MiB 500MiB
# 创建逻辑分区(GPT)
(parted) mkpart logical xfs 500MiB 1000MiB
# 创建交换分区
(parted) mkpart swap linux-swap 1000MiB 2000MiB
primary/logical
:分区类型(MBR有效)ext4/xfs/ntfs
:文件系统类型(仅作标记)1MiB
:起始位置(建议从1MiB开始对齐)500MiB
:结束位置# 查看设备最优对齐值
cat /sys/block/sdX/queue/optimal_io_size
# 创建对齐分区
(parted) mkpart primary ext4 0% 100% # 使用百分比自动对齐
(parted) mkpart primary ext4 1MiB 500MiB # 手动指定MiB单位对齐
(parted) rm 2
# 需要先卸载分区
sudo umount /dev/sdX1
# 调整分区结束位置
(parted) resizepart 1 800MiB
(parted) move 1 1MiB 500MiB
# 设置启动标志(MBR)
(parted) set 1 boot on
# 设置ESP标志(GPT)
(parted) set 1 esp on
# 在分区上创建文件系统
sudo mkfs.ext4 /dev/sdX1
# 检查文件系统
sudo fsck /dev/sdX1
# 使用gpart恢复
sudo apt-get install gpart
sudo gpart /dev/sdX
# 创建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
#!/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%
# 步骤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
# 步骤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
Warning: The resulting partition is not properly aligned for best performance.
解决方案: - 使用MiB或百分比单位 - 确保起始位置是1MiB的整数倍
Error: Not enough available space.
可能原因: - 指定的结束位置超过磁盘容量 - 存在重叠分区
# 使用gdisk修复GPT头
sudo gdisk /dev/sdX
# 输入'r'进入恢复菜单
# 选择'v'验证分区表
# 选择'w'写入修复
lsblk
和parted -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格式,包含代码块、表格、列表等元素,便于阅读和理解。如需调整内容长度或细节,可以进一步修改补充。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。