Partition

無法使用 Parted 創建邏輯分區

  • October 30, 2012

我在環回磁碟上擺弄parted命令,並嘗試使用 gpt 部分錶創建一些分區,但Error: Unable to satisfy all constraints on the partition.在嘗試創建邏輯分區時我不斷得到

$ sudo parted /dev/loop0
(parted) mktable gpt
(parted) mkpart primary 1MiB 201MiB
(parted) mkpart extended 201MiB -0MiB
(parted) unit MiB print
Model: Loopback device (loop)
Disk /dev/loop0: 102400MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start    End        Size       File system  Name      Flags
1      1.00MiB  201MiB     200MiB                  primary
2      201MiB   102400MiB  102199MiB               extended

(parted) mkpart logical 202MiB 1024MiB
Error: Unable to satisfy all constraints on the partition.

但是,使用 msdos 部分錶重新創建相同的分區不會產生這樣的錯誤。所以知道有什麼問題嗎?

% sudo parted /dev/loop0
GNU Parted 2.3
Using /dev/loop0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable msdos                                                    
(parted) mkpart primary 1MiB 201MiB
(parted) mkpart extended 201MiB -0MiB                                   
(parted) mkpart logical 202MiB 1024MiB                                 
(parted) unit MiB print                                                   
Model: Loopback device (loop)
Disk /dev/loop0: 102400MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start    End        Size       Type      File system  Flags
1      1.00MiB  201MiB     200MiB     primary
2      201MiB   102400MiB  102199MiB  extended               lba
5      202MiB   1024MiB    822MiB     logical

擴展分區和邏輯分區僅對 msdos 分區表有意義。它的唯一目的是讓您擁有超過 4 個分區。使用 GPT,只有“主”分區,它們的數量通常限制為 128 個(但是,理論上磁碟標籤格式沒有暗示上限)。請注意,在 GPT 上,沒有一個分區可以重疊(與 msdos 相比,擴展分區顯然會與所有包含的邏輯分區重疊)。

關於 GPT 的下一件事情是分區可以有名稱,這帶來了混淆:mkpart 命令具有不同的語義,具體取決於您使用 GPT 還是 msdos 分區表。

對於 msdos 分區表,mkpart 的第二個參數是分區類型(主/邏輯/擴展),而對於 GPT,第二個參數是分區名稱。在你的情況下,它是“主要的”。“擴展”分別。‘合乎邏輯’。所以 parted 創建了兩個 GPT 分區,第一個名為“primary”,第二個名為“extended”。您嘗試創建的第三個分區(“邏輯”分區)將與“擴展”重疊,因此 parted 拒絕這樣做。

簡而言之,擴展分區和邏輯分區在 GPT 上沒有意義。只需創建任意數量的“正常”分區並為其命名即可。

引用自:https://unix.stackexchange.com/questions/53288