Estoy buscando ver si Linux puede montar y leer los archivos almacenados de forma nativa en una Time Capsule a través de un recurso compartido de red. Al igual que esta pregunta , estoy buscando algo que reproduzca al menos la función de solo lectura de hdiutil para adjuntar y luego montar imágenes de disco de paquete disperso.
El montaje SMB es fácil ya que Time Capsule comparte usando AFP y SMB , pero no estoy tan seguro de que el escaso paquete de discos pueda montarse como el directorio HFS + reconstituido.
Puntos de bonificación para un comando de montaje en funcionamiento o puntero al paquete apropiado que analiza este formato DMG.
En caso de que no esté claro, así es como me ven los archivos de banda cuando se montan desde una Mac en Terminal y lo que espero que Linux vea sin la capacidad de montar el sistema de archivos real que está codificado en una multitud de archivos de banda binarios.
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
allí una vez que el volumen donde se almacenan las copias de seguridad de Time Machine está montado en Linux.Respuestas:
Puede usar una combinación de estos dos:
Sistema de archivos FUSE para leer imágenes de disco de paquete disperso de Mac OS
Sistema de archivos de solo lectura de fusibles Time Machine de Apple
El primero se encarga del formato .sparsebundle, presentándolo como un archivo dmg, que luego se puede montar como normal. El segundo se ocupa de los enlaces duros del directorio utilizados por Time Machine.
fuente
tmfs
hizo el trabajo perfectamente para mí en Debian 7.0.Esta es una extensión de la respuesta de @ TorArneVestbø.
Una vez que haya instalado https://github.com/torarnv/sparsebundlefs y https://github.com/abique/tmfs , debe ejecutar el siguiente script en Bash. Asegúrese de actualizar las dos variables al principio para que sean el origen y el destino.
El montaje final será accesible para usted (siempre y cuando
$TM_MNT
sea accesible para usted). La línea final puede fallar si FUSE no está configurado para permitir otro usuario, le indica cómo solucionarlo.Para desmontar debe hacer lo siguiente:
Esto se probó en un sistema Fedora 28 y está funcionando bien.
fuente
Sistema de archivos de solo lectura de fusibles Time Machine de Apple
https://github.com/abique/tmfs
fuente
La publicación anterior, de Alexandre Bicque, proporciona un programa Linux (? Unix) que abrirá un paquete disperso de Time Machine almacenado en un disco o partición de disco HFS + formateado para Mac, permitiendo la lectura de los archivos en un servidor Linux.
Configurarlo no es para los débiles de corazón. Está escrito en C ++ y requiere 3 bibliotecas C ++ -
cmake
, FUSE y Boost, con ciertas versiones mínimas (que pueden no ser las últimas versiones predeterminadas para mi Ubuntu Server 10.04). También requiere encontrar e instalar un compilador de g ++ y las bibliotecas anteriores.Yo uso el servidor Ubuntu 10.04 y no soy un gran programador. Sin embargo, después de un poco de trabajo y tiempo, logré instalar todas las bibliotecas necesarias, compilar y vincular el paquete tmfs y usarlo. Funciona, lo que permite montar una TimeMachine Time Capsule. SIN EMBARGO, requiere que el disco en el que se escribe la imagen dispersa sea un disco o partición HFS +. No funcionará si la imagen está escrita en un sistema de archivos NTFS o ext2 / ext3 / ext4 en un servidor Linux.
A partir del OS X 10.7 (Lion) de Apple, las imágenes de Time Machine (sparsebundle) ya no funcionarán si se montan en un recurso compartido de Windows (smb / Samba) Linux, y es necesario ejecutar servicios Linux / Unix Netatalk (
afpd
plusavahi-daemon
) para usar Linux como un servidor de Time Machine.He buscado mucho otra solución. Sospecho que un programador Linux / Unix C ++ podría hacerlo mejor que yo, extendiendo el trabajo de Alexandre Bicque para permitir el uso de sistemas de archivos ext4 o ntfs. Estoy tratando de descubrir cómo hacerlo, pero tengo un largo camino por recorrer.
Creo que requerirá que comprenda mucho mejor el fusible (sistema de archivos de espacio de usuario) y quizás los
boost::filesystem
ayudantes de desarrollo del sistema para avanzar.fuente
Desafortunadamente, el camino para encontrar cosas en un paquete disperso de Linux no es sencillo. Se puede hacer, pero requiere interpretar cierta información de inodo que Apple incrusta en los enlaces duros para encontrar el archivo real en el paquete disperso. Esta sugerencia de MacWorld describe cómo hacer para averiguar dónde apunta un enlace rígido en un paquete disperso en términos del archivo real para que pueda acceder a él desde un sistema Linux. Se trata de un disco de Time Machine que se ha conectado como un disco local a una sola máquina.
En su caso
<mount point>/Backups.backupdb
es muy probable<machinename>
.backupdb`.No estoy seguro de si
<mount point>/.HFS+ Private Directory Data
existe en el mismo lugar para un disco compartido que se utiliza para copias de seguridad de Time Machine por varias máquinas. Tendrá que hacer una pequeñals -la
inspección del disco y los paquetes dispersos para encontrarlo.Pero de lo contrario, esas instrucciones de MacWorld lo ayudarán a recuperar archivos en un paquete de Time Machine, desde Linux.
Una actualización sobre el punto de montaje.
Experimenté un poco en base a tu pregunta actualizada. Parece que el punto de montaje debería ser el
*.sparsebundle
directorio y no la unidad. Si monte la unidad en OS X y voy a/Volumes/Remote Backups/mymachine.sparsebundle
ver elbands
directorio como lo haces y es inútil.Pero si monto de
mymachine.sparsebundle
tal manera que pueda ir/Volumes/Time Machine Backups
(eso es lo que se monta automáticamente en Finder cuando hago doble clic enmymachine.sparsebundle
) Veo elBackups.backupdb
directorio esperado y debajo de eso los directorios de fecha y hora como se esperaba.fuente
ls | tee /tmp/bands
para capturar la salida. Tengo 96636 archivos binarios, la mayoría de ellos de tamaño 8388608. No tengo problemas para sortear la estructura de copia de seguridad una vez que la utilidad de disco de mac la convierte en un sistema de archivos y luego la vuelve a compartir. Simplemente no puedo entender cómo procesar las bandas en Linux sin el sistema OS X para volver a compartir el sistema de archivos.*.sparsebundle
archivo como un sistema de archivos hfsplus en Linux en lugar de la unidad remota. Similar a lo que sucede si abre el .sparsebundle en su Mac y termina con un/Volumes/Time Machine Backups
volumen en OS X. Respuesta actualizada con más detalles.