Ubuntu

如何最小化 ext3 分區(及其 LVM 邏輯卷)的大小?

  • January 2, 2010

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

我在不再使用的 LVM 邏輯卷中有一個 ext3 文件系統,但目前我不想刪除它。我試圖弄清楚如何最小化它在我的 PV 中佔用的空間。resize2fs 有 -M 選項,它可以很好地調整文件系統的大小以使可用空間為零,但這當然不會影響邏輯卷。網路上大多數用於在 LV 中縮小 ext3 的方法(例如這個),遵循這個基本模式來緩解文件系統邊界計算不准確等問題:

  • 使用 resize2fs 將 ext3 縮小到超出您想要的程度
  • 將 LV 縮小到您想要的確切尺寸
  • 重新執行 resize2fs 以稍微擴大文件系統以有效地使用完整的 LV。

這並不能完全解決我的問題,因為我希望 LV 大小由文件系統驅動,而不是反過來。

我可以執行一個或多個命令來執行此操作嗎?或者,我是否可以計算文件系統大小以在一定程度上給予 lvresize?

理論上,是的,您可以計算文件系統所需的 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 個可用塊

如果這會破壞您至關重要的文件系統,請不要告訴我,因為我只會參加一個冗長的“告訴過你”的舞蹈,沒有人願意看到我跳舞。相信我。

引用自:https://serverfault.com/questions/96592