파일이 존재하지 않아 삭제할 수 없음, 파일 시스템 손상

파일이 존재하지 않아 삭제할 수 없음, 파일 시스템 손상

음... 이것은 OS X(hfs+)에 관한 것이지만 결국 그것은 유닉스입니다. :피

파일 시스템 오류로 인해 시스템을 시작할 수 없습니다...

fsck.hfsplus가 실패하는 이유는...

    ...
    ** Checking Catalog file.
       Illegal name
            illegal name is 0xB1 03 0D 03 BB 03 BF 03 B3 03 BF 03 2F 00 C3 03 B5 03 BB 03 2E 00 33 00 37 00 2E 00 74 00 69 00 66 00
            replacement name is 0xB1 03 01 03 BB 03 BF 03 B3 03 BF 03 2F 00 C3 03 B5 03 BB 03 2E 00 33 00 37 00 2E 00 74 00 69 00 66 00
    ....
    ** Repairing volume.
            replacement name already exists
            duplicate name is 0xB1 03 01 03 BB 03 BF 03 B3 03 BF 03 2F 00 C3 03 B5 03 BB 03 2E 00 33 00 37 00 2E 00 74 00 69 00 66 00
            FixIllegalNames - repair failed for type 0x23B 571
    ** The volume Macintosh HD could not be repaired.
    ...

find -mtime을 사용하여 실제로는 존재하지 않는 문제가 있는 파일을 찾았습니다...

    # ls -lhai
    ls: cannot access USB 프린터 공유: No such file or directory
    ls: cannot access 시동 디스크: No such file or directory
    ls: cannot access 애플 메뉴 선택사항: No such file or directory
    ls: cannot access 인터넷: No such file or directory
    ls: cannot access 파일 관리자: No such file or directory
    total 0
    152704 drwxr-xr-x 1 root root  7 Apr 23 16:49 .
    152677 drwxr-xr-x 1 root root 18 Apr 23 14:55 ..
         ? -????????? ? ?    ?     ?            ? 애플 메뉴 선택사항
         ? -????????? ? ?    ?     ?            ? 시동 디스크
         ? -????????? ? ?    ?     ?            ? 파일 관리자
         ? -????????? ? ?    ?     ?            ? 인터넷
         ? -????????? ? ?    ?     ?            ? USB 프린터 공유

rm -r에는 결과나 오류가 전혀 없습니다. "디렉토리가 비어 있지 않기 때문에" 상위 디렉토리의 rmdir 및 rm -rf가 작동하지 않습니다. 이 파일들을 터치해 보세요.

    # ls -lhai
    ls: cannot access USB 프린터 공유: No such file or directory
    ls: cannot access 시동 디스크: No such file or directory
    ls: cannot access 애플 메뉴 선택사항: No such file or directory
    ls: cannot access 인터넷: No such file or directory
    ls: cannot access 파일 관리자: No such file or directory
    total 0
    152704 drwxr-xr-x 1 root root  7 Apr 23 16:52 .
    152677 drwxr-xr-x 1 root root 18 Apr 23 14:55 ..
         ? -????????? ? ?    ?     ?            ? 애플 메뉴 선택사항
         ? -????????? ? ?    ?     ?            ? 시동 디스크
         ? -????????? ? ?    ?     ?            ? 파일 관리자
         ? -????????? ? ?    ?     ?            ? 인터넷
         ? -????????? ? ?    ?     ?            ? USB 프린터 공유
    # touch USB\ 프린터\ 공유 
    # ls -lhai
    ls: cannot access 시동 디스크: No such file or directory
    ls: cannot access 애플 메뉴 선택사항: No such file or directory
    ls: cannot access 인터넷: No such file or directory
    ls: cannot access 파일 관리자: No such file or directory
    total 0
     152704 drwxr-xr-x 1 root root  8 Apr 23 17:09 .
     152677 drwxr-xr-x 1 root root 18 Apr 23 14:55 ..
          ? -????????? ? ?    ?     ?            ? 애플 메뉴 선택사항
          ? -????????? ? ?    ?     ?            ? 시동 디스크
          ? -????????? ? ?    ?     ?            ? 파일 관리자
          ? -????????? ? ?    ?     ?            ? 인터넷
    4641964 -rw-r--r-- 1 root root  0 Apr 23 17:09 USB 프린터 공유
    4641964 -rw-r--r-- 1 root root  0 Apr 23 17:09 USB 프린터 공유

동일한 inode를 가진 이중 항목...

    # rm -f U*

하지만 원래 상황도 생각나네요

    # ls -lhai
    ls: cannot access USB 프린터 공유: No such file or directory
    ls: cannot access 시동 디스크: No such file or directory
    ls: cannot access 애플 메뉴 선택사항: No such file or directory
    ls: cannot access 인터넷: No such file or directory
    ls: cannot access 파일 관리자: No such file or directory
    total 0
    152704 drwxr-xr-x 1 root root  7 Apr 23 16:52 .
    152677 drwxr-xr-x 1 root root 18 Apr 23 14:55 ..
         ? -????????? ? ?    ?     ?            ? 애플 메뉴 선택사항
         ? -????????? ? ?    ?     ?            ? 시동 디스크
         ? -????????? ? ?    ?     ?            ? 파일 관리자
         ? -????????? ? ?    ?     ?            ? 인터넷
         ? -????????? ? ?    ?     ?            ? USB 프린터 공유

제가 시도해 볼 수 있는 아이디어가 있나요?

답변1

Apple의 HFS+ fsck에서 버그를 발견했습니다(또는 "언젠가 수정하겠습니다..."). 첫 번째 시도에서 파일을 사용할 수 없다는 것을 확인한 후 파일을 다른 이름으로 수정해야 할 것 같습니다. 그러면 몇 가지 옵션이 남습니다.

먼저 현재 FS에서 읽을 수 있는 모든 데이터를 백업합니다. 이상적으로는 이미지를 찍어(비트 단위로 복사) 처리합니다.

부패는 항상 어떻게 그런 일이 일어나는지 궁금하게 만듭니다. 여러 곳에서 올 수 있지만 가장 우려되는 것은 나쁜 기억력입니다. 나는 컴퓨터에서 메모리 테스트를 실행합니다.

인쇄되는 파일 이름은 UTF16-LE인 것으로 보이며 이름을 α̍λογο/σελ.37.tif변경하려고 합니다. άλογο/σελ.37.tif이유는 알 수 없습니다. Google 번역에서는 그것이 그리스어이고 의미가 있다고 말하므로 맞는 것 같습니다. 그것은가능한(또는) 그 중 하나가 작동합니다 rm. mv명령줄에 제공된 파일 이름을 16진수 디코딩해 보고 싶은 경우가 있습니다. xxd -p -r이전에 이 작업을 수행했지만 Mac OS X에서 이 작업을 수행할 수 있는지 확실하지 않습니다. 이 이상한 파일 이름이 내 터미널, 내 웹 브라우저, Stack Exchange, 귀하의 브라우저를 통해 복사하여 붙여넣고 마지막으로 터미널에 복사하여 붙여넣을 수 있는지 누가 알겠습니까?

/또한 파일 이름의 ;는 보이는 것과는 다르게 실제 슬래시라는 것도 알아냈습니다 . HFS+가 이것을 허용하는지 확실하지 않습니다.

어쨌든, 다른 모든 방법이 작동하지 않으면 다음 세 가지를 시도해 볼 수 있습니다.

  1. 파일 시스템을 포맷하고 백업에서 복원합니다.
  2. HFS+ fsck는 오픈 소스이므로 소스 코드를 다운로드하여 수정할 수 있습니다.
  3. HFS+ 사양을 찾아보세요(문서화되어 있기를 바랍니다. HFS도 있고 Apple 문서에도 HFS+가 있다고 생각합니다). 파일 시스템 편집기(찾을 수 있는 경우)를 사용하거나 최악의 경우 16진수 편집기를 사용하여 문제를 해결하거나 최소한 파일을 삭제하십시오.

가장 간단한 편집은 파일 이름의 몇 바이트를 변경하는 것입니다. 예를 들어, .tif끝에서 .bad(2E 00 74 00 69 00 66 00)을 (2E 00 62 00 61 00 64 00)으로 쉽게 변경할 수 있습니다. 그런 다음 fsck를 다시 실행하면 고유한 이름이 생성될 것입니다.

관련 정보