# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。