Matthew Asked: 2012-06-19 12:26:40 +0800 CST2012-06-19 12:26:40 +0800 CST 2012-06-19 12:26:40 +0800 CST 用户在不调整文件系统大小的情况下减少了 LVM 逻辑卷 772 我昨天收到一封电子邮件,说我们的一个用户试图为心跳/集群包腾出空间,它需要自己的分区来充当表决磁盘。为此,他试图减小根分区的逻辑卷的大小,然后为此创建一个新的逻辑卷。但是,他忘记先调整文件系统的大小(或在命令中包含 -r 开关)。他还忘记了通过从救援 CD 运行此过程来卸载根分区。系统现在拒绝引导进入操作系统并出现以下错误: 超级块或分区表可能已损坏!意外的不一致;手动运行 fsck。 他们的系统将用户置于单用户模式。 是否有可能挽救文件系统,或者它被冲洗了吗?它运行 ext3。 lvm ext3 3 个回答 Voted Best Answer mgorven 2012-06-19T12:51:27+08:002012-06-19T12:51:27+08:00 如果文件系统已经在新的 LV 上初始化,那么您可能会被淹没,因为数据将被覆盖。您仍然可以尝试恢复它,但我不会抱太大希望。如果文件系统尚未初始化,那么理论上可以恢复它(但我自己还没有尝试过)。 首先,备份整个驱动器,以防恢复出错。下一步是尝试找到 LVM/etc/lvm/archive在进行更改之前创建的 LVM 元数据备份。如果根卷不可访问,您可以尝试运行e2fsck以使其可挂载,并希望备份文件存储在卷的开头附近。如果这样做,您将希望从运行前继续恢复e2fsck(即在获取备份文件后从备份恢复)。 如果您设法获得备份文件,请使用vgcfgrestore恢复 LVM 配置。如果您无法获得备份文件,您将不得不希望初始卷是完全连续的。删除新 LV,然后将旧 LV 扩展到其原始大小。 一旦你把旧的 LV 恢复到正确的大小,交叉你的手指并运行e2fsck。而且您确实需要先进行备份,您可能不会在第一次尝试时就做对。 Sven 2012-06-19T12:51:37+08:002012-06-19T12:51:37+08:00 我会尝试什么: 使用救援系统,例如。GRML 或 Ubuntu 实时系统。 将卷大小调整回原来的大小,并希望 LVM 分配相同的物理磁盘空间。如果同时没有对卷组进行其他修改,这应该可以工作。 制作图像,或至少制作卷的快照。 尝试用fsck. 希望最好的 十有八九,我会假设文件系统已经死了,但这可能会带来很多运气。 Eddie 2013-07-11T12:16:14+08:002013-07-11T12:16:14+08:00 今天我就是那个用户......幸运的是它在测试环境中,所以我保持了清晰的思维过程;) 我能够通过撤销我所做的来解决错误。我将我的家庭 lvm 减少了 100G,没有调整大小,然后将我的根 lvm 扩展了 100G,仍然没有调整 FS 的大小。 我从 liveCD (CentOS 6.4) 启动,将启动缩小 100G,调整大小,将主页扩展 100G,调整大小。重新启动,一切恢复正常。
如果文件系统已经在新的 LV 上初始化,那么您可能会被淹没,因为数据将被覆盖。您仍然可以尝试恢复它,但我不会抱太大希望。如果文件系统尚未初始化,那么理论上可以恢复它(但我自己还没有尝试过)。
首先,备份整个驱动器,以防恢复出错。下一步是尝试找到 LVM
/etc/lvm/archive
在进行更改之前创建的 LVM 元数据备份。如果根卷不可访问,您可以尝试运行e2fsck
以使其可挂载,并希望备份文件存储在卷的开头附近。如果这样做,您将希望从运行前继续恢复e2fsck
(即在获取备份文件后从备份恢复)。如果您设法获得备份文件,请使用vgcfgrestore恢复 LVM 配置。如果您无法获得备份文件,您将不得不希望初始卷是完全连续的。删除新 LV,然后将旧 LV 扩展到其原始大小。
一旦你把旧的 LV 恢复到正确的大小,交叉你的手指并运行
e2fsck
。而且您确实需要先进行备份,您可能不会在第一次尝试时就做对。我会尝试什么:
fsck
.十有八九,我会假设文件系统已经死了,但这可能会带来很多运气。
今天我就是那个用户......幸运的是它在测试环境中,所以我保持了清晰的思维过程;)
我能够通过撤销我所做的来解决错误。我将我的家庭 lvm 减少了 100G,没有调整大小,然后将我的根 lvm 扩展了 100G,仍然没有调整 FS 的大小。
我从 liveCD (CentOS 6.4) 启动,将启动缩小 100G,调整大小,将主页扩展 100G,调整大小。重新启动,一切恢复正常。