如果我收到 mount: /dev/vgname/lvname: can't read superblock for the local filesystem,如何修复?

如果我收到 mount: /dev/vgname/lvname: can't read superblock for the local filesystem,如何修复?

当我尝试执行 mount -a 时,我收到了一个事件。我收到以下错误。那么如何解决这个问题呢?

挂载:/dev/vgname/lvname:无法读取超级块

答案1

就我而言,我收到此错误是由于其下方安装了只读抽象。我vmfs6-fuse结合qemu-nbd只读安装进行 VMWARE 恢复。

在这种情况下,使用以下选项安装 LVMro,noload可以解决问题:

mount -o ro,noload /dev/vg/lv /mnt

答案2

如果逻辑卷存在并且处于活动状态,则超级块可能因某种原因损坏。如果文件系统是 ext2、ext3 或 ext4,则有可用的备份超级块。要找到他们:

dumpe2fs /dev/vgname/lvname | grep superblock

您将得到一些输出,例如:

$ sudo dumpe2fs /dev/sdb1 | grep uperb | more
dumpe2fs 1.45.4 (23-Sep-2019)
  Primary superblock at 0, Group descriptors at 1-25
  Backup superblock at 32768, Group descriptors at 32769-32793
  Backup superblock at 98304, Group descriptors at 98305-98329
  Backup superblock at 163840, Group descriptors at 163841-163865
  Backup superblock at 229376, Group descriptors at 229377-229401
  Backup superblock at 294912, Group descriptors at 294913-294937
  Backup superblock at 819200, Group descriptors at 819201-819225
  Backup superblock at 884736, Group descripmount sb=32768 /dev/sda2 /mnttors at 884737-884761

您可以使用以下命令挂载文件系统:

mount sb=32768 /dev/vgname/lvname /mnt

(32768 是先前输出中的第一个备份超级块)

如果有效,您可以备份一些重要文件和/或开始修复:

fsck -b 32768 /dev/vgname/lvname

fsck -y如果您不想确认所有修复,可以尝试。

如果所有备份超级块都不起作用,您必须希望上次备份有效,或者尝试恢复工具,例如ext4magicPhotoRecscalpel

如果一切失败,请使用 重新初始化mkfs.ext4。确保进行坏块检查。

答案3

因此,位于 LVM 逻辑卷上的文件系统的超级块不可读。首先,确保卷组中的所有 LV 都已激活:vgchange -ay vgname

如果这没有帮助,请运行lvs以验证指定的 LV 是否确实存在。

相关内容