Timemachine con samba en Ubuntu 20.04 o superior

Seamos sinceros, Time Machie es una de las mejores herramientas en macOS, conectas un disco duro y eel sistema crea backups incrementales automaticamente. Recuperar data es igual de simple, solo abres time machine y seleccionas el documento que quieres recuperar o restauras el sistema completo desde cualquier punto en el tiempo.

Dicho esto, tener que conectar un drive USB cad vez que necesites hacer backup no es ideal en lo absoluto. Como ya tenía un media server corriendo Ubuntu, se me ocurrio que debe haber una forma para hacer backups a ese servidor através de WIFI.

Hace unos años cuando la versión actual de Ubuntu Server era la 16.04, compré un disco externo y lo configuré en Ubuntu para ser usado como un folder compartido de manera que mi macbook pro lo usara para hacer backups de Time machine.
En esos tiempos Ubuntu traía una versión bastante vieja de samba que no soportaba time machine (Se necesita la versión 4.8.0 o superior para que time machine funcione). Para nuestra suerte Ubuntu 20.04 trae por defecto la versión 4.15.9 de samba.

El arreglo

Este va a ser el arreglo más sencillo posible, sin que sea necesario compilar samba ni instalar librerías extra. Debe utilizar un disco separado para los backups de time machine, en mi caso utilizé un disco externo usb que tenía disponible. Este disco fue montado en la ruta /bk/timemachine

Utilizando samba este folder es compartido con mi macbook pro, la cual es capaz de detectarlo automáticamente cuando estoy en el WIFI de mi hogar y realizar los backups necesarios.

Configuración

Para configurarlo vas a realizar las siguientes tareas:

  • Montar el disco en Ubuntu y configurarlo para que se monte automanicamente cada vez que el equipo encienda.
  • Configurar el share de samba
  • Configurar el time machine en tu mac


Mountar el disco
Para configurar el drive y que sea montado automaticamente en /bk/timemachine abre tu archivo fstab con:

sudo nano /etc/fstab

En este archivo deberás agregar una linea similar a esta al final

/dev/disk/by-id/usb-WD_My_Passport_2626_57585132413231394C33524A-0:0-part1 /bk/timemachine auto nosuid,nodev,nofail,x-gvfs-show 0 0

*Ten encuenta que el ID de tu disco no será igual al mio, asegurate de ogbtener la correcta verificando el folder /dev/disk o intenta montarlo por label o UUID.

Configura el share de samba

Estoy asumiendo que ya estás familiarizado con samba y que probablemente ya tienes algunos folders compartidos configurados.

Abre tu archivo de configuración de samba con:

sudo nano /etc/samba/smb.conf

Agrega estas lineas de configuración al final del archivo.

[timemachine]
valid users = <YOUR_UBUNTU_USERNAME>
comment = Time Machine
path = /BK/timemachine
browseable = yes
read only = no
spotlight = yes
vfs objects = catia fruit streams_xattr
fruit:time machine = yes

Y luego reinicia el servicio de samba con:

sudo service smbd restart

Configura timemachine on your mac

Ahora abre la ventana de configuración de time machine en tu mac, haz click en el boton de seleccionar disco y debe mostrarte el folder compartido de timemachine, es posible que te pregunte por el usuario y contraseña del share.

Click on the "select disk..." button
Select the shared drive from the"Availabe disks" list

Y eso es todo, tu sistema comenzará a hacer backups al folder compartido.

Problemas y soluciones

Si esto por alguna razón no te funciona aquí hay algunas ideas sobre qué puede estar saliendote mal:

  • Asegurate de que samba esté operando

Utiliza el comando:

sudo service smbd status

Debe decirte que samba está activo

  • Asegurate de que tu usuario de Ubuntu tenga una contraseña de samba configurada

Tener un usuario de linux con una contraseña no es suficiente, necesitas configurar una contraseña de samba para tu cuenta de usuario:

sudo smbpasswd -a username