私は Linux 4.10.8 で btrfs を使用しています。ハードリブート後、Google Chrome はローカルデータが見つからないと表示しました。関連するユーザー ID を追加するとすぐに一部が戻ってきたので、何が起こっているのか気になりました。~/.config/google-chrome を調べてみると、次のことがわかりました。
$ ls -i
...
3529523 'Local State'
3529523 'Local State'
...
これは同じファイルで、同じ inode が 2 回あります。Google Chrome が混乱したのは、おそらくこれが原因だと思います。再起動のたびに正常に動作しているように見えますが、この Local\ State ファイルに大量の書き込みが行われているのです。しかし、再起動すると、ローカル状態を読み込めないというメッセージが表示されます。SMART チェックも btrfsck もエラーを報告しません。何かアイデアはありますか?
答え1
私はカーネルのbtrfsで同じ問題を抱えています4.14.0
が、重複したファイルは でした.config/google-chrome-unstable/Default/TransportSecurity
。私は次のようにすることでそれを修正することができました。
cd .config/google-chrome-unstable/Default
mkdir -p ~/tmp/Default
chmod 700 ~/tmp/Default
tar cf - . | (cd ~/tmp/Default && tar xf -)
cd ~
rm -rf .config/google-chrome-unstable/Default # this will error because the directory isn't empty because the duplicated file left some residue
mv .config/google-chrome-unstable/Default{,.old}
mv ~/tmp/Default .config/google-chrome-unstable/
さて、私が以下を取得するとls -l .config/google-chrome-unstable/Default.old
:
ls: cannot access '.config/google-chrome-unstable/Default.old/TransportSecurity': No such file or directory
total 0
-????????? ? ? ? ? ? TransportSecurity
この時点で、シングルユーザー モードで再起動し、次を実行しました。
umount /home
btrfs check --repair /dev/sdc1
破損したディレクトリが検出され、修復されました。そこから開始できるかもしれませんが、完全性のために私が実行した他の手順も残しておきます。