无法使用 Parted 创建逻辑分区

无法使用 Parted 创建逻辑分区

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

答案1

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

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

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

简而言之,扩展分区和逻辑分区在 GPT 上没有意义。只需创建任意数量的“普通”分区并给它们指定适当的名称即可。

相关内容