Parted 不能有重叠的分区

Parted 不能有重叠的分区

例如,出于调试目的,我需要将磁盘扩展到所有未分配的空间

我的完整磁盘大小是 931.5GB,我有以下分区

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0 107.5G  0 part /
└─sda3   8:3    0   3.8G  0 part [SWAP]

所以我的/dev/sda2分区小于931.5GB,我需要使用parted命令增加这个分区以获得更多的espace

未分配的空间为:819.72GB(请参阅 gparted)parted /dev/sda resizepart 2 500GB 但此命令返回以下错误:

 Can't have overlapping partitions

我正在使用实时 USB 来完成所有这些操作,以便不安装 /dev/sda,奇怪的是,parted 允许我缩小分区,我的意思是这个

 parted /dev/sda resizepart 2 50GB

另一件事,如果我能找到这个问题的解决方案,我想使用选项 -s 以便使用一些 bash 脚本自动执行此过程

这是 fdisk -l 命令的输出

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C680462D-DE3F-4A97-B2A2-50226E7F9668

Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1050623   1048576   512M EFI System
/dev/sda2    1050624 226453503 225402880 107.5G Linux filesystem
/dev/sda3  226453504 234440703   7987200   3.8G Linux swap

谢谢

答案1

您无法增长的原因/dev/sda2是您的交换分区/dev/sda3太接近而/dev/sda2不允许任何增长。请注意,您的/dev/sda2分区从扇区 226453503 开始​​,而交换分区从下一个扇区 226453504 开始。因此,实际上您要求在下一个扇区上增加一个分区(这是一个非常糟糕的主意,这就是为什么gparted不允许这样做的原因)。

为了解决这个问题,您可以将交换区移动到驱动器的尾部(gparted想到)或将其删除并在增长后将其添加回来/dev/sda2(使用您最熟悉的任何分区工具)。遗憾的是,我没有关于自动化该过程的建议,因为它似乎取决于具体情况。但至少现在您知道问题的根本原因。

有一个非常相似的问题和解决方案这里

答案2

对于在添加新的引导分区(或任何其他分区,尽管可能需要更多步骤)后可能遇到此问题的任何人来说,另一个非常简单的解决方案是gdisk在尝试通过parted调整大小之前使用对分区进行排序:

gdisk /dev/sdX
Command (? for help): s

之后parted就没有出现分区重叠的错误了。

答案3

要自动化Elder对大量具有不同磁盘大小和分区大小的clonzilla映像的回答,并假设基本布局EFI + OS + Swap始终相同并且操作系统在交换上不休眠,最困难的部分是移动交换分区到磁盘末尾。 Gparted 似乎不接受相对于结束的位置(使用负的开始/结束数字)。您必须处理输出parted print以找出磁盘有多大,并自动计算开始和结束位置以在mkpartgparted 命令中使用(并根据需要对齐分区的开始,例如以2048 个扇区)。您需要一些编程,例如 shell 脚本。

相关内容