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

And*_*ier 1 ubuntu filesystems ext3 lvm

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

我在不再使用的 LVM 逻辑卷中有一个 ext3 文件系统,但目前我不想删除它。我试图弄清楚如何最大限度地减少它在我的 PV 内占用的空间。resize2fs 有 -M 选项,它可以很好地调整文件系统的大小以使其具有零可用空间,但这当然不会影响逻辑卷。网络上的大多数用于缩小 LV 内 ext3 的方法(例如这个),都遵循这种基本模式来缓解文件系统边界计算不准确等问题:

  • 使用 resize2fs 缩小 ext3 超出您的预期
  • 将 LV 缩小到您想要的确切尺寸
  • 重新运行 resize2fs 以稍微增加文件系统以有效地使用完整的 LV。

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

我可以运行一个或多个命令来执行此操作吗?或者,我可以计算文件系统大小以有一定的信心给 lvresize 吗?

wom*_*ble 5

理论上,是的,您可以计算文件系统所需的 LV 的确切大小——什么时候需要resize2fs,它会打印出正在使用的块数。不幸的是,稍有错误会导致文件系统损坏,而浪费 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 个可用块

如果这会破坏您至关重要的文件系统,请不要告诉我,因为我只会参与一个冗长的“告诉过你”的舞蹈,没有人愿意看到我跳舞。相信我。