购买时飞沫,正如 DigitalOcean 所称呼他们的云虚拟机一样,它们总是配置有一个大的 ext4 分区。
我有一个需要 LVM 分区的应用程序,因此我需要一种创造性的方法来将根分区缩小到例如 25%,并将其余部分用于 LVM。我可以在一个新的实例上执行此操作,在那里我可以重新启动我想要的一切。
出于性能原因,我确实想避免使用循环设备,在该设备中,我在 ext4 之上的文件中创建 LVM 分区。
问题
有人能想出一个创造性的方法来缩小活动的 ext4 文件系统,并且重新启动就可以了?
答案1
尤其是对于 Digital Ocean,你能将 droplet 启动到救援映像中。
为了较旧从外部内核启动的发行版,您可以选择自己将其启动到救援映像中。
为了更新从 droplet 内的内核启动的发行版,您可以提交支持请求,以将救援映像挂载为 ISO。完成操作后,更新支持请求,删除救援映像,然后重新启动。
答案2
答案3
您可以缩小在线根分区无需重启:参考这个答案。这个答案写得很好,很容易理解。所以这适用于任何类型的专用或 VPS 解决方案。
TLDR;此解决方案意味着pivot_root
您tmpfs
可以安全地卸载根分区并对其进行操作。完成后,您将pivot_root
返回到新的根分区。
这允许对根文件系统进行几乎任何操作(移动它、更改文件系统、更改它的物理设备......)。
无需重启在此过程中,这样可以绕过无法缩小挂载ext4
分区的限制。
我个人使用过这个,它在 Debian 系统上也运行得很好,只需要很少的修改。我很惊讶没有看到这个深入的解决方案与 stackexchange 网站上处理同一问题的许多问题有更多联系。