在我的 Intranet 服务器上,我有一个 100.00 GiB 的分区 /dev/sda5,我将其用作 lvm2 的物理卷。
我想将 lv01 减少到大约 97 GiB,所以我可以创建大约 lv02。3 GiB(我需要它来拍摄 lvm 快照)。
到目前为止我做了什么:
e2fsck -f /dev/mapper/vg01-lv01
resize2fs /dev/mapper/vg01-lv01 97G
Run Code Online (Sandbox Code Playgroud)
这很有效。但现在我得跑了
lvreduce --size ? /dev/mapper/vg01-lv01
Run Code Online (Sandbox Code Playgroud)
而且我不确定,我必须指定哪个确切值。该lvreduce
手册页明确警告说,所产生的大小不能大于文件系统更小。我也不想让它变得比它必须的更大。但现在我有不同的数字:
97G
在 resize2fs 中指定。df -h
说,它是 96 G。df
说,它是 100115936 个 1K 块。我必须指定lvreduce
什么?
当前接受的答案提供了一个很好的解决方法。然而,为了将这些东西集成到可靠的脚本等中,我通常更喜欢使用精确的测量来代替。或者也许已经有一个可靠的 (!) 脚本或工具可以一步执行整个调整大小过程?
mjk*_*mjk 14
我认为最好使用 lvreduce/lvresize 的 --resizefs 选项来完成:
-r, --resizefs
Resize underlying filesystem together with the logical volume using fsadm(8).
Run Code Online (Sandbox Code Playgroud)
诚然,这现在对您没有帮助,但将来可能会有所帮助。
根据我的经验,LVM 和 resize2fs 对“97G”的含义有相同的想法,因此在两个地方指定相同的大小应该没问题。但是,我很偏执,并且在可能的情况下始终使用 larsks 在问题评论中建议的策略,并将大小调整为比我想要的小 1 GB,将 lvresize 设置为我想要的大小,然后重新运行 resize2fs(没有大小)让它膨胀回来填满整个 LV。