私の質問:

私の質問:

私はフルディスク暗号化を備えたシステムでArch Linuxを実行しています。ストレージはSamsung 950 Pro NVMeドライブ(512GB)です。私はこのコンピュータを数ヶ月間使用してきました。これまで悪い行動はありませんでした。 (ディスクには512個のうち21GBのみ使用しました。)

btrfs-progs v4.5.1

今日は普通にシステムを使ってウェブサーフィンをしました。 Firefoxが明白な理由なしに突然応答を停止しました。これによりプラズマが反応を停止します。私はKDEを辞めません。

ユーザーセッションを終了し(pkill -u me)、startxに疲れました。それから私のルートファイルシステムが読み取り専用であることがわかりました。

最初のステップは再起動します。それは役に立ちません。

ルートファイルシステムはマウントされません。エラーメッセージは次のとおりです。

running hook [encrypt]
performing fsck on /dev/mapper/cryptroot
mounting /dev/mapper/cryptroot on real root
BTRFS error (device dm-0) in btrfs_replay_log: 2421: errno=-22 unknown (failed to recover log tree)
BTRFS error (device dm-0): cleaner transaction attach returned -30
BTRFS open_ctree failed
mount: wrong fs type, bad option, bad superblock on /dev/mapper/cryptroot
dropped into emergency shell

手書きで書いてみると小さな句読点などは内容が正確ではありません。

Journalctl -p3は関連性があるように見えるものを報告しません。

編集する:繰り返し再起動しても問題は解決しません。エラーはまだ同じです。

LiveUSB環境で起動し、次のコマンドを実行します。

cryptsetup open --type luks /dev/xxx cryptroot
mount -t btrfs -o noatime,nodiratime,ssd,compress=lzo,defaults,space_cache,subvolid=257 /dev/mapper/cryptroot /mnt

エラーメッセージは同じです。

[ 2300.967048] BTRFS info (device dm-0): use ssd allocation scheme
[ 2300.967058] BTRFS info (device dm-0): use lzo compression
[ 2300.967066] BTRFS info (device dm-0): disk space caching is enabled
[ 2300.967069] BTRFS: has skinny extents
[ 2300.995393] BTRFS: error (device dm-0) in btrfs_replay_log:2413: errno=-22 unknown (Failed to recover log tree)
[ 2300.997617] BTRFS info (device dm-0): delayed_refs has NO entry
[ 2300.997673] BTRFS error (device dm-0): cleaner transaction attach returned -30
[ 2301.035405] BTRFS: open_ctree failed

編集2:

次の2つのリンクに基づいています。

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ
https://btrfs.wiki.kernel.org/index.php/Btrfs-zero-log

私はチャンスをつかみ、次のコマンドを実行することにしました。

btrfs rescue zero-log

これは機能し、ファイルシステムをマウントできます。

編集3:

btrfs check --repairを実行しました。出力は次のとおりです。

root@broken / # umount /mnt 
root@broken / # btrfs check --repair /dev/mapper/cryptroot 
enabling repair mode
Checking filesystem on /dev/mapper/cryptroot
checking extents
bad metadata [292414476288, 292414492672) crossing stripe boundary
bad metadata [292414541824, 292414558208) crossing stripe boundary
bad metadata [292414672896, 292414689280) crossing stripe boundary
bad metadata [292414869504, 292414885888) crossing stripe boundary
bad metadata [292415000576, 292415016960) crossing stripe boundary
bad metadata [292415066112, 292415082496) crossing stripe boundary
bad metadata [292415131648, 292415148032) crossing stripe boundary
bad metadata [292415262720, 292415279104) crossing stripe boundary
bad metadata [292415328256, 292415344640) crossing stripe boundary
bad metadata [292415393792, 292415410176) crossing stripe boundary
repaired damaged extent references
Fixed 0 roots.
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
checking csums
checking root refs
checking quota groups
Ignoring qgroup relation key 258
Ignoring qgroup relation key 263
Ignoring qgroup relation key 71776119061217538
Ignoring qgroup relation key 71776119061217543
Counts for qgroup id: 257 are different
our:            referenced 10412273664 referenced compressed 10412273664
disk:           referenced 10411311104 referenced compressed 10411311104
diff:           referenced 962560 referenced compressed 962560
our:            exclusive 10412273664 exclusive compressed 10412273664
disk:           exclusive 10412273664 exclusive compressed 10412273664
found 21570773057 bytes used err is 0
total csum bytes: 19563456
total tree bytes: 403767296
total fs tree bytes: 349667328
total extent tree bytes: 27328512
btree space waste bytes: 66313360
file data blocks allocated: 39882014720
referenced 28043988992
extent buffer leak: start 20987904 len 16384
extent buffer leak: start 292688068608 len 16384
extent buffer leak: start 60915712 len 16384
extent buffer leak: start 29569581056 len 16384
extent buffer leak: start 29569597440 len 16384
extent buffer leak: start 292412063744 len 16384
extent buffer leak: start 292405870592 len 16384
extent buffer leak: start 292405936128 len 16384
extent buffer leak: start 292413964288 len 16384

それからdmesgをチェックし、次のエラーメッセージを見ました。

[ 4925.562422] BTRFS info (device dm-0): use ssd allocation scheme
[ 4925.562432] BTRFS info (device dm-0): use lzo compression
[ 4925.562440] BTRFS info (device dm-0): disk space caching is enabled
[ 4925.562444] BTRFS: has skinny extents
[ 4925.578705] BTRFS error (device dm-0): qgroup generation mismatch, marked as inconsistent
[ 4925.584033] BTRFS: checking UUID tree

私の質問:

  1. その原因は何ですか?
  2. 次は何をすべきですか?

目標を超えた参照: https://wiki.archlinux.org/index.php/Btrfs#BTRFS:_open_ctree_failed (これは私の問題ではないようです。マルチデバイスbtrfs fsがなく、/etc/mkinitcpio.confのHOOKSでbtrfsを使用しません。)

ベストアンサー1

おすすめ記事