我想缩小 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)