Time Machine a la Xarxa - Samba on Linux

Com crear un servei de Time Machine a Linux utilitzant Samba.

Introduction

Com a persona amb ✨ Diògenes Digital ✨, m’agrada mantenir les meves dades molt segures, i per al meu MacBook Air això significa utilitzar Time Machine, una gran peça de programari similar a Timeshift a Linux (que acabo de descobrir que està mantinguda per l’equip de Linux Mint :O).

Sempre hi ha l’opció d’utilitzar una unitat externa, però això requereix tenir-la connectada tot el temps (o fins i tot pitjor, haver de recordar connectar-la) o haver de conviure amb el Dongle-Life™ si no teniu una amb USB-C per als Macs més recents.

Un altre avantatge d’utilitzar Samba per a Time Machine és no haver d’utilitzar tota una unitat per a això, ja que Samba us dóna la flexibilitat de dirigir el servei cap a la carpeta que vulgueu. Per exemple, podeu utilitzar-ho en combinació amb una configuració de RAID amb mdadm.

Creació de la compartició Samba

AVÍS: La funcionalitat varia notablement entre les versions de Samba i macOS. Si us trobeu amb problemes, assegureu-vos de consultar les referències i la secció de solució de problemes!

En primer lloc, hem d’instal·lar, configurar i configurar Samba perquè funcioni amb Time Machine.

Instal·lació de Samba

Per a les instal·lacions basades en Debian, executeu: sudo apt install samba.

Per a les instal·lacions basades en Arch, executeu: sudo pacman -S samba.

Per a les instal·lacions basades en Fedora, executeu: sudo dnf install samba.

Configuració de Samba

He trobat aquest recurs de Canonical molt útil; us recomano que llegiu els punts 3 i 4 si sou nous en l’ús de Samba.

Si encara no l’heu creat, creeu un usuari de Samba amb sudo smbpasswd -a nom-d'usuari.

Afegiu el següent al fitxer de configuració de Samba a /etc/samba/smb.conf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[nom-de-la-compartició]
  valid users = el-vostre-nom-d'usuari-de-Samba
  comment = Time Machine
  path = la-vostra-carpeta
  browseable = yes
  read only = no
  spotlight = yes
  
  vfs objects = acl_xattr catia fruit streams_xattr

  fruit:time machine = yes
  fruit:nfs_aces = no
  inherit acls = yes
  fruit:model = MacSamba
  fruit:posix_rename = yes
  fruit:veto_appledouble = no
  fruit:wipe_intentionally_left_blank_rfork = yes
  fruit:delete_empty_adfiles = yes
  fruit:metadata = stream

Reinicieu el servei de Samba. Per als sistemes amb systemd, executeu: sudo systemctl restart smbd.

Servei Avahi

Perquè el nostre Mac descobreixi automàticament el nostre servidor, hem d’instal·lar Avahi, conegut com a Bonjour a macOS.

Instal·lació del dimoni Avahi

Per a les instal·lacions basades en Debian, executeu: sudo apt install avahi-daemon.

Per a les instal·lacions basades en Arch, executeu: sudo pacman -S avahi.

Per a les instal·lacions basades en Fedora, executeu: sudo dnf install avahi.

Creació del servei

Creeu un fitxer a /etc/avahi/services/smb.conf amb el següent contingut:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_smb._tcp</type>
    <port>445</port>
    <host-name>server.internal.domain</host-name>
  </service>
  <service>
    <type>_device-info._tcp</type>
    <port>0</port>
    <txt-record>model=MacPro7,1@ECOLOR=226,226,224</txt-record>
  </service>
  <service>
    <type>_adisk._tcp</type>
    <txt-record>sys=waMa=0,adVF=0x100</txt-record>
    <txt-record>dk0=adVN=TimeMachine,adVF=0x82</txt-record>
    <host-name>server.internal.domain</host-name>
  </service>
</service-group>

Reinicieu el servei avahi. sudo systemctl restart avahi-daemon

Si tot està configurat correctament, les nostres màquines haurien de ser capaces de veure’s entre elles. Podeu comprovar-ho executant a la terminal del vostre Mac: ping <nom-de-servidor>.local.

Configuració de Time Machine

Al vostre Mac, aneu a Preferències del sistema, Time Machine i afegiu una nova unitat. Allà hauria de aparèixer el vostre recurs com <NOM-DE-MÀQUINA>.local, afegiu-lo i inicieu la sessió amb el vostre nom d’usuari i contrasenya.

Si un cop comença la primera còpia de seguretat, el procés queda bloquejat connectant-se al vostre servidor, atureu i torneu a iniciar manualment la còpia de seguretat.

Hauria d’aparèixer una carpeta anomenada <Nom-del-Mac>.sparsebundle al directori de la compartició.

Heu creat amb èxit una compartició Samba habilitada per a Time Machine! Gràcies per llegir. Assegureu-vos de revisar la resta de l’article si ho desitgeu :P

Solució de problemes

Si després de completar la configuració el vostre Mac no veieu la vostra compartició a la pantalla de configuració de Time Machine, seguiu aquests passos.

Comprovar si els serveis estan funcionant correctament

Tant sudo systemctl status smbd com sudo systemctl status avahi-daemon shaurien de mostrar “running” (normalment en text verd).

Un exemple de output del servei Avahi en execució::

Avahi en execució

  • Si estan deshabilitats o inactius, podeu solucionar-ho executant sudo systemctl enable <service> and sudo systemctl start <service>.

  • Si s’han aturat a causa d’un error, comproveu que els fitxers de configuració estiguin al seu lloc i no tinguin errors.

Comprovar si hi ha errors als fitxers de configuració

Assegureu-vos que els fitxers de configuració estiguin correctes. Línies com fruit:nfs_aces = no es poden interpretar com un error d’ortografia per ntfs_access.

Referències

He utilitzat i recomano consultar aquests recursos:

Amb <3 des de Barcelona
Creat amb Hugo
Tema Stack dissenyat per Jimmy