Estou procurando ver se o Linux pode montar e ler os arquivos armazenados nativamente em um Time Capsule por um compartilhamento de rede. Como esta pergunta , estou procurando algo que replique pelo menos a função somente leitura do hdiutil para anexar e montar imagens de disco de pacote esparsas.
A montagem SMB é fácil, pois o Time Capsule compartilha usando AFP e SMB , mas não tenho tanta certeza de que o pacote de disco esparso possa ser montado como o diretório HFS + reconstituído.
Pontos de bônus para um comando de montagem de trabalho ou ponteiro para o pacote apropriado que analisa esse formato DMG.
Caso não esteja claro - é assim que os arquivos de banda ficam para mim quando montados a partir de um Mac no Terminal e o que espero que o Linux veja sem a capacidade de montar o sistema de arquivos real codificado em uma infinidade de arquivos de banda binária.
host:iMac.sparsebundle mike$ ls -la
total 24
drwxrwxrwx@ 7 mike staff 264 Jul 5 10:01 .
drwx------ 6 mike staff 264 Mar 26 13:11 ..
-rwxrwxrwx 1 mike staff 499 Feb 24 15:33 Info.bckup
-rwxrwxrwx 1 mike staff 499 Feb 24 15:33 Info.plist
drwxrwxrwx 31101 mike staff 1057390 Jun 17 20:19 bands
-rwxrwxrwx 1 mike staff 532 Jun 24 22:06 com.apple.TimeMachine.MachineID.plist
-rwxrwxrwx 1 mike staff 0 Feb 24 15:33 token
host:iMac.sparsebundle mike$ ls -la bands | head -10
total 1582092552
-rwxrwxrwx 1 mike staff 8388608 Jul 5 08:33 0
-rwxrwxrwx 1 mike staff 8388608 May 31 13:02 1
-rwxrwxrwx 1 mike staff 8388608 Jun 24 22:16 10
-rwxrwxrwx 1 mike staff 8388608 Mar 19 17:15 1000
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 10000
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 10001
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 10002
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 10003
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 10004
host:iMac.sparsebundle mike$ ls -la bands | tail -10
-rwxrwxrwx 1 mike staff 8388608 May 31 00:51 fff6
-rwxrwxrwx 1 mike staff 8388608 May 31 00:51 fff7
-rwxrwxrwx 1 mike staff 8388608 May 31 00:51 fff8
-rwxrwxrwx 1 mike staff 8388608 May 31 00:51 fff9
-rwxrwxrwx 1 mike staff 8388608 May 31 00:51 fffa
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 fffb
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 fffc
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 fffd
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 fffe
-rwxrwxrwx 1 mike staff 8388608 May 31 00:50 ffff
host:~ mike$ ls -la bands|wc -l
96636
cd
para ele quando o volume em que os backups do Time Machine estão sendo armazenados estiver montado no Linux.Respostas:
Você pode usar uma combinação destes dois:
Sistema de arquivos FUSE para ler imagens de disco de pacote esparso do Mac OS
Time Machine da Apple fusível sistema de arquivos somente leitura
O primeiro cuida do formato .sparsebundle, apresentando-o como um arquivo dmg, que pode ser montado normalmente. O segundo cuida dos links físicos do diretório usados pelo Time Machine.
fonte
tmfs
fez o trabalho perfeitamente para mim no Debian 7.0.Esta é uma extensão da resposta por @ TorArneVestbø.
Depois de instalar os https://github.com/torarnv/sparsebundlefs e https://github.com/abique/tmfs, é necessário executar o seguinte script no Bash. Certifique-se de atualizar as duas variáveis no início para serem a origem e o destino.
A montagem final estará acessível por você (contanto que
$TM_MNT
seja acessível a você). A linha final pode falhar se o FUSE não estiver configurado para permitir outro usuário, informa como corrigi-lo.Para desmontar, você precisa fazer o seguinte:
Isso foi testado em um sistema Fedora 28 e está funcionando bem.
fonte
Time Machine da Apple fusível sistema de arquivos somente leitura
https://github.com/abique/tmfs
fonte
A publicação acima, de Alexandre Bicque, fornece um programa Linux (? Unix) que abrirá um pacote esparso do Time Machine armazenado em um disco ou partição de disco HFS + formatado para Mac, permitindo a leitura dos arquivos em um servidor Linux.
Configurá-lo não é para os fracos de coração. Ele está escrito em C ++ e requer 3 bibliotecas C ++ -
cmake
, FUSE e Boost, com certas versões mínimas (que podem não ser as versões mais recentes padrão para o meu Ubuntu Server 10.04). Também requer encontrar e instalar um compilador g ++ e as bibliotecas acima.Eu uso o servidor Ubuntu 10.04 e não sou muito programador. No entanto, após bastante trabalho e tempo, consegui instalar todas as bibliotecas necessárias, compilar e vincular o pacote tmfs e usá-lo. Funciona, permitindo a montagem de um TimeMachine Time Capsule. NO ENTANTO, exige que o disco no qual a imagem do pacote esparso é gravado seja um disco ou partição HFS +. Não funcionará se a imagem for gravada em um sistema de arquivos NTFS ou ext2 / ext3 / ext4 em um servidor Linux.
A partir das imagens do OS X 10.7 (Lion) da Apple, o Time Machine (sparsebundle) não funcionará mais se montado em um compartilhamento Linux do Windows (smb / Samba), e é necessário executar os serviços Linux / Unix Netatalk (
afpd
plusavahi-daemon
) para usar o Linux como um servidor do Time Machine.Eu procurei muito por outra solução. Eu suspeito que um programador Linux / Unix C ++ poderia fazer melhor do que eu, estendendo o trabalho de Alexandre Bicque para permitir o uso de sistemas de arquivos ext4 ou ntfs. Estou tentando descobrir como fazê-lo, mas ainda há um longo caminho a percorrer.
Acho que será necessário entender muito melhor o fusível (sistema de arquivos no espaço do usuário) e, talvez, os
boost::filesystem
auxiliares de desenvolvimento do sistema para avançar.fonte
Infelizmente, o caminho para encontrar coisas em um pacote esparso do Linux não é simples. Isso pode ser feito, mas requer a interpretação de algumas informações de inode que a Apple incorpora nos hardlinks para encontrar o arquivo real no pacote esparso. Esta dica do MacWorld descreve como você descobre onde um link físico em um pacote esparso aponta em termos do arquivo real, para que você possa acessá-lo em um sistema Linux. Ele lida com um disco do Time Machine que foi anexado como um disco local a uma única máquina.
No seu caso,
<mount point>/Backups.backupdb
é mais provável<machinename>
.backupdb`.Não tenho certeza se
<mount point>/.HFS+ Private Directory Data
existe no mesmo local para um disco compartilhado sendo usado para backups do Time Machine por várias máquinas. Você precisará fazer uma pequenals -la
inspeção no disco e nos pacotes esparsos para descobrir isso.Mas, caso contrário, essas instruções do MacWorld o ajudarão a recuperar arquivos em um pacote do Time Machine, do Linux.
Uma atualização sobre o ponto de montagem.
Fiz algumas experiências com base na sua pergunta atualizada. Parece que o ponto de montagem deve ser o
*.sparsebundle
diretório e não a unidade. Se eu montar a unidade no OS X e for/Volumes/Remote Backups/mymachine.sparsebundle
ver obands
diretório como você, é inútil.Mas se eu montar de
mymachine.sparsebundle
forma que eu possa ir/Volumes/Time Machine Backups
(é isso que ele monta automaticamente no Finder quando clico duas vezes nomymachine.sparsebundle
), vejo oBackups.backupdb
diretório esperado e, abaixo dele, os diretórios de data e hora conforme o esperado.fonte
ls | tee /tmp/bands
para capturar a saída. Eu tenho 96636 arquivos binários, a maioria deles em tamanho 8388608. Não tenho nenhum problema em contornar a estrutura de backup, uma vez que ela se transformou em um sistema de arquivos pelo utilitário de disco do mac e depois foi compartilhada novamente. Eu simplesmente não consigo descobrir como processar as bandas no linux sem o sistema OS X para compartilhar novamente o sistema de arquivos.*.sparsebundle
arquivo como um sistema de arquivos hfsplus no Linux em vez da unidade remota. Semelhante ao que acontece se você abrir o .sparsebundle no seu Mac e acabar com um/Volumes/Time Machine Backups
volume no OS X. Resposta atualizada com mais detalhes.