From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: "cwalou@gmail.com" <cwalou@gmail.com>, Qu Wenruo <wqu@suse.com>,
linux-btrfs@vger.kernel.org
Subject: Re: mount: can't read superblock on - corrupt leaf - read time tree block corruption detected
Date: Fri, 4 Oct 2024 06:35:49 +0930 [thread overview]
Message-ID: <eec16f9c-b201-484b-bc28-109787b08217@gmx.com> (raw)
In-Reply-To: <43b709da-339d-4ed5-af7a-59d8916366be@gmail.com>
在 2024/10/3 20:02, cwalou@gmail.com 写道:
> Le 03/10/2024 à 12:12, Qu Wenruo a écrit :
>>
>>
>> 在 2024/10/3 18:50, cwalou@gmail.com 写道:
>>> Le 03/10/2024 à 10:08, Qu Wenruo a écrit :
>>>>
>>>>
>>>> 在 2024/10/3 17:02, cwalou@gmail.com 写道:
>>>>> Hello.
>>>>>
>>>>> A 4TB drive taken out of a synology NAS. When I try to mount it, it
>>>>> won't. This is what I did :
>>>>
>>>> Synology has out-of-tree features that upstream kernel doesn't support.
>>>>
>>>> Please ask the vendor for their support.
>>>>
>>>> Thanks,
>>>> Qu
>>>
>>> Thank you for your answer.
>>>
>>> Just for my general knowledge, can you explain me what "out-of-tree
>>> features" means ?
>>
>> Out-of-tree means it's not merged into the upstream Linux kernel.
>>
>> Furthermore, they do not even bother to put a special compat-ro/
>> incompact flags into the super block.
>>
>> So upstream kernel will not even know the fs has unsupported features,
>> until the tree-checker checks the inode flags.
>>
>> Thanks,
>> Qu
>>
>
> Before I start a quest at Synology.
> Is there any way to get around the "can't read superblock on /dev/
> mapper/vg1000-lv." problem?
>
> I mean, is there an option I can pass to 'mount' to skip superblock
> check? Or is there a way to tell him a superblock is available at
> "65536" ("67108864" or "274877906944" which "btrfs rescue super-recover
> -v" tells me are good, see below) ?
The problem is not superblock, but the extra inode flags introduced:
Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.650935] BTRFS critical
(device dm-0: state C): corrupt leaf: root=257 block=2691220668416
slot=0 ino=6039235, unknown incompat flags detected: 0x40000000
Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.650969] BTRFS error
(device dm-0: state C): read time tree block corruption detected on
logical 2691220668416 mirror 1
So far there is no way to disable tree-checker (the sanity checks), as
it brings so many benefits that we can not ignore.
>
> My apologies if my questions seem naive. But file systems and storage
> media are not really my specialty. I'm just trying to help an
> acquaintance who has been diligently backing up his data but is now
> stuck restoring his data.
>
> I think if we solve this problem on this public list, it may help more
> people. That's why even I need to ask synology for help, I'll give
> feedback here.
Unfortunately, to the fs those unknown flags can also be an indicator of
bitflip, thus tree-checker rejects anything that it can not understand.
Considering how frequently those hardware memory bitflips are reported,
we do not provide a way to disable such comprehensive checks.
So this means any new feature introduced by non-upstream contributor
will be rejected, even if most of the fs can still be understood by
upstream kernel.
Thanks,
Qu
>
> Nevertheless, thank you for the answers you already gave me, for taking
> the time to answer me.
>
>>>
>>> I'll ask synology what's happening. Once I'll find a solution (if one
>>> day I find one) I'll let know here.
>>>
>>> Kind regards,
>>>
>>> Walou.
>>>
>>>
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# fdisk -l /dev/sda
>>>>> Disk /dev/sda: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
>>>>> Disk model: 001-2MA101
>>>>> Units: sectors of 1 * 512 = 512 bytes
>>>>> Sector size (logical/physical): 512 bytes / 512 bytes
>>>>> I/O size (minimum/optimal): 512 bytes / 512 bytes
>>>>> Disklabel type: gpt
>>>>> Disk identifier: B7B80A4B-0294-44FD-A368-74B0455D6AF2
>>>>>
>>>>> Device Start End Sectors Size Type
>>>>> /dev/sda1 8192 16785407 16777216 8G Linux RAID
>>>>> /dev/sda2 16785408 20979711 4194304 2G Linux RAID
>>>>> /dev/sda5 21257952 1965122911 1943864960 926.9G Linux RAID
>>>>> /dev/sda6 1965139008 7813827135 5848688128 2.7T Linux RAID
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# lsblk
>>>>> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
>>>>> sda 8:0 0 3.6T 0 disk
>>>>> |-sda1 8:1 0 8G 0 part
>>>>> |-sda2 8:2 0 2G 0 part
>>>>> |-sda5 8:5 0 926.9G 0 part
>>>>> | `-md2 9:2 0 926.9G 0 raid1
>>>>> | `-vg1000-lv 252:0 0 3.6T 0 lvm
>>>>> `-sda6 8:6 0 2.7T 0 part
>>>>> `-md3 9:3 0 2.7T 0 raid1
>>>>> `-vg1000-lv 252:0 0 3.6T 0 lvm
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# cat /proc/mdstat
>>>>> Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
>>>>> md3 : active (auto-read-only) raid1 sda6[1]
>>>>> 2924343040 blocks super 1.2 [2/1] [_U]
>>>>>
>>>>> md2 : active raid1 sda5[3]
>>>>> 971931456 blocks super 1.2 [2/1] [U_]
>>>>>
>>>>> unused devices: <none>
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# lvm pvscan
>>>>> WARNING: PV /dev/md2 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> WARNING: PV /dev/md3 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> PV /dev/md2 VG vg1000 lvm2 [926.90 GiB / 0 free]
>>>>> PV /dev/md3 VG vg1000 lvm2 [2.72 TiB / 0 free]
>>>>> Total: 2 [<3.63 TiB] / in use: 2 [<3.63 TiB] / in no VG: 0 [0 ]
>>>>>
>>>>> root@user-NUC10i7FNH:~# lvm vgscan
>>>>> WARNING: PV /dev/md2 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> WARNING: PV /dev/md3 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> Found volume group "vg1000" using metadata type lvm2
>>>>>
>>>>> root@user-NUC10i7FNH:~# lvm lvscan
>>>>> WARNING: PV /dev/md2 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> WARNING: PV /dev/md3 in VG vg1000 is using an old PV header, modify
>>>>> the VG to update.
>>>>> ACTIVE '/dev/vg1000/lv' [<3.63 TiB] inherit
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# mount -t btrfs -o rescue=all,ro /dev/
>>>>> vg1000/lv /
>>>>> mnt/test/
>>>>> mount: /mnt/test: can't read superblock on /dev/mapper/vg1000-lv.
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# ll /dev/vg1000/lv /dev/mapper/vg1000-lv
>>>>> lrwxrwxrwx 1 root root 7 oct. 2 17:34 /dev/mapper/vg1000-lv -
>>>>> > ../dm-0
>>>>> lrwxrwxrwx 1 root root 7 oct. 2 17:34 /dev/vg1000/lv -> ../dm-0
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# tail log/kern.log
>>>>> Oct 2 17:30:57 user-NUC10i7FNH kernel: [ 1697.255079] BTRFS: device
>>>>> label 2017.12.01-16:57:32 v15217 devid 1 transid 15800483 /dev/mapper/
>>>>> vg1000-lv scanned by mount (2939)
>>>>> Oct 2 17:30:57 user-NUC10i7FNH kernel: [ 1697.257012] BTRFS info
>>>>> (device dm-0): first mount of filesystem
>>>>> 320f5288-777d-43eb-84e3-4ac70573ec6b
>>>>> Oct 2 17:30:57 user-NUC10i7FNH kernel: [ 1697.257061] BTRFS info
>>>>> (device dm-0): using crc32c (crc32c-intel) checksum algorithm
>>>>> Oct 2 17:30:57 user-NUC10i7FNH kernel: [ 1697.257079] BTRFS info
>>>>> (device dm-0): disk space caching is enabled
>>>>> Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.650935] BTRFS critical
>>>>> (device dm-0: state C): corrupt leaf: root=257 block=2691220668416
>>>>> slot=0 ino=6039235, unknown incompat flags detected: 0x40000000
>>>>> Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.650969] BTRFS error
>>>>> (device dm-0: state C): read time tree block corruption detected on
>>>>> logical 2691220668416 mirror 1
>>>>> Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.654160] BTRFS critical
>>>>> (device dm-0: state C): corrupt leaf: root=257 block=2691220668416
>>>>> slot=0 ino=6039235, unknown incompat flags detected: 0x40000000
>>>>> Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.654189] BTRFS error
>>>>> (device dm-0: state C): read time tree block corruption detected on
>>>>> logical 2691220668416 mirror 2
>>>>> Oct 2 17:31:01 user-NUC10i7FNH kernel: [ 1701.654337] BTRFS info
>>>>> (device dm-0: state C): last unmount of filesystem
>>>>> 320f5288-777d-43eb-84e3-4ac70573ec6b
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# btrfs rescue super-recover -v /dev/vg1000/lv
>>>>> All Devices:
>>>>> Device: id = 1, name = /dev/vg1000/lv
>>>>>
>>>>> Before Recovering:
>>>>> [All good supers]:
>>>>> device name = /dev/vg1000/lv
>>>>> superblock bytenr = 65536
>>>>>
>>>>> device name = /dev/vg1000/lv
>>>>> superblock bytenr = 67108864
>>>>>
>>>>> device name = /dev/vg1000/lv
>>>>> superblock bytenr = 274877906944
>>>>>
>>>>> [All bad supers]:
>>>>>
>>>>> All supers are valid, no need to recover
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# btrfs rescue zero-log /dev/vg1000/lv
>>>>> Clearing log on /dev/vg1000/lv, previous log_root 0, level 0
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# btrfs check /dev/vg1000/lv
>>>>> Opening filesystem to check...
>>>>> Checking filesystem on /dev/vg1000/lv
>>>>> UUID: 320f5288-777d-43eb-84e3-4ac70573ec6b
>>>>> [1/7] checking root items
>>>>> [2/7] checking extents
>>>>> Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
>>>>> ignoring invalid key
>>>>> Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
>>>>> [...line repeated many times
>>>>> Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
>>>>> ignoring invalid key
>>>>> Invalid key type(BLOCK_GROUP_ITEM) found in root(202)
>>>>> ignoring invalid key
>>>>> [3/7] checking free space cache
>>>>> [4/7] checking fs roots
>>>>> [5/7] checking only csums items (without verifying data)
>>>>> [6/7] checking root refs
>>>>> [7/7] checking quota groups skipped (not enabled on this FS)
>>>>> found 2726275964928 bytes used, no error found
>>>>> total csum bytes: 839025944
>>>>> total tree bytes: 3015049216
>>>>> total fs tree bytes: 1991966720
>>>>> total extent tree bytes: 95895552
>>>>> btree space waste bytes: 555710555
>>>>> file data blocks allocated: 3567579688960
>>>>> referenced 2977409900544
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# btrfs property get /dev/mapper/vg1000-lv
>>>>> label=2017.12.01-16:57:32 v15217
>>>>>
>>>>>
>>>>> root@user-NUC10i7FNH:~# btrfs version
>>>>> btrfs-progs v5.16.2
>>>>>
>>>>>
>>>>> The most surprising is that on a Windows 10, "DiskInternals Linux
>>>>> Reader" (a paid software) shows me the content of this disk (and
>>>>> asks me
>>>>> to pay for copying the data).
>>>>>
>>>>>
>>>>> Any idea ?
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
next prev parent reply other threads:[~2024-10-03 21:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-03 7:32 mount: can't read superblock on - corrupt leaf - read time tree block corruption detected cwalou
2024-10-03 8:08 ` Qu Wenruo
2024-10-03 9:20 ` cwalou
2024-10-03 10:12 ` Qu Wenruo
2024-10-03 10:32 ` cwalou
2024-10-03 21:05 ` Qu Wenruo [this message]
2024-10-08 19:32 ` Johannes Hirte
2024-10-08 21:01 ` Qu Wenruo
2024-10-09 15:00 ` Johannes Hirte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eec16f9c-b201-484b-bc28-109787b08217@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=cwalou@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=wqu@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).