DirectConnect

Gidsen

Zo zet je bestanden over tussen een Mac en Linux

Om bestanden te verplaatsen tussen een Mac en Linux, kopieer je ze met rsync via SSH, deel je een Mac-map en open je die in je Linux-bestandsbeheer, of deel je een Linux-map met Samba. Elke manier vraagt instelwerk op beide computers, en bestandsdeling is traag met mappen vol kleine bestanden.

Waarom dit lastiger is dan het zou moeten zijn

  • Geen gemeenschappelijke verstuurfunctie. AirDrop is alleen voor Apple, en Linux-desktops hebben niets wat de Mac begrijpt.
  • Elke methode vraagt accounts en wachtwoorden. SSH en Mac-bestandsdeling loggen in met het Mac-account. Samba heeft een eigen, apart wachtwoord nodig.
  • Linux deelt standaard geen mappen met een Mac. Je installeert en configureert Samba en opent de firewall. Op Fedora en vergelijkbare distributies moet SELinux de gedeelde map ook toestaan.
  • Samba vraagt Mac-specifieke instellingen. Zonder opties voor Apple-compatibiliteit laat Finder extra verborgen ._-bestanden naast de jouwe achter.
  • De kabelverbinding vraagt adressen. De Mac geeft zichzelf een 169.254-adres op de kabel. Linux wacht vaak op een DHCP-server die er niet is, en krijgt helemaal geen IPv4-adres.
  • Kleine bestanden kruipen. In onze tests deed een Mac bijna vier minuten over het kopiëren van 20.000 kleine bestanden (331 MB) naar een Samba-deling via een Thunderbolt-verbinding van 10 Gb/s.
  • Schijven zijn niet uitwisselbaar. Een Mac kan niet naar ext4- of btrfs-schijven van Linux schrijven, en Linux gaat slecht om met APFS-schijven van de Mac. Alleen exFAT werkt goed op beide.
  • Kabels kunnen op halve snelheid lopen. In onze tests maakten een Linux-laptop en een Mac verbinding via maar één lane van 20 Gb/s van een kabel van 40 Gb/s.

Sluit de kabel aan en zoek het adres van elke computer op

Hebben beide computers Thunderbolt of USB4, dan geeft een kabel ertussen een directe netwerkverbinding. De Mac noemt die Thunderbolt Bridge, en Linux noemt hem thunderbolt0. Zonder die poorten gebruik je je thuisnetwerk en de adressen daarvan. Zie bestanden overzetten met Thunderbolt.

Op de Mac

  1. Sluit de kabel aan.
  2. Kies in Systeeminstellingen Netwerk en dan Thunderbolt Bridge.
  3. Klik op Details… en noteer het IP-adres. Zit er verder niets op de kabel, dan begint het met 169.254.

Op de Linux-computer

Voer in een terminal deze opdracht uit. Die leest alleen de instellingen:

ip -4 addr show thunderbolt0

Een regel inet 169.254… is het adres van de kabel. Is er geen regel inet, dan wacht NetworkManager nog op DHCP. Geef de kabel een automatisch toegewezen adres:

  1. Kies in Instellingen Netwerk, en klik dan op de instellingenknop naast de bekabelde verbinding van de kabel.
  2. Kies op het tabblad IPv4 Alleen link-local en klik op Toepassen.
  3. Zet de verbinding uit en weer aan, en voer dan de opdracht ip opnieuw uit.

Verbind altijd via het 169.254-adres, niet via de naam van de computer. Een naam kan in plaats daarvan het wifiadres van de computer vinden, en dan gaat de kopie via wifi.

Optie 1: rsync via SSH, vanuit een terminal

rsync past bij iedereen die zich thuis voelt in een terminal. Het kopieert hele mappen, en als een kopie stopt, slaat het bij opnieuw uitvoeren de al gekopieerde bestanden over. De Linux-computer voert elke opdracht uit, dus alleen de Mac hoeft te worden ingesteld.

Op de Mac

  1. Kies in Systeeminstellingen Algemeen, dan Delen, en zet Extern inloggen aan.
  2. Klik op de infoknop naast Extern inloggen en controleer of je account is toegestaan.
  3. Om vanuit Bureaublad, Documenten of Downloads te kopiëren, zet je in hetzelfde paneel Sta volledige schijftoegang toe voor externe gebruikers aan. Zonder dat weigert macOS die mappen met ‘Operation not permitted’.

Op de Linux-computer

  1. Voer in een terminal rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/ uit. Vervang user door de korte naam van het Mac-account (de naam van de thuismap) en address door het 169.254-adres van de Mac.
  2. De eerste keer vraagt SSH of je de Mac vertrouwt. Typ yes.
  3. Typ het wachtwoord van het Mac-account. rsync toont elk bestand terwijl het kopieert.

Verwissel de twee paden om de andere kant op te kopiëren. De / aan het eind doet ertoe: met die slash kopieert rsync de inhoud van de map, zonder slash de map zelf. Zet aanhalingstekens om paden met spaties. Er valt niets te bladeren, dus je hebt de exacte paden nodig voordat je begint.

Optie 2: deel een Mac-map en open die in Linux

Mac-bestandsdeling vraagt geen software op Linux. GNOME Bestanden en de meeste andere Linux-bestandsbeheerders openen SMB-delingen.

Op de Mac

  1. Kies in Systeeminstellingen Algemeen, dan Delen, en zet Bestandsdeling aan.
  2. Klik op de infoknop naast Bestandsdeling. Klik onder Gedeelde mappen op + en kies de map.
  3. Zet onder Gebruikers je account op Lees en schrijf als Linux er bestanden naartoe moet kopiëren.
  4. Klik op Opties…, selecteer je account onder Windows-bestandsdeling, typ het wachtwoord en klik op Gereed. Zonder deze stap kan Linux niet inloggen.

Op de Linux-computer

  1. Druk in Bestanden op Ctrl+L, typ smb:// en het adres van de Mac, bijvoorbeeld smb://169.254.20.30, en druk op Enter.
  2. Kies Geregistreerde gebruiker, typ de korte naam en het wachtwoord van het Mac-account en klik op Verbinden.
  3. Open de gedeelde map. Sleep bestanden erin of eruit.

Grote bestanden kopiëren zo goed. Mappen met kleine bestanden zijn traag, omdat bestandsdeling elk bestand om de beurt opent, schrijft en sluit.

Optie 3: deel een Linux-map met Samba

Deel vanaf Linux als je de bestanden van de Linux-computer in Finder wilt doorbladeren. Elke opdracht hieronder wijzigt het systeem en vraagt je wachtwoord voor sudo. Vervang you door je Linux-gebruikersnaam.

Op de Linux-computer

  1. Installeer Samba: sudo dnf install samba op Fedora, of sudo apt install samba op Ubuntu.
  2. Voeg de deling toe aan het eind van /etc/samba/smb.conf, zoals hieronder. De regel met fruit voegt de opties voor Apple-compatibiliteit toe.
  3. Stel een Samba-wachtwoord in voor je gebruiker met sudo smbpasswd -a you. Dat staat los van je inlogwachtwoord.
  4. Open de firewall. Voer op Fedora sudo firewall-cmd --permanent --add-service=samba uit, en dan sudo firewall-cmd --reload. Op Ubuntu staat de firewall uit, tenzij je hem hebt aangezet. Staat hij aan, voer dan sudo ufw allow samba uit.
  5. Laat SELinux op Fedora de map delen: sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?", en dan sudo restorecon -R /home/you/Projects.
  6. Start Samba: sudo systemctl enable --now smb op Fedora, of sudo systemctl restart smbd op Ubuntu.
[Projects]
   path = /home/you/Projects
   valid users = you
   read only = no
   vfs objects = catia fruit streams_xattr

Op de Mac

  1. Kies in Finder Ga > Verbind met server….
  2. Typ smb:// en het adres van de Linux-computer, bijvoorbeeld smb://169.254.40.50, en klik op Verbind.
  3. Kies Geregistreerde gebruiker, typ je Linux-gebruikersnaam en Samba-wachtwoord en klik op Verbind.
  4. Kies de deling Projects. Die opent in Finder.

In onze tests via een Thunderbolt-verbinding van 10 Gb/s kopieerde een Mac 20.000 kleine bestanden (331 MB) van een Samba-deling in 114 seconden, en ernaartoe in 238 seconden. Een bestand van 4 GiB kopieerde met ongeveer 7,6 Gb/s in beide richtingen.

Na slaapstand, een herstart of loskoppelen

Elke optie hier werkt alleen zolang de kabelverbinding actief is. Valt een van de computers in slaap of koppel je de kabel los, dan valt de verbinding weg.

  • rsync stopt met een verbindingsfout. Voer dezelfde opdracht opnieuw uit. Die slaat de bestanden over die al zijn aangekomen.
  • Gedeelde mappen raken los. Finder waarschuwt dat de verbinding met de server is onderbroken, en Bestanden sluit de deling. Verbind en log opnieuw in.
  • Het adres kan veranderen. Automatisch toegewezen adressen kunnen veranderen nadat je loskoppelt, dus zoek ze opnieuw op voordat je opnieuw verbindt.
  • Na een herstart blijft delen aan. Extern inloggen, Bestandsdeling en een ingeschakelde Samba-dienst starten vanzelf weer op. Je verbindt nog wel opnieuw vanaf de andere computer.

Zie waarom een netwerkdeling na slaapstand de verbinding verliest.

Optie 4: een exFAT-schijf

Formatteer een schijf als exFAT en kopieer bestanden erop en eraf. Er is op geen van beide computers instelwerk voor nodig en het werkt zonder Thunderbolt of USB4, maar elk bestand wordt twee keer gekopieerd en de schijf heeft genoeg vrije ruimte nodig.