Am Samstag, 17. November 2018, 09:03:04 CET schrieb Qu Wenruo:
> On 2018/11/17 上午12:17, Stephan Olbrich wrote:
> > Hi,
> > 
> > a few days ago my root file system (simple btrfs on a SSD, no RAID or
> > anything) suddenly became read only. Looking at dmsg, I found this:
> > 
> > [   19.285020] BTRFS error (device sda2): bad tree block start, want
> > 705757184 have 82362368
> Does this only occurs once?
> 
> If only once, are you using SINGLE metadata profile (default for SSD)?
> If using DUP/RAID1 it may have a chance to recover.
It shows up once after reboot for each partition.
I'm using SINGLE metadata.

> 
> > [   19.285042] BTRFS: error (device sda2) in __btrfs_free_extent:6804:
> > errno=-5 IO failure
> The problem is in extent tree.

I checked my logs again, the __btrfs_free_extent error is missing for the /home 
partition:

[ 3154.066544] BTRFS error (device sda4): bad tree block start, want 560119808 
have 4330389667183373366
[ 3154.066558] BTRFS: error (device sda4) in btrfs_run_delayed_refs:2934: 
errno=-5 IO failure
[ 3154.066561] BTRFS info (device sda4): forced readonly
[ 3154.066904] BTRFS error (device sda4): pending csums is 360448

> 
> If there is no other problem, your data should be OK.
> 
> You could still try to mount the fs RO to salvage data.

I'm not so much worried about salvaging data, as I have a current backup. I'm 
more worried 
how reliable the backup is, as I'm not sure, when the errors first started. But 
if the data is
OK, then the backup (snapshots on another drive) should be OK as well I guess.

> > [   19.285048] BTRFS info (device sda2): forced readonly
> > [   19.285051] BTRFS: error (device sda2) in btrfs_run_delayed_refs:2934:
> > errno=-5 IO failure [   19.287213] BTRFS error (device sda2): pending
> > csums is 41889792
> > 
> > Late on I got the same errors for my /home partition (on the same drive)
> > as well. I have snapshots of all partitions on another drive made by
> > btrbk. To get a working system, I made new (rw) snapshots of the most
> > recent backup and setup grub and fstab, so my system would boot from the
> > other drive. Unfortunately now I got the "bad tree block start" error
> > again at least once in dmesg but I didn't save it and it's not in syslog
> > :-( What I remember is, that it was followed by other btrfs error
> > messages saying something about correcting something. And the filesystem
> > was still read/write this time.
> > At the moment I can't reproduce it.
> > 
> > Is there any way to find out, which files are affected by the errors
> > above?
> 
> No files are affected, but an essential tree, extent tree, is corrupted.
> 
> Normally this may prevent RW mount, and even it mounts it can still
> cause problem when doing any write.
> It could even prevent RO mount if the corrupted leaf contains block
> group item.
> 
> But your data should be OK if there is no other corruption, and in that
> case btrfs-restore should work well.
> 
> > I don't really trust the data on the drive I'm using at the
> > moment, as it has shown errors as well, but I have a less current backup
> > on yet another drive but at it is a few weeks old, I don't want to use it
> > to setup the system on the SSD again, but just copy the relevant files if
> > possible. Or is it possible to repair the original file system?
> 
> At least we need "btrfs check" output.
I updated btrfs-progs and run btrfs check for / and /home
No errors are found on / (sda2), but there are errors on /home ??

$ btrfs --version
btrfs-progs v4.19

$ btrfs check /dev/sda2
Opening filesystem to check...
Checking filesystem on /dev/sda2
UUID: 80368989-ffa8-463c-98fb-fe2e28ca7bf3
[1/7] checking root items
[2/7] checking extents
[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 64816218112 bytes used, no error found
total csum bytes: 59518732
total tree bytes: 2180268032
total fs tree bytes: 1965965312
total extent tree bytes: 123289600
btree space waste bytes: 478665777
file data blocks allocated: 151083261952
 referenced 76879990784

$ btrfs check /dev/sda4
Opening filesystem to check...
Checking filesystem on /dev/sda4
UUID: 81c38df8-b7f9-412c-8c88-cfde8db68eb1
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
root 257 inode 7970563 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 20480
root 257 inode 7970564 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 77824
ERROR: errors found in fs roots
found 303386652672 bytes used, error(s) found
total csum bytes: 289501272
total tree bytes: 2336227328
total fs tree bytes: 1766473728
total extent tree bytes: 202014720
btree space waste bytes: 519245278
file data blocks allocated: 6851730792448
 referenced 533348069376

Thanks,
Stephan

> 
> > Some information about my system:
> > Kubuntu 18.04
> > Kernel 4.19.1 when the problem occured, now 4.19.2
> > btrfs-tools 4.15.1
> 
> And "btrfs check" should be executed using latest version.
> 
> Thanks,
> Qu
> 
> > Regards,
> > Stephan




Reply via email to