在正在运行的系统上,是否有可能缩小 ext4 分区并在可用空间上创建另一个分区,就像在 Gparted 中所做的那样?
我想缩小/dev/sdb1
不是系统分区的空间,这样卸载就不是问题了。
我设法调整大小/dev/sdb1
但resize2fs
之后我迷失了,因为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
以将更改写入磁盘。之后您应该会看到新的大小。