目錄
前言
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 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系統創建合理的分區方案
- 存儲管理:靈活調整分區大小以適應變化的需求
- 自動化運維:通過腳本實現批量分區管理
- 虛擬化環境:為虛擬機創建優化的分區方案