执行mount报错 can't read superblock。 执行xfs_repair -L 报错Phase 1 - find and verify superblock... xfs_repair: error - read only 0 of 512 bytes

情况描述

        执行 mount /dev/sdX /123  挂载时 报错 can't read superblock

        进行xfs_repair -L  /dev/mapper/centos-home 修复文件系统时 报错  (加 -L 时需要备份数据,可能数据会丢失

               Phase 1 - find and verify superblock...

               xfs_repair: error - read only 0 of 512 bytes

 

 

排查结果:

        原因:在机器中执行过 lvreduce 命令。 xfs格式的分区不支持减操作,通过机器命令排查是否有lvreduce操作

history  |grep "lvreduce"
  155  lvreduce -L -10G /dev/centos/home

 

修复过程:

      方式1:

        需要在被减空间的那个盘中做增加操作, 这边减了10G /dev/centos/home 的空间,需要加回来(加的空间大于减的空间)。

lvextend -L +11G /dev/centos/home     #加空间
xfs_growfs /dev/centos/home #修复文件系统

 

 

 

      方式2:

        增加一个新盘 进行拷贝

 

     1.新挂一个盘  (此处忽略)

     2.对新盘 创建物理卷/dev/sdb1

pvcreate /dev/sdb1

 

     3.将新物理卷/dev/sdb1添加到卷组centos中

vgextend centos /dev/sdb1

 

     4.将物理卷/dev/sda2(需要拷贝的硬盘,老卷)上的数据迁移到物理卷/dev/sdb1(新卷)上

 

pvmove /dev/sda2 /dev/sdb1

 

     5.加空间

lvextend -L +15G /dev/centos/home

      6. 修复文件系统/dev/centos/home

xfs_repair /dev/centos/home -L

 

      7.创建新目录 挂载测试。 

   mkdir /123     &&  mount /dev/centos/home /123

 

      8.硬盘恢复老卷中 (记得上一步umount 取消挂载)

       手动扩大/dev/sda2空间 (虚拟机控制台上扩)

      9.拷贝回去

pvmove /dev/sdb1    /dev/sda2

 

posted @   mrdongdong  阅读(3520)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示