如何在不丢失数据的情况下调整 Red Hat 中的 LVM 分区大小?

如何在不丢失数据的情况下调整 Red Hat 中的 LVM 分区大小?

我的分区详细信息是这样的

/dev/mapper/VolGroup00-LogVol00
                       57G  8.8G   46G  17% /
/dev/mapper/VolGroup00-LogVol05
                      259G  7.0G  239G   3% /home
/dev/mapper/VolGroup00-LogVol02
                       19G  493M   18G   3% /var
/dev/mapper/VolGroup00-LogVol03
                       19G  458M   18G   3% /tmp
/dev/mapper/VolGroup00-LogVol04
                      9.5G  152M  8.9G   2% /opt
/dev/sda1             965M   33M  883M   4% /boot
tmpfs                 7.7G  3.7G  4.0G  48% /dev/shm

我想通过减少 /home 分区的大小来增加 / 的大小,但不丢失 / 和 home 中的数据。

有人能帮我解决这个问题吗?

答案1

  • 使用实时发行版 (lvm 支持) 启动
  • 不要挂载你的 lvm 分区
  • fsck LogVol00 和 LogVol05(此步骤两次)
  • lvreduce -L-xG /dev/VolGroup00/LogVol05
  • resize2fs -p /dev/VolGroup00/LogVol05

对 /dev/mapper/VolGroup00-LogVol00 执行相同操作,使用 lvextend 代替 lvreduce

答案2

我同意 vishaal 的回答,但他漏掉了几个步骤,以及你可以用 linux rescue 来做到这一点

  1. 启动进入 Linux 救援
  2. 跳过安装
  3. 运行 lvm vgchange -ay (在救援模式下,在命令前面加上 lvm)
  4. 使用 ls /dev/VolGroup00/ 验证操作系统的可见性
  5. 其余部分与 vishaal 描述的非常相似,但您需要使用 -f 强制执行 e2fsck,即:e2fsck -f /dev/VolGroup00/LogVol..

  6. 重要提示,在减少卷之前,请先调整文件系统的大小,因此......

  7. resize2fs -f /dev/VolGroup00/LogVol.. 40G(如果您希望大小正好是 40G)
  8. lvm lvreduce -L40G /dev/VolGroup00/LogVol..(同样,如果您希望大小正好是 40G,而不是减少 40G)

我只是对 vishaal 已经给出的建议进行补充。

答案3

对 vishaal 和 Bobby Cox 给出的流程进行细微调整:

  • 调整2fs大小将 /home LV 缩小到比你真正想要的要小一点
  • lvm lvreduce缩小到你真正想要的尺寸
  • 调整2fs大小备份以填充 LV(不指定大小)

这样就留出了安全余地,以防万一两个命令对显式大小的解释不同(我知道lvm命令将范围四舍五入为整数;默认范围大小是如何确定的,我不确定,也不关心。

增加 LV 大小时,过程稍微简单一些:

  • lvm lvextend达到你想要的尺寸
  • 调整2fs大小填写

答案4

想重申一下:

缩小时,先调整 FS 大小,然后调整 LVM 大小;扩展时,先调整 LVM 大小,然后调整 FS 大小。

缩小时,您需要卸载卷。扩展时,根据您的 Linux 内核,您可以在系统安装时在线执行此操作

收缩时,备份至关重要;扩展时,备份是非常非常非常好的主意(什么时候不备份呢),但不像收缩时那么危险

除此之外,其他人都说得对

相关内容