Need help, BTRFS drive failing to mount

dmesg | grep ‘sda’

dmesg | grep 'sda'

[    2.123487] sd 5:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/932 GiB)
[    2.123494] sd 5:0:0:0: [sda] 4096-byte physical blocks
[    2.123516] sd 5:0:0:0: [sda] Write Protect is off
[    2.123520] sd 5:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    2.123546] sd 5:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.123585] sd 5:0:0:0: [sda] Preferred minimum I/O size 4096 bytes
[    2.154243] sd 5:0:0:0: [sda] Attached SCSI disk
[    2.785715] BTRFS: device label hdd devid 1 transid 7692 /dev/sda scanned by systemd-udevd (413)
[   13.328112] BTRFS info (device sda): using crc32c (crc32c-intel) checksum algorithm
[   13.328120] BTRFS info (device sda): using free space tree
[   13.377726] BTRFS info (device sda): bdev /dev/sda errs: wr 0, rd 0, flush 0, corrupt 8374, gen 0
[   13.387832] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 1 wanted 7691 found 7579
[   13.397171] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 2 wanted 7691 found 7579
[   13.397190] BTRFS error (device sda): failed to read block groups: -5
[   13.397533] BTRFS error (device sda): open_ctree failed
[   63.836458] BTRFS: device label hdd devid 1 transid 7692 /dev/sda scanned by pool-udisksd (2273)
[   63.841741] BTRFS info (device sda): using crc32c (crc32c-intel) checksum algorithm
[   63.841753] BTRFS info (device sda): using free space tree
[   63.844016] BTRFS info (device sda): bdev /dev/sda errs: wr 0, rd 0, flush 0, corrupt 8374, gen 0
[   63.844570] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 1 wanted 7691 found 7579
[   63.844723] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 2 wanted 7691 found 7579
[   63.844731] BTRFS error (device sda): failed to read block groups: -5
[   63.847775] BTRFS error (device sda): open_ctree failed
[  116.668835] BTRFS: device label hdd devid 1 transid 7692 /dev/sda scanned by pool-udisksd (3098)
[  116.671935] BTRFS info (device sda): using crc32c (crc32c-intel) checksum algorithm
[  116.671943] BTRFS info (device sda): using free space tree
[  116.673971] BTRFS info (device sda): bdev /dev/sda errs: wr 0, rd 0, flush 0, corrupt 8374, gen 0
[  116.674343] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 1 wanted 7691 found 7579
[  116.674476] BTRFS error (device sda): parent transid verify failed on logical 50888704 mirror 2 wanted 7691 found 7579
[  116.674485] BTRFS error (device sda): failed to read block groups: -5
[  116.675284] BTRFS error (device sda): open_ctree failed

ADDITIONAL DETAILS:

  • I’m using Fedora (Cinnamon)
  • It is set to automount, but it is NOT my /home, I instead decided to symlink specific directories to that drive (Downloads, Pictures, etc.)

Did you create a btrfs volume (partition) and subvolume?

I guess that since you are looking at sda and using btrfs you possibly need to create the btrfs partition (volume) then create a sub-volume and use the subvolume for the file system. It would be mounted similar to the way / and /home are mounted in /etc/fstab.

There are a lot of threads here about how to do that if you have not already researched the process.

Let me clarify.
I have 2 hard drives.

An SSD
An HDD

When I installed Fedora only the SSD was attached.
Later I decided to add an HDD. I used the Disks utility to mount it and configure automount.

The fstab entry it produced looks something like this

/dev/disk/by-uuid/222b23c2-f526-4cd2-abbc-cafb196a3ebd /mnt/222b23c2-f526-4cd2-abbc-cafb196a3ebd auto nosuid,nodev,nofail,x-gvfs-name=hdd 0 0

It has been mounting perfectly fine up until today. In the past months I was able to use the system with this drive configuration with no issue.

Note: please ignore the UUID mismatch in the screenshot and the fstab entry. That is because I copied the fstab line from an older post I made.

I am not a btrfs specialist, just a user.
Looking at the screenshot it looks like you have used /dev/sda for the btrfs file system, which is the unpartitioned harddrive. Is this correct?

Anytime I use btrfs, I create a partition, e.g. /dev/sda1, first and format the filesystem in this partition. This never failed until now.

If you use /dev/sda instead, as far as I understand, the partition table is part of your file system and thus overwritten by the file system. This configuration is at least not recommended. Might this be the source of trouble, that some tool has overwritten the partition table and thus part of your btrfs filesysstem?
I would highly recommend to use a partition for the filesystem and not the whole disk (next time)…

Beyond this, there is the command btrfs rescue:

$ btrfs rescue <subcommand> <args>

You can find more detailed information on the man pages for btrfs-rescue:

$ man btrfs-rescue

I cannot guide you nuch further from here and hope this leads you to a solution.

I cross my fingers!

In case the rescue is successful and there is no hardware damage to the drive, I would recommend to backup the data, create a new partition table on the drive, create a partition, format this partition with btrfs, create a btrfs subvolume, mount this subvolume and restore the data there.

I hope this helps…

Hello @ransan ,
Could you please sudo btrfs subvolume list /dev/sda? Then post result. Do NOT try rescue or any data correction stuff with the btrfs utilities in this case as nothing is apparantly wrong with your filesystem as of yet.

Please do not recommend this unless we know the filesystem is damaged. It can potentially create more problems without being in fact necessary as of yet.

sudo btrfs subvolume list /dev/sda
[sudo] password for shindo:
ERROR: not a directory: /dev/sda
ERROR: can’t access ‘/dev/sda’

Okay, what about the actual device you are trying to mount by uuid instead of /dev/sda? So /dev/disk/by-uuid/ If btrfs isn’t seeing it it isnt formatted as btrfs

/dev/disk/by-uuid/6bc736e6-fbd0-47bf-9d80-49c05c90a9e5 /mnt/222b23c2-f526-4cd2-abbc-cafb196a3ebd auto nosuid,nodev,nofail,x-gvfs-name=hdd,noauto,x-gvfs-show 0 0

The reason this is the way it is is because I had a previous drive that used the 222b23c2 UUID. Since it was already mounted to that path, I decided to use the same mount point for the new 6bc736e6 drive.

Side note: the old drive that starts with 222b is not attached to the PC at all anymore

Okay so when you did the replacement did you format the new drive?

yes as a btrfs system, worked fince since, only had an issue today

Okay so I’m sorry for being a bit redundant here but did you make a subvolume after the formatting? There needs to be a subvolume to mount, not the volume(device).

no, i don’t think i did such a thing
i guess my files are done then
oh well, lesson learned

Why done?

because it sounds like i was supposed to do the subvolume thing and i didn’t

Did you dd to this drive the contents of your other drive?

No i temporarily moved them to my main SSD, then moved them back after attaching the new hard drive.

So they are likely still on the main SSD?

unfortunately not
i’d have just reformatted and continued with my day if they were still there

I am sorry for your woes. But I have been there before and now I am super paranoid about my data backups.
And you still would need a subvolume to save your data to so I am having a hard time understanding how you were able to originally copy files to it.