Parted
GNU Parted 是創建和處理分區表的程序。GParted 是 GUI 前端。
安裝[編輯 | 編輯原始碼]
從官方源安裝 軟件包 parted包, 要使用圖像界面,安裝 gparted包。
使用[編輯 | 編輯原始碼]
Parted 有兩種模式:命令行和交互,請用下面命令啟動:
# parted device
device
是要編輯的硬盤設備(例如 /dev/sda
)。如果忽略了 device
參數,parted 將嘗試猜測要使用的設備。
命令行模式[編輯 | 編輯原始碼]
在命令行模式下,可以同時執行一個或多個命令:
# parted /dev/sda mklabel gpt mkpart P1 ext3 1MiB 8MiB
--help
等參數只有在命令行中才能指定。交互模式[編輯 | 編輯原始碼]
交互模式簡化了分區過程,可以自動對設備執行分區操作。打開需要新建分區表的設備:
# parted /dev/sdx
命令提示符會從 (#
) 變成 (parted)
: 要查看可用的命令:
(parted) help
完成操作後,用下面命令退出:
(parted) quit
退出後命令提示符變成 #
.
如果命令沒帶參數,Parted 會進行詢問:
(parted) mklabel New disk label type? gpt
數值設定[編輯 | 編輯原始碼]
很多分區系統有複雜的限制,Parted 可能會對輸入的數值進行稍微的修改。例如設定了 10.4Mb,實際會使用 10.352Mb。如果修正後的數值差異太大,Parted 會進行提示確認。用扇區數值("s" 後綴)可以進行精確的數值設置。
parted 2.4 開始,當使用 「MiB」, 「GiB」, 「TiB」 等 IEC 單位時,parted 會使用精確數值,不進行修正。而使用 「4GB」 這樣的設置時,可能會落在前後 500MB 的未知。所以在創建分區時,應該指定比特(「B」)、扇區(「s」)或 IEC 二進制單位 「MiB」,不要使用 「MB」, 「GB」。
Partitioning[編輯 | 編輯原始碼]
創建新分區表[編輯 | 編輯原始碼]
如果設備沒有分區,或者要改變分區表類型,重建分區結構,需要新建分區表。
用下面命令打開分區:
# parted /dev/sdx
為 BIOS 系統創建 MBR/msdos 分區表:
(parted) mklabel msdos
為 UEFI 系統創建 GPT 分區表:
(parted) mklabel gpt
分區方案[編輯 | 編輯原始碼]
您可以決定磁盤應該分為多少個區,每個分區又掛載在系統的哪個目錄。將分區如何映射至目錄(一般稱此為掛載點),取決於您的分區方案。需要滿足:
- 至少需要創建一個
/
(root) 目錄,有些分區類型和 啟動加載器組合有額外的分區要求: - BIOS/GPT + GRUB: 需要按照 BIOS 啟動分區設置 的方式創建一個 1M 或 2M 的
EF02
類型分區. - UEFI 的主板,需要一個 EFI 系統分區.
- 如果您需要加密磁盤,則必須加以調整分區方案。系統安裝後,也可以再配置加密文件夾,容器或 home 目錄。
系統需要需要 /boot
、/home
等目錄, Arch 文件系統架構 有各目錄的詳細介紹。如果沒有創建單獨的/boot
或 /home
分區,這些目錄直接放到了根分區下面。後面會介紹如何創建 交換分區。
在下面的示例中,假定將新的連續分區方案應用於單個設備。 還將為 /boot
和 /home
目錄創建一些可選分區:另請參閱 Arch filesystem hierarchy,那裡將解釋各個目錄的用途。 如果沒有為 /boot
或 /home
等目錄創建單獨的分區,則這些分區將僅包含在 /
分區中。 此外,還將說明為 swap space 創建可選分區的過程。
用下面命令打開 parted 交互模式:
# parted /dev/sdx
用下面命令創建分區:
(parted) mkpart part-type fs-type start end
part-type
是分區類型,可以選擇primary
,extended
或logical
,僅用於 MBR 分區表.fs-type
是文件系統類型,支持的類型列表可以通過help mkpart
查看。 mkpart 並不會實際創建文件系統,fs-type
參數僅是讓 parted 設置一個 1-byte 編碼,讓啟動管理器可以提前知道分區中有什麼格式的數據。參閱 Wikipedia:Disk partitioning#PC partition types.
start
是分區的起始位置,可以帶單位, 例如1M
指 1MiB.end
是設備的結束位置(不是 與start
值的差),同樣可以帶單位,也可以用百分比,例如100%
表示到設備的末尾。- 為了不留空隙,分區的開始和結束應該首尾相連。
如果看到下面警告:
Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel?
表示分區沒對齊,請參照分區對齊進行修正。
下面命令設置 /boot
為啟動目錄:
(parted) set partition boot on
partition
是分區的編號,從print
命令獲取。
UEFI/GPT 示例[編輯 | 編輯原始碼]
首先需要一個 EFI 系統分區.如果是和 Windows 雙系統啟動,此分區已經存在,不要重新創建。
用下面命令創建分區 (建議大小是 512MiB)。
(parted) mkpart ESP fat32 1M 513M (parted) set 1 boot on
剩下的空間可以按需要創建,root 占用全部 100% 剩餘空間:
(parted) mkpart primary ext4 513M 100%
/
(20GiB),剩下的給 /home
:
(parted) mkpart primary ext4 513M 20.5G (parted) mkpart primary ext4 20.5G 100%
創建 /
(20GiB), swap (4Gib), 剩下給 /home
:
(parted) mkpart primary ext4 513M 20.5G (parted) mkpart primary linux-swap 20.5G 24.5G (parted) mkpart primary ext4 24.5G 100%
BIOS/MBR 示例[編輯 | 編輯原始碼]
單根目錄分區:
(parted) mkpart primary ext4 1M 100% (parted) set 1 boot on
20Gib /
分區,剩下的給 /home
:
(parted) mkpart primary ext4 1M 20G (parted) set 1 boot on (parted) mkpart primary ext4 20G 100%
/boot
(100MiB), /
(20Gib), swap (4GiB) 剩下的給 /home
:
(parted) mkpart primary ext4 1M 100M (parted) set 1 boot on (parted) mkpart primary ext4 100M 20G (parted) mkpart primary linux-swap 20G 24G (parted) mkpart primary ext4 24G 100%
調整分區[編輯 | 編輯原始碼]
/
,使用安裝介質/備用系統。 )如果要擴展分區,則必須先調整分區的大小,然後再調整其上的文件系統的大小; 如果要縮小分區,必須先調整文件系統的大小,再調整分區,以避免數據丟失。
擴展分區[編輯 | 編輯原始碼]
要擴展分區(在 parted 交互模式下):
(parted) resizepart number end
其中 number
是您正在擴展的分區的編號,而 end
是該分區的新末端(需要大於舊的末端)。
然後,擴展此分區上的文件系統:
# resize2fs /dev/sdaX size
sdaX
代表您正在擴展的分區,而 size
是分區的新大小。
縮小分區[編輯 | 編輯原始碼]
縮小分區上的文件系統:
# resize2fs /dev/sdaX size
其中 sdaX
代表您要縮小的分區,而 size
是該分區的新大小。
然後縮小分區(在 parted 交互模式下):
(parted) resizepart number end
其中 number
是您要縮小的分區的編號,而 end
是該分區的新末端(需要小於舊末端)。
完成後,使用 util-linux包 中的 resizepart 命令告訴內核新的分區大小:
# resizepart device number size
其中 device
是保存分區的設備,number
是分區的編號, size
是分區的新大小。
Warnings[編輯 | 編輯原始碼]
Parted will always warn you before doing something that is potentially dangerous, unless the command is one of those that is inherently dangerous (viz., rm, mklabel and mkpart).
Alignment[編輯 | 編輯原始碼]
When creating a partition, parted might warn about improper partition alignment but does not hint about proper alignment. For example:
(parted) mkpart primary fat16 0 32M Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel?
The warning means the partition start is not aligned. Enter "Ignore" to go ahead anyway, print the partition table in sectors to see where it starts, and remove/recreate the partition with the start sector rounded up to increasing powers of 2 until the warning stops. As one example, on a flash drive with 512B sectors, Parted wanted partitions to start on sectors that were a multiple of 2048, which is 1 MiB alignment.
If you want parted to attempt to calculate the correct alignment for you, specify the start position as 0% instead of some concrete value. To make one large ext4 partition, your command would look like this:
(parted) mkpart primary ext4 0% 100%
小技巧[編輯 | 編輯原始碼]
雙啟動 Windows XP[編輯 | 編輯原始碼]
如果您打算將一個同屬於啟動分區的 Windows XP 分區移動到另一塊硬盤,只要將以下的註冊表刪除,之後就可以用 GParted 輕易地操作,Windows 不會出現任何問題:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
相關資料參見這裡。
Check alignment[編輯 | 編輯原始碼]
On an already partitioned disk, you can use parted to verify the alignment of a partition on a device. For instance, to verify alignment of partition 1 on /dev/sda
:
# parted /dev/sda (parted) align-check optimal 1 1 aligned