inode 번호나 다른 메타데이터를 표시하지 않는 두 개의 신비한 항목이 있는 디렉토리가 있습니다. ls -li
명령줄에 입력 하면 다음 과 같은 결과가 나타납니다.
$ ls -li
ls: no s’ha pogut accedir a 'clementine.db-journal': El fitxer o directori no existeix
ls: no s’ha pogut accedir a 'clementine.db-journal': El fitxer o directori no existeix
total 1356072
# Some normal files
? -????????? ? ? ? ? ? clementine.db-journal
? -????????? ? ? ? ? ? clementine.db-journal
# more normal files
첫 번째 ?
는 inode이고, 아래 그룹은 권한, 내가 모르는 그룹, 사용자 및 그룹, 파일 크기 및 날짜, 마지막으로 파일 이름입니다.
rm -f clementine.db-journal
도움이되지 않는 것 같습니다.
ls보다 낮은 수준의 디렉토리 분석 도구가 있습니까? 디렉토리가 손상되었나요? 고칠 수 있나요? 전체 디렉토리를 교체해야 합니까? (그리고 mkdir, cp, rm, rmdir
)
상황별 정보:
저는 Clementine을 사용하여 음악을 듣습니다. Clementine은 sqlite 데이터베이스를 사용하여 정보를 저장합니다. Clementine 데이터베이스는 에 있습니다 ~/.config/Clementine/clementine.db
. 이 항목은 정전 후 시작할 때 나타납니다(UPS가 필요하다는 것을 알고 있습니다). 그것이 상주하는 파일 시스템은 입니다 btrfs
.
편집하다:
@DopeGhoti가 언급했듯이 파일 시스템 검사(btrfs와 동일)를 실행했습니다. 출력은 다음과 같습니다.
$ sudo btrfs check /dev/sda6
Checking filesystem on /dev/sda6
UUID: 5ea692ab-c7b1-4618-be39-d82eaf5c6b34
checking extents
checking free space cache
checking fs roots
root 5 inode 2119729 errors 200, dir isize wrong
root 5 inode 2178458 errors 1, no inode item
unresolved ref dir 2119729 index 541 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5 inode 2219774 errors 1, no inode item
unresolved ref dir 2119729 index 1822 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5591 inode 1491275 errors 200, dir isize wrong
root 5591 inode 2076115 errors 1, no inode item
unresolved ref dir 1491275 index 984 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5591 inode 2119729 errors 200, dir isize wrong
root 5591 inode 2178458 errors 1, no inode item
unresolved ref dir 2119729 index 541 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
ERROR: errors found in fs roots
found 810099113984 bytes used, error(s) found
total csum bytes: 789379208
total tree bytes: 1426243584
total fs tree bytes: 368427008
total extent tree bytes: 84656128
btree space waste bytes: 283686669
file data blocks allocated: 1116310724608
referenced 821686456320
이러한 항목이 일부 문제를 일으키는 것은 분명하지만 여전히 존재합니다.
답변1
btrfs check
질문만 표시됩니다. 당신은 btrfs check --repair
(시도)를 사용해야합니다고정시키다발견한 문제입니다. 하지만, 대부분의 문서에서는 권장합니다반대하다사용 --repair
. 그러나 btrfsck
손상된 파일의 inode는 실제로 노출되므로 다음과 같은 방법을 사용하여 제거 find / -inum XXXX -delete
( XXXX
실제 손상된 inode로 대체) 할 수 있습니다.
실제로 파일을 복구하려고 한다면 이것은 btrfs를 사용하는 내 급여 등급보다 약간 높지만 작성자는이 답변올바른 방향을 알려줄 수도 있습니다.
답변2
다른 파일(.mozilla의 prefs.js)을 사용하여 똑같은 문제가 발생했습니다.
이것은 Fedora 28, btrfs-progs 4.15.1입니다.
결국 워크스테이션을 단일 사용자로 사용하여 파일 시스템이 마운트 해제되어 btrfs check --repair
파일 시스템에서 실행되고 있는지 확인했습니다. 운 좋게도 이것은 가상 머신이어서 파일 시스템의 스냅샷을 먼저 찍을 수 있었습니다.
수정 사항은 예상대로 작동하여 결국 동일한 파일 항목에 잘못 추가된 수백만 개의 inode를 제거했습니다. 이 문제의 원인이 무엇인지는 모르겠지만 수정 프로세스는 이 특정 오류에 대해 작동합니다.