r/btrfs • u/slutty_butterfly19 • 13h ago
How do I prevent btrfs from killing itself?
This is the second time this happened this year, btrfs goes read-only while using PC, I check dmesg and there's a filesystem corruption, it happened while the drive was at 75% capacity so it wasnt completely full.
Rebooting didnt work
Couldn't run a scrub on a read only system
Btrfs restore doesnt work (zstd frame incomplete)
Can't rollback snapshots, no error just doesn't do it.
Now I'm just sitting here on friday night after work, just copying my data to an external drive so I can reformat my whole system drive because btrfs just tripped over itself?
The drive isnt dying, smartctl (output below) says its fine. I wasn`t doing anything weird with the drive at the time it happened, just watching youtube and chatting on discord, so what gives?? Am I expected to just deal with btrfs just corrupting itself out of nowhere every 3-4 months? How do I prevent this?
=== START OF INFORMATION SECTION ===
Model Number: KINGSTON SNV2S500G
Serial Number: 50026B768682FBF8
Firmware Version: ELFK0S.6
PCI Vendor/Subsystem ID: 0x2646
IEEE OUI Identifier: 0x0026b7
Total NVM Capacity: 500,107,862,016 [500 GB]
Unallocated NVM Capacity: 0
Controller ID: 0
NVMe Version: 1.4
Number of Namespaces: 1
Namespace 1 Size/Capacity: 500,107,862,016 [500 GB]
Namespace 1 Formatted LBA Size: 512
Namespace 1 IEEE EUI-64: 0026b7 68682fbf85
Local Time is: Fri Oct 16 22:40:18 2026 UTC
Firmware Updates (0x12): 1 Slot, no Reset required
Optional Admin Commands (0x0017): Security Format Frmw_DL Self_Test
Optional NVM Commands (0x0057): Comp Wr_Unc DS_Mngmt Sav/Sel_Feat Timestmp
Log Page Attributes (0x1e): Cmd_Eff_Lg Ext_Get_Lg Telmtry_Lg Pers_Ev_Lg
Maximum Data Transfer Size: 64 Pages
Warning Comp. Temp. Threshold: 77 Celsius
Critical Comp. Temp. Threshold: 79 Celsius
Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 5.00W - - 0 0 0 0 0 0
1 + 2.40W - - 1 1 1 1 0 0
2 + 1.90W - - 2 2 2 2 0 0
3 - 0.0500W - - 3 3 3 3 3000 2000
4 - 0.0035W - - 4 4 4 4 10000 40000
Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 1
1 - 4096 0 0
=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
SMART/Health Information (NVMe Log 0x02, NSID 0xffffffff)
Critical Warning: 0x00
Temperature: 55 Celsius
Available Spare: 100%
Available Spare Threshold: 10%
Percentage Used: 7%
Data Units Read: 93,398,328 [47.8 TB]
Data Units Written: 94,409,866 [48.3 TB]
Host Read Commands: 1,120,371,168
Host Write Commands: 1,030,271,917
Controller Busy Time: 1,793
Power Cycles: 930
Power On Hours: 9,216
Unsafe Shutdowns: 196
Media and Data Integrity Errors: 0
Error Information Log Entries: 5,384
Warning Comp. Temperature Time: 0
Critical Comp. Temperature Time: 0
Temperature Sensor 2: 70 Celsius
Thermal Temp. 1 Transition Count: 31
Thermal Temp. 1 Total Time: 12009
Error Information (NVMe Log 0x01, 16 of 63 entries)
Num ErrCount SQId CmdId Status PELoc LBA NSID VS Message
0 5384 0 0x101d 0xc004 0x028 0 1 - Invalid Field in Command
1 5383 0 0x000c 0xc004 0x028 0 0 - Invalid Field in Command
2 5382 0 0x201c 0xc005 - 0 0 - Invalid Field in Command
Self-test Log (NVMe Log 0x06, NSID 0xffffffff)
Self-test status: No self-test in progress
No Self-tests Logged



