O Linux pode montar um diretório normal de imagens esparsas do pacote do Time Machine?

28

Eu estou olhando para ver se o Linux pode montar e ler os arquivos armazenados nativamente em um Time Capsule através de um compartilhamento de rede. Como esta questão , eu estou procurando algo que replica pelo menos a função somente leitura de hdiutil para anexar e, em seguida, montar um pacote de imagens de disco esparso.

A montagem do SMB é fácil, pois o Time Capsule compartilha usando AFP e SMB , mas não tenho certeza se o pacote de disco esparso pode ser montado como o diretório HFS + reconstituído.

Pontos de bônus para um comando de montagem ou ponteiro para o pacote apropriado que analisa esse formato de DMG.

Caso não esteja claro - é assim que os arquivos de banda me parecem quando montado a partir de um Mac no Terminal e o que eu espero que o Linux veja sem a capacidade de montar o sistema de arquivos que está codificado em uma multitude de banda binária arquivos.

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
    
por bmike 05.07.2011 / 15:14

5 respostas

29

Você pode usar uma combinação desses dois:

Sistema de arquivos FUSE para leitura de imagens de disco em pacote esparso do Mac OS

O fusível Time Machine da Apple só lê o sistema de arquivos

O primeiro cuida do formato .sparsebundle, apresentando-o como um arquivo dmg, que pode ser montado como normal. O segundo cuida dos hard-links de diretório usados pelo Time Machine.

    
por 14.10.2012 / 02:39
3

O fusível Time Machine da Apple só lê o sistema de arquivos

link

    
por 06.11.2011 / 17:14
3

O post acima, de Alexandre Bicque, fornece um programa Linux (? unix) que abrirá um sparsebundle do Time Machine armazenado em uma partição de disco ou disco HFS + formatada em Mac, permitindo a leitura dos arquivos em um servidor Linux.

A configuração não é para os fracos de coração. 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 últimas versões padrão do meu Ubuntu Server 10.04). Também requer encontrar e instalar um compilador g ++ e o acima bibliotecas.

Eu uso o servidor Ubuntu 10.04 e não sou muito de um programador. No entanto, depois de um bom tempo e trabalho, consegui instalar todas as bibliotecas necessárias, compilar e vincular o pacote tmfs e usá-lo. Ele funciona, permitindo a montagem de uma TimeMachine Time Capsule. No entanto, exige que o disco no qual a imagem do sparsebundle é gravada seja um disco ou partição HFS +. Não funcionará se a imagem estiver escrita em um sistema de arquivos NTFS ou ext2 / ext3 / ext4 em um servidor Linux.

A partir do Mac OS X 10.7 (Lion), as imagens do Time Machine (sparsebundle) não funcionarão mais se montadas em um compartilhamento Linux do Windows (smb / Samba), e é necessário executar o Linux / Unix Netatalk ( afpd plus avahi-daemon ) serviços para usar o Linux como um servidor Time Machine.

Fiz muita procura 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 dos sistemas de arquivos ext4 ou ntfs. Estou tentando descobrir como fazer isso, mas tenho um longo caminho a percorrer.

Eu acho que vai exigir que eu entenda muito melhor o fusível (sistema de arquivos do espaço do usuário) e talvez os ajudantes de desenvolvimento do sistema boost::filesystem para avançar.

    
por 20.05.2012 / 00:54
2

Infelizmente, o caminho para encontrar coisas em um sparsebundle 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 sparsebundle. Esta dica do MacWorld descreve como você vai descobrir onde um hardlink em um sparsebundle aponta em termos de arquivo real para que você possa acessá-lo de um sistema Linux. Trata-se de um disco do Time Machine que foi anexado como um disco local a uma única máquina.

No seu caso <mount point>/Backups.backupdb é provavelmente <machinename> .backupdb '.

Não tenho certeza se o <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ê terá que fazer uma pequena inspeção ls -la do disco e sparsebundles para descobrir isso.

Caso contrário, essas instruções do MacWorld ajudarão você a recuperar arquivos em um pacote do Time Machine, do Linux.

Uma atualização sobre o ponto de montagem.

Eu fiz algumas experiências com base na sua pergunta atualizada. Parece que o ponto de montagem deve ser o diretório *.sparsebundle e não a unidade. Se eu montar a unidade no OS X e ir para /Volumes/Remote Backups/mymachine.sparsebundle , vejo o diretório bands como você faz e é inútil.

Mas se eu montar mymachine.sparsebundle de modo que eu possa ir para /Volumes/Time Machine Backups (é o que monta automaticamente no Finder quando eu clico duas vezes no mymachine.sparsebundle ) Eu vejo o diretório esperado Backups.backupdb e sob esse diretórios de data e hora conforme o esperado.

    
por 05.07.2011 / 16:38
0

Esta é uma extensão da resposta de @ TorArneVestbø.

Depois de instalar o link e o link você precisa executar o seguinte script no Bash. Certifique-se de atualizar as duas variáveis no início para serem a origem e o destino.

SB="/path/to/your/Backup.sparsebundle"
TM_MNT="/path/to/where/to/mount"

# Make directories
mkdir -p "$TM_MNT"
SB_MNT='mktemp --tmpdir -d sparsebundle_mnt.XXX'
SB_DMG="$SB_MNT/sparsebundle.dmg"
HFS_MNT='mktemp --tmpdir -d hfsx_mnt.XXX'

# Mount the sparse bundle
sudo 'which sparsebundlefs' "$SB" "$SB_MNT"

# Mount the HFS+ partition
OFF='sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $2}''
SZ='sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $4}''
LO='sudo losetup -f "$SB_DMG" --offset $OFF --sizelimit $SZ --show'
sudo mount -t hfsplus -r "$LO" "$HFS_MNT"

# Mount the Time Machine filesystem
sudo 'which tmfs' "$HFS_MNT" "$TM_MNT" -ouid=$(id -u $USER),gid=$(id -g $USER),allow_other

A montagem final será acessível por você (contanto que $TM_MNT esteja acessível para você). A linha final pode falhar se o FUSE não estiver configurado para permitir que outro usuário diga como consertá-lo.

Para desmontar, você precisa fazer o seguinte:

sudo umount "$TM_MNT"
sudo rmdir "$TM_MNT"
sudo umount "$HFS_MNT"
sudo rmdir "$HFS_MNT"
sudo losetup -d "$LO"
sudo umount "$SB_MNT"
sudo rmdir "$SB_MNT"

Isso foi testado em um sistema Fedora 28 e está funcionando bem.

    
por 25.09.2018 / 21:42