如何强制分区值超出范围

如何强制分区值超出范围

我有一个 ubuntu 桌面系统(VM 客户端),其分区由安装媒体创建。我想扩展磁盘,因此我关闭了客户端,并增加了主机中客户端的磁盘大小。现在我需要扩展客户端中的分区 - 问题如下:

如果我打印原始表格,我会得到以下结果:

$ sudo fdisk -l /dev/sda

Disk /dev/sda: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 cylinders, total 73400320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758    41940991    20719617    5  Extended
/dev/sda5          501760    41940991    20719616   8e  Linux LVM

过去,每当我需要扩展分区时,我都会删除并重新创建具有相同类型、相同开头但不同结尾的分区。这次不行:

Command (m for help): d
Partition number (1-5): 5

Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (503806-41940991, default 503806): 501760
Value out of range.

什么?我怎么可能不能用一秒钟前它所具有的参数来创建分区?无论如何,我放弃了。我想也许这只是一个旧的 fdisk,所以我又陷入了更深的困境:

我使用 parted 删除了分区,但不知道它会立即应用更改。(我以为完成后它会要求“写入”或“应用”命令...所以我搞砸了。)现在我的原始分区已被删除,我无法重新创建它。

我如何强制创建值超出范围的分区?

答案1

明白了。这对我有用:

通过启动,sudo parted我能够unit s切换到扇区,p查看当前表,并mkpart logical 501760 41940991重新创建分区。然后退出 parted。然后我运行sudo fdisk /dev/sda并用来t将分区类型重新设置为8e

答案2

我遇到了完全相同的情况。我想扩展虚拟机的 LVM 分区,其布局如问题所示(msdos 样式)。虽然作者使用 parted 而不是 fdisk 解决了这个问题,但也可以采用 fdisk 来解决。

我找到了解决办法这里(所以去那里也为原始回答者点赞)。问题是您还需要调整 /sda2 的大小,它是包含 sda5 逻辑分区的“扩展”分区。

之后,按照文章来扩展 lvm pv、lvm lv 以及最终的 fs。

相关内容