如何在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中的数据。

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

  • 启动与现场发行(lvm能力)
  • 不要安装你的lvm分区
  • fsck LogVol00和LogVol05(这一步两次)
  • lvreduce -L-xG / dev / VolGroup00 / LogVol05
  • resize2fs -p / dev / VolGroup00 / LogVol05

对/ dev / mapper / VolGroup00-LogVol00使用lvextend而不是lvreduce

我第二个vishaal的答案,但他遗漏了几个步骤..以及事实上,你可以做这个与Linux救援

  1. 开机进入linux救援
  2. 跳过安装
  3. 运行lvm vgchange -ay(在救援模式下,用lvm命令前面的命令)
  4. 通过ls / dev / VolGroup00 /
  5. 其余的很像vishaal描述,但你会想强制e2fsck与-f即:e2fsck -f / dev / VolGroup00 / LogVol ..

  6. 重要的是,您在减小音量之前调整文件系统的大小,所以..

  7. resize2fs -f / dev / VolGroup00 / LogVol .. 40G(如果你想要的大小正好是40G)
  8. lvm lvreduce -L40G / dev / VolGroup00 / LogVol ..(再次如果你想要的大小正好是40G,而不是减less了40G)

矿井只是vishaal已经给出的build议的补充。

对vishaal和Bobby Cox给出的过程进行了一些小调整:

  • resize2fs / home LV降到比你想要的小一点
  • lvm lv降低到你真正想要的大小
  • resize2fs备份来填充LV(通过不指定大小)

这留下了一个安全的余地,这两个命令解释显式大小的机会不同(我知道lvm命令四舍五入到整数的范围;默认的范围大小是如何确定的我不确定,而不是真的关心)。

当增加一个LV的大小时,这个过程比较简单:

  • lvm lvextend到你想要的大小
  • resize2fs来填充

您不必重新启动就可以这样做; 但是要确保你有一个新的备份在手边。

  • closures所有的用户会话。
  • 以root身份login。 如果您需要首先以用户身份login,请使用“exec su – ”或“exec sudo -i”,以免让用户login并阻止清除umount
  • 通过“lsof -n | grep / home”查看是否还有任何东西在使用/ home。 终止这个过程
  • 卸下/回家
  • 将所需的新大小以字节为单位,使其成为LVM扩展大小的倍数,我们称之为$ newsize
  • fsck / dev / mapper / VolGroup00-LogVol05
  • resize2fs -P / dev / mapper / VolGroup00-LogVol05 $ newsize
  • lvreduce -L $ newsze / dev / mapper / VolGroup00-LogVol05
  • mount / home

当然,假设你使用ext [234]。

想要重新迭代:

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

缩小时,您需要卸下音量。 扩展时,取决于你的linux内核,你可以在系统挂载的时候在线完成

当缩小时,备份至关重要当扩展时,非常非常非常好的想法有备份(什么时候没有),但不像收缩时那样有风险

除此之外,其他人都是现场