admin管理员组文章数量:1531794
报错:
[root@localhost ~]# mount /dev/mapper/mpathd /data04/
mount: mount /dev/mapper/mpathd on /data04 failed: Structure needs cleaning
[root@localhost ~]# xfs_ncheck /dev/mapper/mpathd
Metadata corruption detected at xfs_agf block 0x1/0x200
xfs_ncheck: cannot init perag data (-117). Continuing anyway.
* ERROR: mismatched uuid in log
* SB : 281f884a-e5c5-41b2-98bf-3838498d822b
* log: 5197aaf5-4655-4e9e-9f3b-f98b035f1540
Metadata corruption detected at xfs_agi block 0x2/0x200
Metadata corruption detected at xfs_agfl block 0x3/0x200
Metadata corruption detected at xfs_allocbt block 0x8/0x1000
Metadata corruption detected at xfs_allocbt block 0x10/0x1000
Metadata corruption detected at xfs_inobt block 0x18/0x1000
Metadata corruption detected at xfs_agf block 0xa00001/0x200
Metadata corruption detected at xfs_agi block 0xa00002/0x200
Metadata corruption detected at xfs_agfl block 0xa00003/0x200
Metadata corruption detected at xfs_allocbt block 0xa00008/0x1000
Metadata corruption detected at xfs_allocbt block 0xa00010/0x1000
Metadata corruption detected at xfs_inobt block 0xa00018/0x1000
Metadata corruption detected at xfs_agf block 0x1400001/0x200
Metadata corruption detected at xfs_agi block 0x1400002/0x200
Metadata corruption detected at xfs_agfl block 0x1400003/0x200
Metadata corruption detected at xfs_allocbt block 0x1400008/0x1000
Metadata corruption detected at xfs_allocbt block 0x1400010/0x1000
Metadata corruption detected at xfs_inobt block 0x1400018/0x1000
Metadata corruption detected at xfs_agf block 0x1e00001/0x200
Metadata corruption detected at xfs_agi block 0x1e00002/0x200
Metadata corruption detected at xfs_agfl block 0x1e00003/0x200
Metadata corruption detected at xfs_allocbt block 0x1e00008/0x1000
Metadata corruption detected at xfs_allocbt block 0x1e00010/0x1000
Metadata corruption detected at xfs_inobt block 0x1e00018/0x1000
解释
xfs_ncheck /dev/mapper/vg-lv;echo $?
如果返回0表示正常不用修复,否则继续下面步骤。
解决方案:
先打磁盘快照!!
确保数据是安全的。
虚拟机做快照,存储打快照,物理机则通过dd导出
[root@aaroncentos79 ~]# xfs_db -x /dev/mapper/VG00-data
Metadata corruption detected at xfs_agf block 0x1/0x200
xfs_db: cannot init perag data (-117). Continuing anyway.
xfs_db> sb
xfs_db> p
magicnum = 0x58465342
blocksize = 4096
dblocks = 5242880
rblocks = 0
rextents = 0
uuid = 281f884a-e5c5-41b2-98bf-3838498d822b
logstart = 4194308
rootino = 64
rbmino = 65
rsumino = 66
rextsize = 1
agblocks = 1310720
agcount = 4
rbmblocks = 0
logblocks = 2560
versionnum = 0xb4a5
sectsize = 512
inodesize = 512
inopblock = 8
fname = "\000\000\000\000\000\000\000\000\000\000\000\000"
blocklog = 12
sectlog = 9
inodelog = 9
inopblog = 3
agblklog = 21
rextslog = 0
inprogress = 0
imax_pct = 25
icount = 64
ifree = 61
fdblocks = 5240296
frextents = 0
uquotino = 0
gquotino = 0
qflags = 0
flags = 0
shared_vn = 0
inoalignmt = 4
unit = 0
width = 0
dirblklog = 0
logsectlog = 0
logsectsize = 0
logsunit = 1
features2 = 0x18a
bad_features2 = 0x18a
features_compat = 0
features_ro_compat = 0
features_incompat = 0x1
features_log_incompat = 0
crc = 0x17b087c3 (correct)
spino_align = 0
pquotino = 0
lsn = 0
meta_uuid = 00000000-0000-0000-0000-000000000000
xfs_db> write uuid 5197aaf5-4655-4e9e-9f3b-f98b035f1540
uuid = 5197aaf5-4655-4e9e-9f3b-f98b035f1540
xfs_db> agf
xfs_db> p
xfs_db> q
你会发现,我们修改的UUID,就是修改成了agf、agi、agfl里的UUID了
#不要使用xfs_repair /dev/mapper/VG00-data 除非没有其他办法了。
[root@aaroncentos79 ~]# mount /dev/mapper/VG00-data /mnt
This document (7018603) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Server 11SUSE Linux Enterprise Server 12
Situation
In case an XFS filesystem cannot be mounted, for example getting an error like # mount /dev/sdb /mnt/
mount: mount /dev/sdb on /mnt failed: Structure needs cleaning
and assuming that sdb contains a XFS Filesystem.
Resolution
Before attempting a repair it might be viable to check whether or not issues will be resolved or whether some data might be lost due to the repair.To get the metadata, assuming /dev/sdb contains a XFS Filesystem, as root run the following command:
# /usr/sbin/xfs_metadump -aowg /dev/sdb /tmp/dump_xfs_meta
would be invoked. This results in a file /tmp/dump_xfs_meta containing the metadata and no Data Obfuscation.
This file cannot be used yet, but would have to be changed into a restore file with
# /usr/sbin/xfs_mdrestore /tmp/dump_xfs_meta /tmp/workable_xfs_dump
this new file, /tmp/workable_xfs_dump can be used safely for experiments and test and even be mounted and should exhibit the original error during a mount attempt.
# mount /tmp/workable_xfs_dump /mnt/
mount: mount /dev/loop0 on /mnt failed: Structure needs cleaning
but after a
# xfs_repair /tmp/workable_xfs_dump
in this example it can be mounted. And subsequent checked whether files and directories are still in place.
Additional Information
To simulate or force an error in the xfs metadata dump it is possible to invokexfs_db -fx /tmp/workable_xfs_dump
then in the shell do
xfs_db> sb
xfs_db> p
and for example change the uuid with
xfs_db> write uuid 12345678
uuid = 20000000-0000-0000-0000-000000bc614e
xfs_db> q
which would then result in an error during mount
# mount /tmp/workable_xfs_dump /mnt/
mount: mount /dev/loop0 on /mnt failed: Structure needs cleaning
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
转载至https://www.suse/support/kb/doc/?id=000018858
本文标签: 磁盘报错StructurecleaningUUID
版权声明:本文标题:磁盘挂载报错Structure needs cleaning,磁盘UUID不一致 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1725839148a1044821.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论