在命令行上缩小 ext4 分区

在命令行上缩小 ext4 分区

在正在运行的系统上,是否有可能缩小 ext4 分区并在可用空间上创建另一个分区,就像在 Gparted 中所做的那样?

我想缩小/dev/sdb1不是系统分区的空间,这样卸载就不是问题了。

我设法调整大小/dev/sdb1resize2fs之后我迷失了,因为fdisk没有看到任何可用空间来创建新分区。

运行 Ubuntu Server 14.04。

答案1

是的,您需要运行fdisk才能真正更改分区表。

使用调整文件系统大小后resize2fs(必须卸载分区),查看命令的输出:

$ resize2fs /dev/sdb1 24G
...
The filesystem on /dev/sdb1 is now 6291456 (4k) blocks long.

记住块数和块长度。这只会改变文件系统的大小,而不会改变分区。您需要删除分区并使用以下命令重新创建具有正确大小的分区fdisk

$ fdisk /dev/sdb

您可以输入以下内容p来查看分区表:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1  *     2048 52428766 52426719  25G 83 Linux

键入d以删除分区。然后n要添加新分区,请使用与原始分区相同的值,但将最后一个扇区更改为适合当前文件系统的扇区。它接受最后一个扇区的相对大小,因此通过将块数乘以 resize2fs 命令给出的块长度来计算最终大小。在此示例中:

6291456 * 4k = 25165824k

添加新分区时,系统会要求输入最后一个扇区,请输入生成的大小(请注意前缀+和大写字母K):+25165824K

a如果该分区是可启动分区,则输入以下命令p来查看新的分区表:

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1  *        2048 50333695 50331648   24G 83 Linux

键入w以将更改写入磁盘。之后您应该会看到新的大小。

相关内容