我如何才能释放根目录上的足够空间或调整分区大小?

我如何才能释放根目录上的足够空间或调整分区大小?

首先我要说的是,虽然我已经使用 Ubuntu 很多年了,但我很少花时间去探索 Linux 的底层。我满足于依靠 GUI 工具来满足我的大部分需求,只有在找不到合适的 GUI 工具时才会求助于终端。

几周前,我默认安装了 Zentyal (ebox) 发行版,并为学校设置了电子邮件服务器。不幸的是,默认文件系统配置仅分配了三个分区:

  • / - 6GB
  • 交换 - 4GB
  • /主页-96GB

运行仅几周后,根分区就已填满,导致服务器瘫痪。因此,我需要找到一种方法来调整根分区的大小或释放空间。

我已经能够弄清楚占用空间最大的是/var,文件系统是使用 lvm 设置的,并且 和 都/位于/home同一个卷组中。我尝试从实时 CD 启动,以便可以缩小/home和放大。我更喜欢使用 GUI 工具,因此我使用了 system-config-lvm。奇怪的是,从实时 CD 中,它将分区(或卷或任何名称)/显示为/home根本没有文件系统。当我正常登录时,我可以看到它实际上使用的是 ext4。

该服务器作为 vmware 客户端运行,因此我创建了一个快照,然后继续尝试调整大小。一切似乎都调整了大小,没有错误,但是,重新启动后,我被告知无法/home再安装。唯一需要该/home文件夹的帐户是服务器管理员(我),但显然 Zentyal 必须使用它来做某事,因为我无法访问 Zentyal 的 Web 界面,并且服务器没有收到任何电子邮件。

于是我恢复到之前拍摄的快照,然后就坐在这里。与之前相比,我并没有更接近解决这个问题。

任何帮助,将不胜感激。

答案1

由于您回到了上一个快照,因此您可以从支持 LVM 分区的 LIVE CD 启动(例如 系统救援光盘)也许读一点就可以开始使用LVM 分区。无论如何,从 Live CD 启动后,通常的步骤如下(这将是几个命令行,而不是 GUI 基础):

  1. 不要安装任何 LVM(原因很明显。您将调整其大小,因此暂时不要安装。)
  2. 对要更改的分区执行 fsck。以防万一。
  3. 首先做e2fsck -f PARTITION
  4. 由于我们想从 /home 中删除空间并将其提供给 root,因此我们这样做:
    4.1.在使用之前对 HOME 分区执行resize2fs PARTITION SIZEresize2fs -f PARTITION SIZElvreduce记住,你必须调整大小后有足够的空间容纳最终大小。执行调整2fs大小-p新的主分区大小只是为了确保它有正确的块大小。4.2
    使用lvextend在 ROOT 分区上,然后对其执行resize2fs PARTITION SIZEresize2fs -f PARTITION SIZE。然后再次执行调整2fs大小-p以确保它具有正确的块大小。

注意 - 对每个分区执行 lvreduce 或 lvextend 后,您需要e2fsck -fn强制检查分区的一致性(它将只读分区并检查它是否干净)

lvm 工具的一个示例:

lvreduce -L -35G "Home Partition"- 主分区将减少 35GB。
lvextend -L +35G "Root Partition"- 根分区将增加 35GB。

希望这有助于弄清楚如何做到这一点,并且通过快照我猜你会做到的。

更新 - 经过好奇的搜索后发现另一个来自 Red Hat 的用户也遇到了类似的问题:https://serverfault.com/questions/13666/how-can-i-resize-a-lvm-partition-in-red-hat-without-lose-of-data

更新 2 - 添加了 psusi 在评论中所说的内容,因为那是正确的方法,并且我需要在阅读/写作之前喝咖啡。

更新3-感谢普苏西下面列出了几处更正。

注意 - 这是针对使用 ext2/3/4 创建的分区,我猜测块不是 1K/2K,因为我在某处读到它对它们不起作用(由于我有 512 字节,因此没有测试)

答案2

尝试使用以下步骤:-

1_sudo apt-get 安装 gparted

  1. 然后直接进入系统管理-系统分区

然后根据需要使用 gui

相关内容