在虚拟服务器中调整 ext4 分区大小而不丢失数据

在虚拟服务器中调整 ext4 分区大小而不丢失数据

我们有一个在 VMWare vSphere 上运行的虚拟 Linux 服务器(Fedora Core 2.6.35.6-45.fc14.x86_64)。最初它有 3 个 SCSCI 驱动器,每个 32GB。现在我们将挂载在“/home”下的磁盘扩展到 256GB。但 Linux 服务器在重启后显然看不到这种变化。有没有一种安全的方法可以将 ext4 分区从 32GB 扩展到 256GB 而不丢失任何数据?

在提出这个问题之前,我已经在 Google 上搜索过,许多人建议使用 GParted。但是现在这似乎不适合我,因为我目前只能通过 shell 访问该服务器。

编辑:这是来自 df 的输出:

[root@d0001-prf01 dmr]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg_d0011prf01-lv_root
              ext4    31705024   3385376  27997620  11% /
tmpfs        tmpfs     4098300        88   4098212   1% /dev/shm
/dev/sda1     ext4      495844     31317    438927   7% /boot
/dev/mapper/vg_d0011prf01-lv_home
              ext4    23674012  11840672  10630756  53% /home

如果需要,我可以提供更多分区信息。

编辑:我可以看到该 Linux 服务器上设置了 LVM:

lvm> lvs
  LV      VG            Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  lv_home vg_d0011prf01 -wi-ao 22.94g
  lv_root vg_d0011prf01 -wi-ao 30.72g
  lv_swap vg_d0011prf01 -wi-ao  9.81g

这是否意味着我可以使用 lvresize 命令?

答案1

是的,看起来您可以使用 lvresize,假设卷组中有空间。

看看你是否有一些可用空间:-

sudo vgs -v vg_d0011prf01

如果愿意,您可以使用以下命令调整卷大小。以下操作将使大小增加 2Gig。

sudo lvextend -L+2G /dev/mapper/vg_d0011prf01-lv_home

然后使用 resize2fs 调整卷大小,例如:-

sudo resize2fs /dev/mapper/vg_d0011prf01-lv_home

答案2

有几种工具可用于调整分区大小,parted(或者gparted图形界面)可能是最好的选择。这里有两个步骤。首先,您必须将分区扩展到新空间,然后您必须扩展文件系统以使用整个分区。

我确实建议改用 LVM。以后管理此类更改的灵活性非常值得付出努力去设置它。您甚至可以在新的空白空间中添加一个新分区,在其中配置 LVM,在其中启动卷组和文件系统,将数据复制到新空间,然后托管当前分区,将其添加到卷组并扩展到它。

不管你做什么,除非你的系统已备份,否则不要做任何事情!

相关内容