中断逻辑卷的“lvextend”命令后如何修复磁盘大小?

中断逻辑卷的“lvextend”命令后如何修复磁盘大小?

你好,我使用的是Linux发行版 - Cent OS 6.10,如果这里不允许使用该操作系统版本,请通知我,我会删除这篇文章,谢谢。

我的逻辑卷似乎发生错误如下:

逻辑卷大小(卷组-lv_root) 为了/目录初始为50G。

我发现它的空间已经用完了。所以我添加了/dev/vdc物理体积卷组卷组。

然后我尝试将100G扩展到卷组-lv_root逻辑卷,但无意中使用命令“ lvextend -l +100%FREE -r VolGroup-lv_root”将所有可用卷组大小扩展到 LV。

我按了“Ctrl+C发现命令错误后停止该命令(正确的命令应该是lvextend -L +100G -r VolGroup-lv_root),然后通过“ ”命令将LV的大小停止扩展,大小显示为192G df -h

df -h:

df-h

但我发现数字(192G)与“中显示的大小不一样”fdisk -l“(311.4GB),”光伏发电“(99.51GB),”LSBLK“(290G)和LVS(289.99g) 命令。

fdisk -l: 菲斯克-l

pvs 和 vgs:

PV 和 VGS

lsblk: LSBLK

等级: LVS

我们可以发现vda2 by 的总大小pvs为99.5,不等于290+10+39.5 by lsblk

我导出启动盘(开发/vda),然后将导出的文件传输到 qcow2 文件,然后将 qcow2 文件传输到 vmdk 文件,并将 vmdk 文件导入到 VM,然后将 VM 导出到 ovf 文件,然后将 ovf 文件导入到另一个 VM(VM-new )。但是,VM(VM-new)无法工作。每个用户都有自己的逻辑卷,所以这可能会导致帐户无法登录:

启动错误消息: 在此输入图像描述

我按了之后有什么问题吗”Ctrl+C在命令执行完成之前,如何修复大小以使磁盘可以成功迁移到新的虚拟机?

答案1

显然,当您按下 Ctrl-C 时,LV 扩展步骤已经完成,并且 LV 内文件系统的扩展在中间被中断。其确切结果取决于所使用的文件系统类型,但例如在ext4文件系统上,在线扩展是分步进行的,因此如果扩展命令被中断,结果将是一个完整的文件系统,只是没有完全扩展就预期而言。

由于您最初的容量为lv_root50G,并且希望将其扩展 +100G,因此如果文件系统类型允许缩小,您也许可以通过以下方式简单地解决此问题:

lvreduce -L 150G -r VolGroup-lv_root

根据 的输出pvs,该卷组中共有 3 个磁盘VolGroup。这意味着,LV 的任何部分都可以位于这三个 PV 中的任何位置。您可以用来lvdisplay -m VolGroup-lv_root查看根 LV 的每个部分的位置,如果您有一些空闲范围,则可以用来pvmove移动 LV 的这些部分。

如果您只想将vda磁盘克隆到新的虚拟机,则首先必须确保要克隆的所有 LV 完全包含在该磁盘中(即这些 LV 的任何部分都不在vdb1或上vdc),并且pvmove如果那不是真的。这至少可以让根文件系统在新虚拟机上成功激活,尽管您仍然会收到一些关于原始系统上的 LVvdb1现在vdc在新虚拟机上丢失的错误。这些很可能会导致新克隆在首次启动时进入单用户模式。

要清除这些错误,您必须使用lvremove(可能与 一起使用-ff)删除丢失的 LV,然后使用vgreduce --removemissing VolGroup让 LVM“忘记”丢失的 PV。您还必须从 中删除对丢失 LV 的任何引用/etc/fstab

之后,我强烈建议您pvchange -u对新虚拟机上的克隆 PV 以及vgchange -u VolGroup新虚拟机上的克隆 PV 进行操作,以确保新克隆具有唯一的 LVM UUID。如果您可以保证克隆的 VG(或其快照)将绝不回到原来的系统,但我发现不留下那样的陷阱更安全。

相关内容