我如何最小化ext3分区(及其LVM逻辑卷)的大小?

我在Ubuntu 9.10(Karmic)上使用LVM。 我有一个LVM物理卷(和一个卷组)。

我有一个LVM逻辑卷内的ext3文件系统,我不再使用,但暂时我不想删除它。 我试图弄清楚如何最小化我的PV内占用的空间。 resize2fs具有-M选项,可以很好地调整文件系统的空闲空间大小,但这当然不会影响逻辑卷。 大多数在networking上的收缩ext3内部的LV(例如这个 ),遵循这个基本的模式,以缓解文件系统边界等计算不准确的问题:

  • 收缩ext3比你想resize2fs更多
  • 收缩LV到你想要的确切大小
  • 重新运行resize2fs稍微增加文件系统,以有效地使用完整的LV。

这并不能完全解决我的问题,因为我希望LV大小由文件系统驱动,而不是相反。

有没有一个命令或命令我可以跑这样做? 或者,我有可能对文件系统的大小进行计算,以便在某种程度上给予信任?

从理论上讲,是的,你可以计算文件系统所需的LV的确切大小 – 当resize2fs做它的事情,它会打印出有多less块正在使用。 不幸的是,稍微错误的结果是破坏了文件系统,浪费100MB的空间来换取文件系统的权限是大多数人愿意做的。

编辑 :在给猴子一个机枪和所有的时间,你的文件系统的风险,下面的过程为我在一个临时文件系统上工作:

  • fsck -f /dev/vg/sizetest
  • resize2fs -M /dev/vg/sizetest
  • resize2fs的“调整文件系统大小”行中获取块的数量(和块的大小),并通过将块的数量乘以块大小(KB)来计算涉及的千字节数:
    • “调整/ dev / vg / sizetest到119325(4k)块的文件系统”转换为119325 * 4 => 477300 (下一步的重要数字)
  • lvresize -L477300k vg/sizetest
  • 在这一点上,如果你的大小不对,你完全和完全的骨架 – 再次扩展文件系统不一定会得到相同的顺序相同的块。
  • fsck -f /dev/vg/sizetest
  • 重新安装文件系统,请注意,df显示文件系统已满100%,有0个可用块

如果这会影响到你至关重要的文件系统,不要告诉我,因为我只会长篇大论地“告诉你”跳舞,没有人愿意看到我跳舞。 相信我。

这可能不是最好的解决scheme,但这是我会做的:

  • 将数据复制到另一个卷
  • 调整您的音量(您描述的方式)到所需的大小
  • 把你的数据放回去

我希望有人有一个更好的解决办法,但这个至less应该工作,如果没有其他的。