Parted 不能有重叠的分区

Hum*_*rez 6 ubuntu parted

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

\n\n

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

\n\n
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT\nsda      8:0    0 931.5G  0 disk \n\xe2\x94\x9c\xe2\x94\x80sda1   8:1    0   512M  0 part /boot/efi\n\xe2\x94\x9c\xe2\x94\x80sda2   8:2    0 107.5G  0 part /\n\xe2\x94\x94\xe2\x94\x80sda3   8:3    0   3.8G  0 part [SWAP]\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
 Can't have overlapping partitions\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
 parted /dev/sda resizepart 2 50GB\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

这是 fdisk -l 命令的输出

\n\n
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors\nUnits: sectors of 1 * 512 = 512 bytes\nSector size (logical/physical): 512 bytes / 4096 bytes\nI/O size (minimum/optimal): 4096 bytes / 4096 bytes\nDisklabel type: gpt\nDisk identifier: C680462D-DE3F-4A97-B2A2-50226E7F9668\n\nDevice         Start       End   Sectors   Size Type\n/dev/sda1       2048   1050623   1048576   512M EFI System\n/dev/sda2    1050624 226453503 225402880 107.5G Linux filesystem\n/dev/sda3  226453504 234440703   7987200   3.8G Linux swap\n
Run Code Online (Sandbox Code Playgroud)\n\n

谢谢

\n

Eld*_*eek 1

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

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

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