执行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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)