我昨天收到一封电子邮件,其中一位用户正试图为心跳/群集软件包腾出空间,这需要将其自己的分区用作投票磁盘。 为此,他试图减小根分区逻辑卷的大小,然后为此创build一个新的逻辑卷。 但是,他忘了调整文件系统的大小(或者在命令中包含-r开关)。 他也忘记从救援光盘运行这个过程卸载根分区。 系统现在拒绝启动进入操作系统,出现以下错误:
超级块或分区表可能会损坏! 意外不一致; 手动运行fsck。
他们的系统将用户放入单用户模式。
是否有可能拯救文件系统,或者它是否被洗劫? 它运行的是ext3。
如果一个文件系统已经在新的LV上初始化,那么你可能已经被洗劫一空了,因为数据已经被覆盖了。 你仍然可以尝试恢复它,但我不会太有希望。 如果一个文件系统还没有被初始化,那么从理论上来说恢复它是可能的(但是我自己并没有尝试过)。
首先,对整个驱动器进行备份,如果恢复出错,则需要使用它。 下一步是尝试查找LVM在进行更改之前在/etc/lvm/archive创build的LVM元数据备份。 如果根卷不可访问,则可以尝试运行e2fsck以使其可挂载,并且希望备份文件存储在卷的开头附近。 如果你这样做,你会希望从运行e2fsck之前继续恢复(即在获得备份文件后从备份中恢复)。
如果您设法获取备份文件,请使用vgcfgrestore恢复LVMconfiguration。 如果你不能得到一个备份文件,你只能希望最初的音量是完全连续的。 删除新的LV,然后将旧的LV延伸到原来的大小。
一旦你将旧的LV恢复到正确的尺寸,交叉手指并运行e2fsck 。 而且你真的需要先做好备份,你可能不会在第一次尝试时就做到这一点。
我会尝试什么:
fsck修复它。 很可能,我会假定文件系统已经死了,但是这可能会带来很多好运。
今天,我是那个用户…幸运的是,它是在一个testing环境,所以我保持一个清晰的思考过程;)
我能够通过逆转我所做的来解决错误。 我把我的家lvm减less了100G,没有resize,然后把我的lvm扩展了100G,仍然没有调整FS。
我从一个liveCD(CentOS 6.4)启动,缩小100G的引导,resize,扩大100G的家庭,resize。 重新启动,一切恢复正常。