ハードウェアの問題なしでbtrfsがそれ自体クラッシュしますか?回復する方法?

ハードウェアの問題なしでbtrfsがそれ自体クラッシュしますか?回復する方法?

BTRFSでフォーマットされたLUKS暗号化SSDにManjaro KDEをインストールしました。システムはほとんど最新であり、最後の更新はおそらく1〜2週間前でした。

突然読み取り専用に切り替わり、dmesgは次のような何十ものエラーを表示します。

parent transid verify failed on * wanted * found *

(しかし非常に迷惑です。Firefoxは書き込み可能なディスクがないとページをロードできません。これが私がこの問題を最初に見つけた理由です。)

再起動しようとしましたが、起動プロセスで同じ問題が発生しました。読み取り専用でのみマウントできたため、緊急ルートシェルに入りました。

今、USB経由で開始されたライブセッションに参加しています。すべてのデータをバックアップできました(とにかく、ほとんどはバックアップされましたが、確実にするため)。

システムを再インストールする必要がないようにファイルシステムを修復してみましたが、これまで何も機能しませんでした。私は試した:

# btrfs check --repair /dev/mapper/luks-455a911f-2d10-4548-a671-e1d4b8295bce 
enabling repair mode
WARNING:

        Do not use --repair unless you are advised to do so by a developer
        or an experienced user, and then only after having accepted that no
        fsck can successfully repair all types of filesystem corruption. Eg.
        some software or hardware bugs can fatally damage a volume.
        The operation will start in 10 seconds.
        Use Ctrl-C to stop it.
10 9 8 7 6 5 4 3 2 1
Starting repair.
Opening filesystem to check...
Checking filesystem on /dev/mapper/luks-455a911f-2d10-4548-a671-e1d4b8295bce
UUID: 4dd8f7e8-5ffb-4405-b3d8-789ea877483d
[1/7] checking root items
parent transid verify failed on 429604962304 wanted 724347 found 724505
parent transid verify failed on 429604962304 wanted 724347 found 724505
Ignoring transid failure
parent transid verify failed on 429597687808 wanted 722745 found 724505
parent transid verify failed on 429597687808 wanted 722745 found 724505
Ignoring transid failure
ERROR: child eb corrupted: parent bytenr=449465008128 item=361 parent level=1 child bytenr=429597687808 child level=1
ERROR: failed to repair root items: Input/output error

返品:

# btrfs scrub start /mnt/1/
scrub started on /mnt/1/, fsid 4dd8f7e8-5ffb-4405-b3d8-789ea877483d (pid=16297)
# btrfs scrub status /mnt/1/
UUID:             4dd8f7e8-5ffb-4405-b3d8-789ea877483d
Scrub started:    Tue Sep 21 11:31:18 2021
Status:           aborted
Duration:         0:00:01
Total to scrub:   446.54GiB
Rate:             2.47GiB/s
Error summary:    no errors found

btrfsはdmesg出力をクリーンアップしました:

[Sep21 09:32] BTRFS info (device dm-1): scrub: started on devid 1
[  +1.497704] BTRFS error (device dm-1): parent transid verify failed on 429604962304 wanted 724347 found 724505
[  +0.001083] BTRFS info (device dm-1): scrub: not finished on devid 1 with status: -5

返品:

# btrfs filesystem balance start -dusage=60 -musage=60 /mnt/1
ERROR: error during balancing '/mnt/1': Input/output error
There may be more info in syslog - try dmesg | tail

バランス中のdmesg:

[Sep21 09:34] BTRFS info (device dm-1): disk space caching is enabled
[  +0.000011] BTRFS info (device dm-1): has skinny extents
[  +0.175630] BTRFS info (device dm-1): enabling ssd optimizations
[  +6.367553] BTRFS error (device dm-1): csum mismatch on free space cache
[  +0.000004] BTRFS warning (device dm-1): failed to load free space cache for block group 19349372928, rebuilding it now
[  +0.001476] BTRFS error (device dm-1): space cache generation (724505) does not match inode (720863)
[  +0.000003] BTRFS warning (device dm-1): failed to load free space cache for block group 21496856576, rebuilding it now
[  +0.149606] BTRFS info (device dm-1): balance: start -dusage=60 -musage=60 -susage=60
[  +0.000677] BTRFS info (device dm-1): relocating block group 670257119232 flags data
[  +1.210621] BTRFS info (device dm-1): found 7370 extents, stage: move data extents
[  +0.033649] BTRFS error (device dm-1): parent transid verify failed on 429608239104 wanted 724347 found 724505
[  +0.007518] BTRFS info (device dm-1): balance: ended with status: -5

dmesg行のどれもハードウェアの問題のように見えないので、btrfsのバグが原因で自己破壊されると疑われます... :(

また、SMARTがよさそうです。

# nvme smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                        : 0
temperature                             : 39 C (312 Kelvin)
available_spare                         : 100%
available_spare_threshold               : 10%
percentage_used                         : 0%
endurance group critical warning summary: 0
data_units_read                         : 5,042,443
data_units_written                      : 11,709,865
host_read_commands                      : 34,269,040
host_write_commands                     : 109,286,265
controller_busy_time                    : 284
power_cycles                            : 482
power_on_hours                          : 417
unsafe_shutdowns                        : 13
media_errors                            : 0
num_err_log_entries                     : 1
Warning Temperature Time                : 0
Critical Composite Temperature Time     : 0
Thermal Management T1 Trans Count       : 0
Thermal Management T2 Trans Count       : 0
Thermal Management T1 Total Time        : 0
Thermal Management T2 Total Time        : 0

関連情報