como acessar a bifurcação de recursos do sistema de arquivos hfs + no linux

4

Eu tenho uma imagem do sistema de arquivos HFS + recuperada de um disco rígido do Mac com falha e posso loopback montá-la na minha máquina Linux. Como posso acessar as forquilhas de recursos para os arquivos neste sistema de arquivos da máquina Linux?

(Eu não tenho um Mac com a capacidade de armazenar uma imagem tão grande.)

    
por retracile 01.12.2011 / 20:06

3 respostas

1

Adicione /rsrc ao final do nome do arquivo para acessar a bifurcação de recurso. Não tenho a menor ideia de onde isso é documentado em qualquer lugar.

Editar: Só para esclarecer, eu estava me referindo ao uso da linha de comando; por exemplo, cp somefile/rsrc destfile copia o fork de algum arquivo para um arquivo chamado destfile. Todas as funções de linha de comando funcionam dessa maneira. Eu não testei nada com gráficos.

Esse mecanismo existia nos kernels 2.xx, mas foi removido em algum momento posterior. seec link

* hfsplus_file_lookup continha o seguinte:

if (HFSPLUS_IS_RSRC(dir) || strcmp(dentry->d_name.name, "rsrc"))
        goto out;

Isso foi removido mais tarde. Nunca foi documentado e pode não ter funcionado para todos os sistemas. De qualquer forma, como observado por "Neil Mayhew", a fonte atual da linha principal do kernel não faz mais isso. Além disso, uma vez que o OS X apple parou de criar novos forks de recursos, apenas os arquivos legados os terão.

    
por 13.03.2012 / 20:45
3

Eu não acho que isso seja possível com o driver padrão do kernel ( fs/hfsplus nos fontes do kernel).

Eu tenho um volume HFS + montado no Linux e arquivos que possuem uma bifurcação de recursos. Eu tentei as sintaxes de nome de arquivo especial comumente usadas FILENAME/rsrc e FILENAME/..namedfork/rsrc . O primeiro costumava trabalhar no Mac OS, e o último funciona no Mac OS agora, mas nenhum deles funciona no Linux. Eles retornam o erro ENOTDIR , "Não é um diretório". Eu tentei isso com arquivos que possuem uma bifurcação de recursos e nenhuma bifurcação de dados e arquivos que possuem ambos.

Eu examinei as fontes do driver e não vejo nenhum sinal de que seja possível acessar um fork de recursos explicitamente, seja com uma sintaxe de nome de arquivo especial ou com uma chamada ioctl . O driver se preocupa com forks de recursos, mas apenas com a finalidade de mantê-los juntos com o restante do arquivo quando um arquivo é movido e excluí-los quando um arquivo é excluído.

Eu adoraria estar errado sobre isso, mas não consegui encontrar nenhuma informação em contrário.

    
por 30.01.2017 / 17:47
1

Isso não o ajudará agora, mas, para referência futura, há um utilitário nas ferramentas do desenvolvedor da Apple chamado SplitForks que transforma um único arquivo com uma bifurcação de recursos em dois arquivos. O segundo arquivo oculto tem ._ anexado ao nome do arquivo original. Ele está no formato AppleDouble e também contém metadados do Finder, como os códigos de tipo e criador do arquivo. Esse é o mesmo formato usado para armazenar dados específicos do Mac em formatos de arquivo, como zip e tar , e para transferência usando rsync .

SplitForks pode trabalhar hierarquicamente em árvores de diretórios inteiras, que podem ser transferidas para um sistema de arquivos não-Mac sem perda de dados. Há também um utilitário complementar chamado FixupResourceForks que reúne os arquivos divididos novamente se a árvore de diretórios for movida posteriormente para outro Mac.

    
por 30.01.2017 / 18:04

Tags