如何调整 lvm 卷的大小(lvresize 损坏后可以恢复吗)?

如何调整 lvm 卷的大小(lvresize 损坏后可以恢复吗)?

我在root登录下做了以下操作(收缩/home,扩展/var):

卸载/home lvresize -L-7G /dev/mapper/myvg-home

这是警告:

WARNING: Reducing active logical volume to 28.89 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)

我以为这是通常的警告,并接受了

然后我做了:

> lvresize -L+7G /dev/mapper/myvg-var

已成功完成:

Extending logical volume var to 9.79 GiB
Logical volume var successfully resized

但我发现,/var如果查看,并没有展开df -h。我以为重新启动可以解决问题。

然后我尝试重新挂载主分区:

> mount /home

我收到一个错误:

 mount: wrong fs type, bad option, bad superblock on /dev/mapper/myvg-home,
   missing codepage or helper program, or other error
   In some cases useful info is found in syslog - try
   dmesg | tail  or so

然后我重启了机器。之后我得到了:

/dev/sda2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
Welcome to emergency mode. Use "systemctl default" or ^D to activate default
mode.
Give root password for maintenance
(or type Control-D to continue):

因此我进入维护控制台并运行:

> fsck /dev/mapper/myvg-home

但是在询问了一些有关错误以及我是否想中止操作的问题后,我收到了一个新的错误:

fsck.ext4: Can't read an block bitmap while retrying to read bitmaps for /dev/mapper/myvg-home
e2fsck: aborted

所以我无法让系统运行。问题是什么?当我尝试调整 lvm 分区大小时我做错了什么?它只是卸载、调整大小并重新安装,不是吗?

是否有可能恢复该分区或者至少创建一个新的分区并让系统重新运行,或者是否需要一些特殊操作来创建新的主分区?

答案1

是的,你可以修复它!
运行相反的命令。

lvresize -L-7G /dev/mapper/myvg-home
跑步 后lvresize -L+7G /dev/mapper/myvg-home

lvresize -L+7G /dev/mapper/myvg-var
跑步 后lvresize -L-7G /dev/mapper/myvg-var

中间可能启动失败,这没关系。修复大小后,您可以重新启动并观察所有分区是否再次正常工作。是时候做您最初想做的事情了,但这次是正确的。为此,将密钥添加--resizefs到所有命令中:

lvresize --size -7G /dev/mapper/myvg-home --resizefs
lvresize --size +7G /dev/mapper/myvg-var --resizefs

此操作需要一段时间才能执行,因为您的数据需要移动,就像调整分区大小一样。之后,您可以重新启动并照常使用分区(或者不重新启动并立即使用,但您可能正在使用 LiveUSB 棒来修复/调整主操作系统的大小)。

希望这能有所帮助!我今天也遇到了这种情况

相关内容