昨天我收到一封电子邮件,我们的一位用户试图为心跳/群集程序包腾出空间,该程序包需要自己的分区作为表决磁盘.为此,他尝试减小根分区的逻辑卷的大小,然后为此目的创建一个新的逻辑卷.但是,他忘了先调整文件系统的大小(或在命令中包含-r开关).他还忘记通过从救援cd运行此进程来卸载根分区.系统现在拒绝启动进入操作系统,并出现以下错误:
超级块或分区表可能已损坏!
意外不一致;手动运行fsck.
是否有可能拯救文件系统,或者它是否被冲洗?它的运行ext3.
解决方法
如果文件系统已经在新的LV上初始化,那么你可能已经被软管了,因为数据将被覆盖.你仍然可以尝试恢复它,但我不会太希望.如果文件系统尚未初始化,那么理论上可以恢复它(但我自己没有尝试过).
首先,备份整个驱动器,如果恢复出错,您将需要它.下一步是尝试在进行更改之前找到LVM在/ etc / lvm / archive中创建的LVM元数据备份.如果无法访问根卷,您可以尝试运行e2fsck以使其可安装,并希望备份文件存储在卷的开头附近.如果这样做,您将需要在运行e2fsck之前继续恢复(即在获取备份文件后从备份恢复).
如果您设法获得备份文件,请使用vgcfgrestore恢复LVM配置.如果您无法获得备份文件,您将不得不希望初始卷完全是顺序的.删除新LV,然后将旧LV扩展到其原始大小.
一旦你将旧的LV恢复到正确的大小,交叉你的手指并运行e2fsck.你真的需要先做备份,你可能不会在第一次尝试时做到这一点.