调整lvm2逻辑卷和文件系统的大小:确切的大小?

在我的Intranet服务器上,我有一个100.00 GiB分区/ dev / sda5,我用它作为lvm2的物理卷。

  • 这是我的卷组vg01中唯一的物理卷。
  • vg01目前包含一个逻辑卷lv01,使用完整的100.00 GiB – 好,实际上99.99 GiB由于一些四舍五入(这是问题的开始)。
  • lv01包含一个ext3文件系统,使用整个空间。

我想将lv01降低到大约97吉比特,所以我可以创build约lv02。 3 GiB(我需要它采取lvm快照)。

我到目前为止做了什么:

e2fsck -f /dev/mapper/vg01-lv01 resize2fs /dev/mapper/vg01-lv01 97G 

这工作得很好。 但现在我必须跑

 lvreduce --size ? /dev/mapper/vg01-lv01 

而且我不确定,我必须指定哪个确切的值。 lvreduce手册页明确警告,生成的大小不能小于文件系统。 我也不想把它做得比它大。 但现在我有不同的数字:

  • 我在resize2fs中指定了97G
  • df -h说,它是96 G.
  • df说,这是100115936 1K块。
  • lvdisplay(当然)仍然报告逻辑卷99.99 GiB。

我需要为lvreduce指定lvreduce

编辑:

目前接受的答案提供了一个很好的解决方法。 但是,为了将这些东西整合到实体脚本等中,我通常宁愿使用精确的测量。 或者,也许已经有一个可靠的(!)脚本或工具,一步执行整个resize的过程?

根据我的经验,LVM和resize2fs对于“97G”意思是一样的,所以在两个地方指定相同的大小应该没问题。 然而,我是偏执的,只要有可能,总是使用问题评论中的谜语build议的策略,并调整为比我想要的小一GB,完成我想要的大小的lvresize,然后重新运行resize2fs(没有大小),让它扩大回来填补整个LV。

我认为最好使用–redizeuce / lvresize的–resizefs选项来完成:

  -r, --resizefs Resize underlying filesystem together with the logical volume using fsadm(8). 

无可否认,这对你现在没有帮助,但可能在将来。