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