btrfsでCentOS7のルートディレクトリにしていたUSBメモリが壊れた。。。。

以前から調子が悪く、だましだまし使っていたCentOS7のルートディレクトリを入れていたUSBメモリがついに壊れた。

昨日btrfsが急にreadonlyでのマウントになっていた。

ログを見たりしたが、原因がわかるはずもなく、とりあえずカーネルが新しければなんとかなるかもしれんと思って、fedora23のモノにさしてみて、btrfs checkしてみたら、3つのスナップショットのツリーが壊れているようだったので、そのスナップショットを削除してみようとしたところ、削除できず(正確には30分ほど待ってもなんとも反応がなかった)。

もうこれはUSBメモリが壊れたんだろうなあと踏んで、USBメモリのファイルシステムを消したうえでchkflshで確認してみたところ、最後まで読み込めずにエラーで終了。その後、USBメモリはどうやっても認識させられなくなってしまった。(あ~あ)

もうしょうがないので、別のUSBメモリを用意して、ファイルシステムを作成。バックアップから復旧して、grub2-install やら kernel の reinstall やら grub2-mkconfig やらをして、復旧させた。

この別のUSBメモリというのも、windows8でReadyBoost用に使っていたものなので、耐久性にはおそらく難があって、また近々似たようなことが起こるかもしれない。

(/var/log/messagesにはこんな感じとか。もう手に負えなくなった。)

kernel: BTRFS: bdev /dev/sdb3 errs: wr 0, rd 0, flush 0, corrupt 2470, gen 0
kernel: BTRFS info (device sdb3): The free space cache file(29360128) is invalid. skip it
kernel: BTRFS info (device sdb3): The free space cache file(10766778368) is invalid. skip it
kernel: BTRFS info (device sdb3): The free space cache file(10900996096) is invalid. skip it
kernel: BTRFS (device sdb3): bad tree block start 16626202429509485347 30539776
kernel: BTRFS (device sdb3): bad tree block start 16482052057028018723 30539776
kernel: BTRFS (device sdb3): bad tree block start 16626202429509485347 30539776
kernel: BTRFS (device sdb3): bad tree block start 16482052057028018723 30539776
kernel: ------------[ cut here ]------------
kernel: WARNING: at fs/btrfs/super.c:260 __btrfs_abort_transaction+0xed/0x140 [btrfs]()
kernel: Workqueue: btrfs-extent-refs btrfs_extent_refs_helper [btrfs]
kernel: ffff88009abefa80 00000000ec287b06 ffff88009abefa38 ffffffff81635a0c
kernel: ffff88009abefa70 ffffffff8107b200 ffff880036aaf0b0 ffff8800a907a000
kernel: 00000000fffffffb ffffffffa0364f70 0000000000001766 ffff88009abefad8
kernel: Call Trace:
kernel: [<ffffffff81635a0c>] dump_stack+0x19/0x1b
kernel: [<ffffffff8107b200>] warn_slowpath_common+0x70/0xb0
kernel: [<ffffffff8107b29c>] warn_slowpath_fmt+0x5c/0x80
kernel: [<ffffffffa02b4f6d>] __btrfs_abort_transaction+0xed/0x140 [btrfs]
kernel: [<ffffffffa02c811d>] __btrfs_free_extent+0x30d/0xbf0 [btrfs]
kernel: [<ffffffff816322f5>] ? __slab_free+0x10e/0x277
kernel: [<ffffffffa02cd760>] __btrfs_run_delayed_refs+0x430/0x1220 [btrfs]
kernel: [<ffffffff810be3fe>] ? account_entity_dequeue+0xae/0xd0
kernel: [<ffffffffa02d2693>] btrfs_run_delayed_refs.part.65+0x73/0x270 [btrfs]
kernel: [<ffffffffa02d2938>] delayed_ref_async_start+0x88/0xa0 [btrfs]
kernel: [<ffffffffa0314f92>] normal_work_helper+0xc2/0x290 [btrfs]
kernel: [<ffffffffa0315392>] btrfs_extent_refs_helper+0x12/0x20 [btrfs]
kernel: [<ffffffff8109d5fb>] process_one_work+0x17b/0x470
kernel: [<ffffffff8109e3cb>] worker_thread+0x11b/0x400
kernel: [<ffffffff8109e2b0>] ? rescuer_thread+0x400/0x400
kernel: [<ffffffff810a5aef>] kthread+0xcf/0xe0
kernel: [<ffffffff810a5a20>] ? kthread_create_on_node+0x140/0x140
kernel: [<ffffffff81646118>] ret_from_fork+0x58/0x90
kernel: [<ffffffff810a5a20>] ? kthread_create_on_node+0x140/0x140
kernel: ---[ end trace 23a9c37afe62a6dc ]---
kernel: BTRFS: error (device sdb3) in __btrfs_free_extent:5990: errno=-5 IO failure
kernel: BTRFS info (device sdb3): forced readonly
kernel: BTRFS: error (device sdb3) in btrfs_run_delayed_refs:2792: errno=-5 IO failure
kernel: BTRFS critical (device sdb3): could not do orphan cleanup -22
kernel: BTRFS: sdb3 checksum verify failed on 970817536 wanted 497A7806 found D2F04D3 level 0
kernel: BTRFS: sdb3 checksum verify failed on 682786816 wanted 55E62E9B found E743A3AF level 0
kernel: BTRFS: sdb3 checksum verify failed on 10811473920 wanted 64C40467 found B7E215D4 level 0

コメントを残す