如何将逻辑卷的大小调整为其中的文件系统的大小?

如何将逻辑卷的大小调整为其中的文件系统的大小?

目标系统是 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 安装创建一个新的根卷。是的,整个提议都很疯狂。

答案1

一步即可完成。

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

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

恒定大小可能是可以接受的,因为新安装的大小是可预测的。

答案2

从本质上来说,它并不是一个真正的脚本。

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

相关内容