Arquivos que não existem, me impedem de excluí-los, sistema de arquivos corrompido

1

Bem ... Trata-se de um sistema OS X (hfs +), mas afinal é unix. : p

o sistema tornou-se não inicializável, devido a um erro no sistema de arquivos ...

fsck.hfsplus falha porque ....

    ...
    ** 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.
    ...

usando find -mtime Consegui localizar alguns arquivos problemáticos, que ... na verdade não existem ...

    # 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 neles simplesmente não tem nenhum resultado ou erro. rmdir e rm -rf no diretório pai não fazem o truque, porque "o diretório não está vazio". Tentei tocar nesses arquivos e

    # 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 프린터 공유

entradas duplas com o mesmo inode ...

    # rm -f U*

mas isso também me leva à situação inicial

    # 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 프린터 공유

alguma ideia de qualquer coisa que eu possa tentar ????

    
por chris 23.04.2014 / 17:28

1 resposta

2

Você encontrou um bug (ou, possivelmente, "chegaremos lá algum dia ...") no HFS + fsck da Apple. Parece que é necessário tentar corrigir seu arquivo para um nome diferente, depois de descobrir que sua primeira tentativa não está disponível. Isso deixa você com algumas opções:

Primeiro, faça um backup de todos os dados que você pode ler no momento do FS. Idealmente, pegue uma imagem (cópia bit-a-bit) e trabalhe nisso.

Corrupção sempre me faz pensar como isso aconteceu. Há muitos lugares dos quais poderia ter vindo, mas o mais preocupante seria a má memória. Eu fiz um teste de memória na máquina.

Os nomes dos arquivos que estão sendo impressos parecem ser UTF16-LE, o que dá um nome α̍λογο/σελ.37.tif . Ele quer mudar para άλογο/σελ.37.tif - não sei por quê. O Google Tradutor me diz que é grego e faz sentido, então estou acertando. É possível que um rm (ou mv ) em um desses funcione. Você realmente quer tentar decodificar hexadecimadamente o nome do arquivo que está dando na linha de comando; Eu usei xxd -p -r para fazer isso, mas não tenho certeza se você tem isso no Mac OS X. Quem sabe se esse nome de arquivo estranho sobreviverá copy & cole do meu terminal, através do meu navegador, Stack Exchange, seu navegador e, por fim, copie & passado para o seu terminal.

Também anotei o / no nome do arquivo; isso é uma barra invertida, não é algo que se parece com isso. Não tenho certeza se isso é permitido pelo HFS +.

De qualquer forma, se tudo isso não funcionar, você tem três próximas abordagens para tentar:

  1. Formate o sistema de arquivos e restaure a partir do backup.
  2. HFS + fsck é open source, você pode baixar a fonte e tentar consertá-la.
  3. Pesquise as especificações do HFS + (espero que seja documentado; o HFS era, presumo que a Apple documentou o HFS + também). Use um editor de sistema de arquivos (se você puder encontrar um) ou, na pior das hipóteses, um editor hexadecimal para corrigi-lo, ou pelo menos exclua o arquivo.

A edição mais simples pode ser alterar alguns bytes do nome do arquivo. Por exemplo, você pode alterar facilmente o .tif no final (2E 00 74 00 69 00 66 00) para .bad (2E 00 62 00 61 00 64 00). Em seguida, execute o fsck novamente, e isso levará a um nome não duplicado.

    
por 23.04.2014 / 19:09