RadHat/Centos启动失败出现Assuming drive cache: write through 或 Metadata corruption之类的解决思路

RadHat/Centos启动失败出现Assuming drive cache: write through 或 Metadata corruption之类的解决思路

这类问题一般是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

然后尝试对/dev/mapper/rhel-root进行修复

xfs_repair -L /dev/mapper/rhel-root

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

echo $?

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

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

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

exit

你可能感兴趣的:(Linux日常)