Centos7

如何將邏輯卷的大小調整為其中文件系統的大小?

  • April 27, 2019

目標系統是 CentOS 6.x,但調整大小操作將在 CentOS 7.6 kickstart 的 %pre 部分完成。

我已經resize2fs -M /dev/mapper/centos-home成功執行了。如果我安裝卷,df 說它是 100% 滿的。這很好。

現在我需要減小邏輯卷的大小以匹配 ext4 文件系統的大小。我不想使用粗略的估計。我也不需要保存所有可能的範圍。在 >= 1GB 範圍內很好。即卷可以減少到 1GB >= 文件系統大小。

目標卷確實包含我不能失去的數據。我沒有對系統的 shell(或任何其他)訪問權限。該系統沒有可用的 CentOS 儲存庫,因此我無法升級它。我什至沒有可以與之交談的遙控手。我正在使用另一台電腦來建構和測試我的安裝 ISO。

我的 %pre 語法/腳本需要安全地減少 /dev/mapper/centos-home 以便我可以為 CentOS 7.6 安裝創建一個新的根卷。是的,這整個提議是瘋狂的。

一步完成。

/sbin/lvresize --resizefs --size -8g  /dev/mapper/centos-home

其中 8g 是您要安裝的根卷的大小。

固定大小可能是可以接受的,因為新安裝的大小是可預測的。

它本身並不是一個真正的腳本。

rootvol=/dev/mapper/vg_stt-lv_root
mkdir /tmp/rootlv
mount -t ext4 -o ro $rootvol /tmp/rootlv
usedROOT=$(df -h $rootvol |  tail -1 | awk '{print $2}' | awk '{printf("%d\n",$1 + 1)}')
umount /tmp/rootvol
/sbin/lvresize --resizefs --size $usedROOT\g  $rootvol

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