如何最小化 ext3 分區(及其 LVM 邏輯卷)的大小?
我在 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 個可用塊
如果這會破壞您至關重要的文件系統,請不要告訴我,因為我只會參加一個冗長的“告訴過你”的舞蹈,沒有人願意看到我跳舞。相信我。