xfs文件系统修复

mac2022-06-30  84

1. 错误描述

启动CentOS7系统,发现进步了图形界面,并报如下错误:

Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)

根据系统提示:先登录系统,然后使用journalctl -xb查看系统日志。

使用journalctl -xb命令

# journalctl -xb #看到错误上是有关I/O的错误,首先想到是不是磁盘问题,搜索/mount,按n逐步搜索,看下有没有错误

错误信息:Failed to /mount /dev/sdb1

肯定是磁盘上坏块等原因,导致mount失败,所以我们可以先在/etc/fstab中,把该块磁盘自动mount注释掉

2. 解决方法

2.1 修改/etc/fstab配置文件

# vi /etc/fstab # # /etc/fstab # Created by anaconda on Mon Jul 30 21:52:27 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=18e49f02-2719-4b91-aae0-dfb73e36d6bc /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 #/dev/sdb1 /data xfs defaults 0 0

2.2 重启操作系统,让系统能够进入图形界面

2.3 手动mount磁盘

# mount /dev/sdb1 /data mount: /dev/sdb1 is write-protected, mounting read-only mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so.

2.4 根据报错信息,修复磁盘(xfs_repair)

由于磁盘是xfs_repair格式,所以对应的修复命令是xfs_repair

# xfs_repair /dev/sdb1 Phase 1 - find and verify superblock... bad primary superblock - bad magic number !!! attempting to find secondary superblock... ..............................................

执行一会儿后…

verified secondary superblock... writing modified primary superblock sb realtime bitmap inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 65 resetting superblock realtime bitmap ino pointer to 65 sb realtime summary inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 66 resetting superblock realtime summary ino pointer to 66 Phase 2 - using internal log - zero log... ERROR: The filesystem has valuable metadata changes in a log which needs to be replayed. Mount the filesystem to replay the log, and unmount it before re-running xfs_repair. If you are unable to mount the filesystem, then use the -L option to destroy the log and attempt a repair. Note that destroying the log may cause corruption -- please attempt a mount of the filesystem before doing this.

提示修复失败,可以尝试使用xfs_repair -L,但可能会造成数据丢失。

2.5 执行xfs_repair -L

# xfs_repair -L /dev/sdb1 Phase 1 - find and verify superblock... sb realtime bitmap inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 65 resetting superblock realtime bitmap ino pointer to 65 sb realtime summary inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 66 resetting superblock realtime summary ino pointer to 66 Phase 2 - using internal log - zero log... ALERT: The filesystem has valuable metadata changes in a log which is being destroyed because the -L option was used. - scan filesystem freespace and inode maps... agi unlinked bucket 1 is 6368769 in ag 2 (inode=73477633) agi unlinked bucket 2 is 6368770 in ag 2 (inode=73477634) agi unlinked bucket 3 is 6368771 in ag 2 (inode=73477635) agi unlinked bucket 4 is 6368772 in ag 2 (inode=73477636) agi unlinked bucket 15 is 53775 in ag 2 (inode=67162639) agi unlinked bucket 16 is 53776 in ag 2 (inode=67162640) agi unlinked bucket 17 is 53777 in ag 2 (inode=67162641) agi unlinked bucket 21 is 53781 in ag 2 (inode=67162645) sb_icount 0, counted 1024 sb_ifree 0, counted 185 sb_fdblocks 13100529, counted 9976617 - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... disconnected inode 67162639, moving to lost+found disconnected inode 67162640, moving to lost+found disconnected inode 67162641, moving to lost+found disconnected inode 67162645, moving to lost+found disconnected inode 73477633, moving to lost+found disconnected inode 73477634, moving to lost+found disconnected inode 73477635, moving to lost+found disconnected inode 73477636, moving to lost+found Phase 7 - verify and correct link counts... Maximum metadata LSN (1:39499) is ahead of log (1:2). Format log to cycle 4. done

2.6 执行xfs_repair

# xfs_repair /dev/sdb1 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... done

修复成功

2.7 手动mount,修改/etc/fstab文件

# mount /dev/sdb1 /data # vi /etc/fstab # # /etc/fstab # Created by anaconda on Mon Jul 30 21:52:27 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=18e49f02-2719-4b91-aae0-dfb73e36d6bc /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /data xfs defaults 0 0

转载于:https://www.cnblogs.com/wanbin/p/9514661.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)