如何确定resize2fs的新大小?


22

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

resize2fs -p /dev/mapper/ExistingExt4 $size

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

Answers:


39

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

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

...  
阻止计数:               19506168  
预留块数:975308  
免费块:13750966  
免费索引节点:4263842  
第一块:0  
块大小:                4096  
...

将这些值相乘将得出分区大小(以字节为单位)。上面的数字恰好是1024的完美倍数:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

由于您要将分区缩小15 GiB(这是15 MiB乘1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

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

resize2fs -p /dev/mapper/ExistingExt4 62296032K

没有单位,该数字将解释为文件系统的块大小的倍数(在这种情况下为4096)。参见man resize2fs(8)


3
man resize2fs:(可选)size参数可以由以下单位指示符之一后缀:“ s”,“ K”,“ M”或“ G”,分别表示512字节扇区,千字节,兆字节或千兆字节。 。可能比进行块计算更简单。
lkraav 2015年

1
您不错过kat resize2fs -p /dev/mapper/ExistingExt4 62296032吗?
Sopalajo de Arrierez,2015年

@SopalajodeArrierez你说的对,资本没K了。没有这封信,由于我的大小大于实际磁盘,因此resize2fs应该抱怨。
Lekensteyn

2
dumpe2fs不报告分区大小;它确实报告了文件系统的大小。(哪个很好,因为它可能就是您想要的。)
Mehrdad
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.