挂载文件系统或读取文件系统报错时该如何解决?

本文主要介绍挂载文件系统或读取文件系统报错的原因以及解决方案。

问题现象

  • 文件系统挂载失败,未挂载的文件系统在尝试挂载时会报Bad geometry错误。

  • 文件系统读写失败,报Cannot read inode bitmap内核日志。

问题原因

  • 使用LVM( Logical Volume Manager,逻辑卷管理)的磁盘动态缩容功能时破坏了文件系统。

  • 文件系统数据被破坏,导致已挂载的文件系统在读取到被破坏的数据时报错。

解决方案

通过磁盘动态扩容功能恢复磁盘大小

重要

磁盘动态扩容前,请确保所属的卷有足够的空间。

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述

  2. 扩容逻辑卷。

    lvextend [-L <逻辑卷大小>] <逻辑卷名称>

    以下示例为扩容逻辑卷容量。

    lvextend -L +2G /dev/mapper/mthvg-lvdata
  3. 扩容逻辑卷文件系统。

    您需要根据逻辑卷的文件系统类型执行不同的扩容命令,以下以ext4和XFS文件系统为例:

    • 如果是ext4文件系统,使用以下命令扩容。

      resize2fs /dev/mapper/mthvg-lvdata
    • 如果是XFS文件系统,使用以下命令扩容。

      xfs_growfs /dev/mapper/mthvg-lvdata
  4. 查看文件系统扩容结果。

    df -h

通过备份恢复文件系统数据

  1. 远程连接ECS实例。

    具体操作,请参见连接方式概述

  2. 取消挂载的文件系统。

    本示例以取消挂载/http/mnt为例。

    umount /http/mnt/
  3. 删除逻辑卷。

    lvremove /dev/vg02/lv_http
  4. 创建逻辑卷并查看逻辑卷信息。

    lvcreate -n lv_http -L 2G vg02
  5. 格式化逻辑卷。

    mkfs.ext4 /dev/vg02/lv_http
    blkid
  6. 重新创建挂载点挂载逻辑卷。

    mkdir /http/mnt -p
    mount /dev/vg02/lv_http /http/mnt
  7. 将原备份文件复制到当前位置。