无法使用 Parted 创建逻辑分区

Fli*_*int 3 partition parted gpt disk

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.
Run Code Online (Sandbox Code Playgroud)

但是,使用 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
Run Code Online (Sandbox Code Playgroud)

Pet*_*zel 10

扩展分区和逻辑分区仅对 msdos 分区表有意义。它的唯一目的是让您拥有 4 个以上的分区。使用 GPT,只有“主要”分区,它们的数量通常限制为 128(但是,理论上磁盘标签格式没有隐含的上限)。请注意,在 GPT 上,没有任何分区可以重叠(与 msdos 相比,显然扩展分区预计会与所有包含的逻辑分区重叠)。

关于 GPT 的下一件事是分区可以有名称,这就是混淆:mkpart 命令具有不同的语义,具体取决于您使用的是 GPT 还是 msdos 分区表。

对于 msdos 分区表,mkpart 的第二个参数是分区类型(主/逻辑/扩展),而对于 GPT,第二个参数是分区名称。在您的情况下,它是“主要”的。“扩展”对应。'合乎逻辑'。所以 parted 创建了两个 GPT 分区,第一个名为“primary”,第二个名为“extended”。您尝试创建的第三个分区(“逻辑”分区)将与“扩展”重叠,因此 parted 拒绝这样做。

简而言之,扩展分区和逻辑分区在 GPT 上没有意义。只需根据需要创建尽可能多的“普通”分区,并为它们命名。