Answers:
是的,您可以收缩/移动/增长根分区,而无需任何重新引导(无论是livecd还是usbkey):请参阅此答案。它写得很好并且易于遵循,尽管时间很长而且有点冒险。
resize2fs
无法缩小在线ext4
分区。在根分区上应用此限制后,您可能会认为您无法避免重新引导主机以缩小root
分区,而这可能是您要避免的事情。链接的过程将使您无需重新启动即可卸载根分区。所以从这个角度它不是严格意义上讲网上的问候分区的安装状态调整大小,但它仍然是关于主机的网络在线状态或可达性的联机调整大小。
当然,如果您只想扩展ext4分区,则应该坚持使用常规的工作resize2fs
解决方案。
我链接的一般解决方案可以在任何类型的专用或VPS解决方案上使用。
TLDR;该解决方案暗示了这一点pivot_root
,tmpfs
因此您可以umount
安全地对根分区进行实时处理。完成后,您将pivot_root
回到新的根分区。
这几乎允许对根文件系统进行任何操作(移动它,更改文件系统,更改其物理设备...)。
我个人使用过它,它在debian系统上也很好用,但是该指南最初是在2007年为redhat编写的,我链接的答案针对CentOS7进行了更新。尽管可能会进行一些调整,但很有可能在您的OpenSUSE上运行。
如果情况是没有控制台的远程服务器,则可以在重新引导时使用initramfs收缩文件系统。您需要在挂载root之前将resize2fs添加到initramfs并运行它。
Debian / Ubuntu示例:
/ etc / initramfs-tools / hooks / resizefs(可执行):
#!/bin/sh
set -e
PREREQS=""
prereqs() { echo "$PREREQS"; }
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/e2fsck
copy_exec /sbin/resize2fs
exit 0
/ etc / initramfs-tools / scripts / local-premount / resizefs(可执行)
#!/bin/sh
set -e
PREREQS=""
prereqs() { echo "$PREREQS"; }
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
/sbin/e2fsck -yf /dev/sda1
/sbin/resize2fs /dev/sda1 5G
/sbin/e2fsck -yf /dev/sda1
现在运行update-initramfs,重新启动,检查大小,删除这些脚本,然后再次执行update-intiramfs。
对于dracut(Fedora,CentOS),请使用相同的逻辑(/usr/lib/dracut/modules.d)。
这对于加密或移动rootfs非常有用,没有可用空间用于新分区。
update-grub
。