Re: allow mounting w/crc-checking disabled? (was Re: filesystem dead, xfs_repair won't help)

Eric Sandeen
2017-04-11T16:34:57Z

[-- Attachment #1.1: Type: text/plain, Size: 2410 bytes --]

On 4/11/17 11:18 AM, Emmanuel Florac wrote:
> Le Tue, 11 Apr 2017 08:34:44 -0500
> Eric Sandeen <sandeen@sandeen.net> écrivait:
>
>> Three, none of this has anything to do with the email that started
>> this thread. Bad firmware turned Avi's SSD into a vat of goo, and
>> CRCs are not in any way related to his inability to recover his
>> filesystem.
>
> OK, but xfs_db finds and reads the sb OK, and it looks fine at first
> look; why does xfs_repair fail completely? I'm not actually certain
> that Avi's SSD is a "vat of goo"...

Well, the AGF printed out by the kernel on the mount attempt was
nowhere close to a valid AGF structure.

Ok, "vat of goo" may have been too strong, but there is at least
one core filesystem structure which are completely scrambled.

That's just the one that was obvious from the mount attempt; I was
assuming there were likely more areas of extreme damage, but that
was an assumption on my part.

Apr 10 11:41:20 avi.cloudius-systems.com kernel: XFS (nvme0n1): Metadata CRC error detected at xfs_agfl_read_verify+0xcd/0x100 [xfs], xfs_agfl block 0x2cb68e13
Apr 10 11:41:20 avi.cloudius-systems.com kernel: XFS (nvme0n1): Unmount and run xfs_repair
Apr 10 11:41:20 avi.cloudius-systems.com kernel: XFS (nvme0n1): First 64 bytes of corrupted metadata buffer:
Apr 10 11:41:20 avi.cloudius-systems.com kernel: ffff9004a5b75400: 23 40 8f 28 5b 50 3a b4 f8 54 1e 31 97 f4 fe ed #@.([P:..T.1....
Apr 10 11:41:20 avi.cloudius-systems.com kernel: ffff9004a5b75410: 62 87 57 51 ee 9d 31 02 ec 2c 10 46 6c 93 db 09 b.WQ..1..,.Fl...
Apr 10 11:41:20 avi.cloudius-systems.com kernel: ffff9004a5b75420: ae 7a ea b3 91 49 7e d3 99 a4 25 49 11 c5 8b be .z...I~...%I....
Apr 10 11:41:20 avi.cloudius-systems.com kernel: ffff9004a5b75430: e4 2e 14 d4 8a f8 5f 98 66 d8 67 72 ec c9 1a d5 ......_.f.gr....

Again, don't fixate on the "CRC" error. The above is /not/ an AGFL for this filesystem.

typedef struct xfs_agfl {
__be32 agfl_magicnum;
__be32 agfl_seqno;
uuid_t agfl_uuid;
__be64 agfl_lsn;
__be32 agfl_crc;
__be32 agfl_bno[]; /* actually XFS_AGFL_SIZE(mp) */
} __attribute__((packed)) xfs_agfl_t;

The magicnum is wrong.
The seqno is invalid.
The UUID data in agfl_uuid does not match this filesystem.

etc...

-Eric

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 867 bytes --]