如何在线扩容root?

如何在线扩容root?

我想在根(sda7)上有更多的空间,我最终搜索发现使用resize2fs /dev/sda7可以帮助,但我不太确定。通过 live-cd 调整大小是否更好?

有人可以一步步建议我吗?提前致谢!

在此输入图像描述

答案1

在你的情况下,我不相信 resize2fs 在没有严肃的游戏的情况下会起作用,因为它假设开始不会移动。可能还有其他工具没有此限制,但它们肯定必须在卸载目标(live cd 等)的情况下完成。传统的解决方案是在间隙中添加另一个分区,对其进行格式化并在文件系统级别移动内容(可能将其用作 /var)。

如果您决定调整分区大小,可以手动完成。这里有龙!

  • 进行备份并验证其是否有效。
  • 因为尝试如此危险的事情而检查一下你的头部。
  • 从 Live CD 启动。
  • 不挂载文件系统。
  • 运行 fsck。
  • 记下间隙的开始和结束块以及您正在修改的分区。
  • 编辑分区表而不移动任何数据,使其具有与旧分区相同的结束块以及可以放入间隙的最早开始块。
  • 使用 dd 将文件系统开头的前 2.88 GB 复制到分区开头。
  • 重复下一个 2.88gb。
  • 重复此操作,直至最后一份副本使用较小的尺寸完成。
  • 运行 fsck。
  • 运行 resize2fs。
  • 运行 fsck。
  • 检查引导加载程序。可能需要重新安装。
  • 重新启动并祈祷它能正常工作。

答案2

resize2fs是用于调整文件系统大小的工具,而不是底层块设备。在使用之前resize2fs,您需要确保底层设备(/dev/sda7在本例中)有更多可用空间。在正常使用中,文件系统的大小适合其底层设备;因此,通常,您需要先增大块设备,然后才能增大文件系统。

由于您在这里使用裸操作系统分区,因此这是一项有点复杂的工作。最好的可用选项可能是重新启动到 liveCD 并使用gparted,如屏幕截图所示。 (调整正在运行的系统的根驱动器上的分区大小是可能的,但令人担忧。)要扩大分区,您需要空间来扩大它,要么是同一磁盘上已经空闲的空间,要么是通过缩小另一个分区而释放的空间。gparted是最好的可用工具;它会自动将调整大小的请求转换为必需的 FS 收缩、分区收缩、移动、分区增长、FS 增长操作。事实上,由于它gparted处理自己的 FS 操作,您甚至不需要手动运行resize2fs。请注意,执行此操作可能需要很长时间;移动分区涉及逐块地将其所有数据从一个地方复制到另一个地方。

如果您打算定期执行此类操作,那么最好切换到 LVM。但这是一个单独的讨论。

相关内容