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

sta*_*tic 5 debian mount partitioning lvm

我在登录下执行了以下操作root(缩小/home、扩展/var):

umount /home lvresize -L-7G /dev/mapper/myvg-home

这是警告:

WARNING: Reducing active logical volume to 28.89 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Run Code Online (Sandbox Code Playgroud)

我认为这是通常的警告并接受

然后我做了:

> lvresize -L+7G /dev/mapper/myvg-var
Run Code Online (Sandbox Code Playgroud)

已成功完成:

Extending logical volume var to 9.79 GiB
Logical volume var successfully resized
Run Code Online (Sandbox Code Playgroud)

但正如我所见,/var如果使用 来查看,则不会扩展df -h。我以为重启就能解决问题。

然后我尝试重新安装主分区:

> mount /home
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

 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
Run Code Online (Sandbox Code Playgroud)

然后我重新启动了机器。后来我得到:

/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):
Run Code Online (Sandbox Code Playgroud)

所以我进入维护控制台并运行:

> fsck /dev/mapper/myvg-home
Run Code Online (Sandbox Code Playgroud)

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

fsck.ext4: Can't read an block bitmap while retrying to read bitmaps for /dev/mapper/myvg-home
e2fsck: aborted
Run Code Online (Sandbox Code Playgroud)

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

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

Vas*_*kov 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
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助!我今天自己也遇到了这个问题,这解决了这个问题。