ext4から変換した後、Btrfsが強制的に読み取り専用/破損

ext4から変換した後、Btrfsが強制的に読み取り専用/破損

最近、btrfs-convertを使用して、lvmボリュームのext4ファイルシステムをbtrfsに移行しました。後でインストール後にいくつかの問題があることがわかりました。

ディスクにデータを書き込むことに関連するタスクを実行するdmesgscrub。残念ながら、その一つはext2_savedロールバック用です。 csumエラーが発生したファイルを削除すると、問題が解決されると思います。だからバックアップやその他のファイルを削除しました。

再起動後、scrub いいえエラーが見つかりました。ただし、インストール中に次のメッセージが表示されますbdev /dev/mapper/my-volume errs: wr 0, rd 0, flush 0, corrupt 608, gen 0。これでディスクに書き込むことができるようです(ファイルの名前を変更するのはうまくいきますが、追加のテストはしませんでした)。

このメッセージが私を心配する必要がありますか、それとも無視してもいいですか?またはより良い方法は:原因を見つける方法は?スクラビングとbtrfs check --repairでも問題は見つかりませんでした。


修正する:

Memtestを実行し、不良ブロックがあることを確認しました。どちらのテスト結果もきれいでした。また、カーネルを.dllに更新しました4.9.9-gentoo。カーネルをコンパイルするときCONFIG_BTRFS_FS_CHECK_INTEGRITY有効オプション(別名Btrfs with integrity check tool compiled in (DANGEROUS))現在、このオプションは無効になっています。

その後、Chromeを実行してみました。上記のディスクで何かをしたようです。しばらくして、dmesgで次の内容を読みました。

*Some stacktrace*    
btrfs_finish_ordered_io:someline errno=-95 unknown
forced readonly

削除により、次のメッセージが残りました。

cleaner transaction attach returned -30

また、チェックサムエラーが引き続き発生したときにこれらのエラーが発生しましたが、今は解決しました。今私はその理由を見つけることができません。

スクラブを再実行しましたが、エラーが0回発生しました。btrfs check --repair /dev/mapper/my-volume今実行すると、fixed discount file extents for some inodes更新前の同じコマンドで何も見つからなかったため、これは明らかに新しいエラーです。

データを読み取り専用で別のディスクに移動し、フォーマットする必要があります。

修正する:

読み取り専用モードでデータをコピーすると効率的で、データが失われないようです。 ext4からbtrfsへの変換がまだ完全に機能していないようです。


システムメッセージ:

Kernel: 4.4.39-gentoo; now: 4.9.9-gentoo
btrfs-progs v.4.9

答え1

btrfsはデバイス固有の統計を保持し、それをディスクに永続的に保存します。手動で印刷できますbtrfs device stats device|mountpoint。また、マウントにも印刷されます(少なくともゼロでない場合)。

したがって、あなたが見るのは、過去に損傷が発見されただけです。 -zフラグを使用してカウンタを消去できますbtrfs device stats -z /dev/mapper/my-volume

もちろん、最初に損傷を引き起こした原因を見つけるのが最善です。 btrfs変換エラーか、それでも破損を引き起こす可能性があるもの(信頼できないハードウェア)があるかどうかはわかりません。よくわからない場合は、記憶力テストを試すことをお勧めします。

(もちろん、特にbtrfsなどの比較的新しいファイルシステムを使用する場合は、バックアップする必要があります。)

関連情報