btrfs: ls выводит один и тот же файл дважды в каталоге

btrfs: ls выводит один и тот же файл дважды в каталоге

Я использую btrfs с Linux 4.10.8. После жесткой перезагрузки Google Chrome заявил, что не может найти локальные данные. Часть из них вернулась, как только я добавил соответствующие идентификаторы пользователей, поэтому мне стало интересно, что происходит. Я заглянул в ~/.config/google-chrome и нашел это:

$ ls -i 

...
3529523 'Local State'
3529523 'Local State'
...

Это один и тот же файл с одним и тем же inode, дважды. Я предполагаю, что это могло быть причиной того, что 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

Он заметил поврежденный каталог и восстановил его. Вы можете просто начать с этого, но я оставлю другие шаги, которые я сделал для полноты.

Связанный контент