如何确定 resize2fs 的新大小?

如何确定 resize2fs 的新大小?

我想缩小 ext4 文件系统以便为新分区腾出空间,并遇到了该resize2fs程序。该命令如下所示:

resize2fs -p /dev/mapper/ExistingExt4 $size

我应该如何确定$size是否要从当前 ext4 文件系统中减去 15 GiB?我可以使用某种方式的输出吗df

答案1

您不应该使用,df因为它显示文件系统(在本例中为 ext4)报告的大小。

使用该dumpe2fs -h /dev/mapper/ExistingExt4命令找出分区的实际大小。该-h选项使dumpe2fs显示超级块信息没有很多其他不必要的细节。从输出中,您需要块数块大小

...  
块数:              19506168  
保留块数:975308  
空闲块:13750966  
空闲索引节点:4263842  
第一个块:0  
块大小:               4096  
...

乘以这些值将得出分区大小字节

上面的数字恰好是 1024 的完美倍数,因此我们可以以 KiB 为单位计算结果:

$ python -c 'print 19506168.0 * 4096 / 1024'  # python2
$ python -c 'print(19506168.0 * 4096 / 1024)' # python3
78024672.0

由于您想要将分区缩小 15 GiB(即 15 MiB 乘以 1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'   #python2
$ python -c 'print(19506168.0 * 4096 / 1024  -  15 * 1024 * 1024)'  #python3
62296032.0

由于resize2fs接受多种后缀,其中一种是K“1024 字节”,因此将分区缩小到 62296032 KiB 的命令变为:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

如果没有单位,该数字将被解释为文件系统块大小的倍数(在本例中为 4096)。看人调整大小2fs(8)

相关内容