btrfs: ls는 디렉터리에 동일한 파일을 두 번 나열합니다.

btrfs: ls는 디렉터리에 동일한 파일을 두 번 나열합니다.

Linux 4.10.8에서 btrfs를 사용합니다. 하드 재부팅 후 Google 크롬은 로컬 데이터를 찾을 수 없다고 주장했습니다. 관련 사용자 ID를 추가하자마자 일부가 다시 나타나서 무슨 일이 일어나고 있는지 궁금했습니다. ~/.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

손상된 디렉토리를 발견하고 복구했습니다. 여기에서 바로 시작할 수도 있지만 완전성을 위해 제가 취한 다른 단계는 그대로 두겠습니다.

관련 정보