暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

RadHat/Centos启动失败出现Assuming drive cache: write through 或 Metadata corruption

原创 伊伊相印 2022-11-29
5496


这类问题一般是XFS文件系统损坏导致的
从日志上看可以看出是某个块设备挂载失败, 有可能/dev/sda(硬盘或者其他 sd*)损坏 /dev/mapper/下的某个块设备损坏, 要先通过系统log找到损坏的文件系统然后用xfs_repair修复

1. 根据屏幕提示会让你输入 journalctl 进入到系统Log查看日志
journalctl

然后按shift+g从最后面查找关键信息

2162 [ 4.641771] localhost.localdomain kernel: XFS (dm-0): Metadata corruption detected at xfs_inode_buf_verify+0x79/0x100 [xfs], xxfs_inode_ra block 0x2d69b20
2163 [ 4.641806] localhost.localdomain kernel: XFS (dm-0): Unmount and run xfs_repair
2164 [ 4.641820] localhost.localdomain kernel: XFS (dm-0): First 64 bytes of corrupted metadata buffer:
2165 [ 4.641838] localhost.localdomain kernel: ffffbb5c811b8000: 49 4e 81 a0 03 02 00 00 00 00 00 00 00 00 00 ad IN..............
2166 [ 4.641860] localhost.localdomain kernel: ffffbb5c811b8010: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................
2167 [ 4.641882] localhost.localdomain kernel: ffffbb5c811b8020: 5b ca aa 79 0f 42 42 09 5b ca aa 79 0f 42 42 09 [..y.BB.[..y.BB.
2168 [ 4.641903] localhost.localdomain kernel: ffffbb5c811b8030: 5b ca aa 79 0f 42 42 09 00 00 00 00 00 00 00 06 [..y.BB.........
2169 [ 4.641926] localhost.localdomain kernel: XFS (dm-0): xfs_do_force_shutdown(0x8) called from line 1419 of file fs/xfs/xfs_buf.c. Return address = 0xffffffffc03de697
2170 [ 4.641928] localhost.localdomain kernel: XFS (dm-0): Corruption of in-memory data detected. Shutting down filesystem
2171 [ 4.641948] localhost.localdomain kernel: XFS (dm-0): Please umount the filesystem and rectify the problem(s)
2172 [ 4.642668] localhost.localdomain kernel: XFS (dm-0): log mount/recovery failed: error -117
2173 [ 4.642750] localhost.localdomain kernel: XFS (dm-0): log mount failed
2174 [ 3.424220] localhost.localdomain mount[534]: mount: mount /dev/mapper/rhel-root on /sysroot failed: Structure needs cleaning
2175 [ 3.424494] localhost.localdomain systemd[1]: sysroot.mount mount process exited, code=exited status=32
2176 [ 3.424674] localhost.localdomain systemd[1]: Failed to mount /sysroot.

从这一句中可以知道/dev/mapper/rhel-root挂载到/sysroot失败

localhost.localdomain mount[534]: mount /dev/mapper/rhel-root on /sysroot failed: Structure needs cleaning

1.首先尝试mount和umount文件系统,以便重放日志,修复文件系统,如果不行,再进行如下操作。


2. 检查文件系统
做此步之前确保分区处于umount状态
xfs_check /dev/sdd(盘符); echo $?
返回0表示正常

3. 执行xfs_repair -n,检查文件系统是否损坏,如何损坏会列出将要执行的操作
执行xfs_repair -n,检查文件系统是否损坏,如何损坏会列出将要执行的操作

4. 执行xfs_repair修复文件系统
xfs_repair /dev/mapper/rhel-root (ext系列工具为fsck)

5. 最后方法:损失部分数据的修复方法
根据打印消息,修复失败时:

先执行xfs_repair -L /dev/mapper/rhel-root(清空日志,会丢失文件),再执行xfs_repair /dev/mapper/rhel-root,再执行xfs_check /dev/mapper/rhel-root 检查文件系统是否修复成功。

说明:-L是修复xfs文件系统的最后手段,慎重选择,它会清空日志,会丢失用户数据和文件。

备注:在执行xfs_repair操作前,最好使用xfs_metadump工具保存元数据,一旦修复失败,最起码可以恢复到修复之前的状态。



检查是否修复成功, 若返回0则表示修复成功

echo $?

再次挂载/dev/mapper/rhel-root, 若返回0则表示挂载成功

mount /dev/mapper/rhel-root /sysroot;echo $?

exit退出修复模式若能成功进入系统则修复完成

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论