DirectConnect

Ratgeber

So übertragen Sie Dateien zwischen einem Mac und Linux

Um Dateien zwischen einem Mac und Linux zu bewegen, kopieren Sie sie mit rsync über SSH, geben einen Mac-Ordner frei und öffnen ihn in Ihrem Linux-Dateimanager, oder geben einen Linux-Ordner mit Samba frei. Jede Methode braucht Einrichtung auf beiden Computern, und die Dateifreigabe ist bei Ordnern mit kleinen Dateien langsam.

Warum das schwieriger ist, als es sein sollte

  • Kein gemeinsames Senden. AirDrop gibt es nur bei Apple, und Linux-Desktops haben nichts, was der Mac versteht.
  • Jede Methode braucht Konten und Passwörter. SSH und die Mac-Dateifreigabe melden sich mit dem Mac-Account an. Samba braucht ein eigenes Passwort.
  • Linux gibt standardmäßig keine Ordner für einen Mac frei. Sie installieren und konfigurieren Samba und öffnen die Firewall. Auf Fedora und ähnlichen Distributionen muss auch SELinux den freigegebenen Ordner erlauben.
  • Samba braucht Mac-spezifische Einstellungen. Ohne Apple-Kompatibilitätsoptionen legt der Finder zusätzliche versteckte ._-Dateien neben Ihre.
  • Die Kabelverbindung braucht Adressen. Der Mac gibt sich am Kabel eine 169.254-Adresse. Linux wartet oft auf einen DHCP-Server, den es nicht gibt, und bekommt gar keine IPv4-Adresse.
  • Kleine Dateien kriechen. In unseren Tests brauchte ein Mac fast vier Minuten, um 20.000 kleine Dateien (331 MB) über eine 10-Gb/s-Thunderbolt-Verbindung auf eine Samba-Freigabe zu kopieren.
  • Laufwerke passen nicht zusammen. Ein Mac kann nicht auf ext4- oder btrfs-Laufwerke von Linux schreiben, und Linux kommt mit APFS-Laufwerken vom Mac schlecht zurecht. Nur exFAT funktioniert auf beiden gut.
  • Kabel können mit halber Geschwindigkeit laufen. In unseren Tests verbanden sich ein Linux-Laptop und ein Mac nur über eine 20-Gb/s-Lane eines 40-Gb/s-Kabels.

Das Kabel anschließen und die Adresse jedes Computers herausfinden

Haben beide Computer Thunderbolt oder USB4, ergibt ein Kabel zwischen ihnen eine direkte Netzwerkverbindung. Der Mac nennt sie Thunderbolt-Bridge, und Linux nennt sie thunderbolt0. Ohne diese Anschlüsse nutzen Sie stattdessen Ihr Heimnetz und dessen Adressen. Siehe Dateien mit Thunderbolt übertragen.

Auf dem Mac

  1. Schließen Sie das Kabel an.
  2. Wählen Sie in den Systemeinstellungen Netzwerk und dann Thunderbolt-Bridge.
  3. Klicken Sie auf Details … und notieren Sie die IP-Adresse. Ist sonst nichts am Kabel, beginnt sie mit 169.254.

Auf dem Linux-Computer

Führen Sie in einem Terminal diesen Befehl aus. Er liest die Einstellungen nur:

ip -4 addr show thunderbolt0

Eine Zeile inet 169.254… ist die Adresse des Kabels. Gibt es keine Zeile inet, wartet NetworkManager noch auf DHCP. Geben Sie dem Kabel eine selbst zugewiesene Adresse:

  1. Wählen Sie in den Einstellungen Netzwerk und klicken Sie auf die Einstellungstaste neben der kabelgebundenen Verbindung des Kabels.
  2. Wählen Sie im Reiter IPv4 die Option Nur Link-Local und klicken Sie auf Anwenden.
  3. Schalten Sie die Verbindung aus und wieder ein und führen Sie dann den Befehl ip erneut aus.

Verbinden Sie sich immer über die 169.254-Adresse, nicht über den Namen des Computers. Ein Name kann stattdessen die WLAN-Adresse des Computers finden, und die Kopie läuft dann über WLAN.

Option 1: rsync über SSH, im Terminal

rsync eignet sich für alle, die sich im Terminal wohlfühlen. Es kopiert ganze Ordner, und wenn eine Kopie abbricht, überspringt ein erneuter Aufruf die schon kopierten Dateien. Der Linux-Computer führt alle Befehle aus, also muss nur der Mac eingerichtet werden.

Auf dem Mac

  1. Wählen Sie in den Systemeinstellungen Allgemein, dann Teilen, und schalten Sie Entfernte Anmeldung ein.
  2. Klicken Sie auf die Infotaste neben Entfernte Anmeldung und prüfen Sie, ob Ihr Account zugelassen ist.
  3. Um aus Schreibtisch, Dokumente oder Downloads zu kopieren, schalten Sie im selben Bereich Vollständigen Festplattenzugriff für entfernte Benutzer erlauben ein. Ohne das verweigert macOS diese Ordner mit „Operation not permitted“.

Auf dem Linux-Computer

  1. Führen Sie in einem Terminal rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/ aus. Ersetzen Sie user durch den Kurznamen des Mac-Accounts (den Namen seines Benutzerordners) und address durch die 169.254-Adresse des Macs.
  2. Beim ersten Mal fragt SSH, ob es dem Mac vertrauen soll. Tippen Sie yes.
  3. Geben Sie das Passwort des Mac-Accounts ein. rsync listet jede Datei auf, während es kopiert.

Vertauschen Sie die beiden Pfade, um in die andere Richtung zu kopieren. Der abschließende / zählt: Mit ihm kopiert rsync den Inhalt des Ordners, ohne ihn den Ordner selbst. Setzen Sie Pfade mit Leerzeichen in Anführungszeichen. Es gibt nichts zu durchsuchen, Sie brauchen also vorher die genauen Pfade.

Option 2: einen Mac-Ordner freigeben und unter Linux öffnen

Die Mac-Dateifreigabe braucht unter Linux keine Software. GNOME Dateien und die meisten anderen Linux-Dateimanager öffnen SMB-Freigaben.

Auf dem Mac

  1. Wählen Sie in den Systemeinstellungen Allgemein, dann Teilen, und schalten Sie Dateifreigabe ein.
  2. Klicken Sie auf die Infotaste neben Dateifreigabe. Klicken Sie unter Freigegebene Ordner auf + und wählen Sie den Ordner.
  3. Stellen Sie unter Benutzer Ihren Account auf Lesen & Schreiben, wenn Linux Dateien hineinkopieren soll.
  4. Klicken Sie auf Optionen …, wählen Sie Ihren Account unter Windows-Dateifreigabe aus, geben Sie dessen Passwort ein und klicken Sie auf Fertig. Ohne diesen Schritt kann sich Linux nicht anmelden.

Auf dem Linux-Computer

  1. Drücken Sie in Dateien Strg+L, geben Sie smb:// und die Adresse des Macs ein, zum Beispiel smb://169.254.20.30, und drücken Sie die Eingabetaste.
  2. Wählen Sie Registrierter Benutzer, geben Sie den Kurznamen und das Passwort des Mac-Accounts ein und klicken Sie auf Verbinden.
  3. Öffnen Sie den freigegebenen Ordner. Ziehen Sie Dateien hinein oder heraus.

Große Dateien lassen sich so gut kopieren. Ordner mit kleinen Dateien sind langsam, weil die Dateifreigabe jede Datei der Reihe nach öffnet, schreibt und schließt.

Option 3: einen Linux-Ordner mit Samba freigeben

Geben Sie von Linux aus frei, wenn Sie die Dateien des Linux-Computers im Finder durchsuchen möchten. Jeder Befehl unten ändert das System und braucht Ihr Passwort für sudo. Ersetzen Sie you durch Ihren Linux-Benutzernamen.

Auf dem Linux-Computer

  1. Installieren Sie Samba: sudo dnf install samba unter Fedora oder sudo apt install samba unter Ubuntu.
  2. Fügen Sie die Freigabe am Ende von /etc/samba/smb.conf hinzu, wie unten gezeigt. Die Zeile fruit fügt die Apple-Kompatibilitätsoptionen hinzu.
  3. Setzen Sie mit sudo smbpasswd -a you ein Samba-Passwort für Ihren Benutzer. Es ist unabhängig von Ihrem Anmeldepasswort.
  4. Öffnen Sie die Firewall. Unter Fedora führen Sie sudo firewall-cmd --permanent --add-service=samba und dann sudo firewall-cmd --reload aus. Unter Ubuntu ist die Firewall aus, sofern Sie sie nicht eingeschaltet haben. Ist sie an, führen Sie sudo ufw allow samba aus.
  5. Erlauben Sie SELinux unter Fedora, den Ordner freizugeben: sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?", dann sudo restorecon -R /home/you/Projects.
  6. Starten Sie Samba: sudo systemctl enable --now smb unter Fedora oder sudo systemctl restart smbd unter Ubuntu.
[Projects]
   path = /home/you/Projects
   valid users = you
   read only = no
   vfs objects = catia fruit streams_xattr

Auf dem Mac

  1. Wählen Sie im Finder Gehe zu > Mit Server verbinden ….
  2. Geben Sie smb:// und die Adresse des Linux-Computers ein, zum Beispiel smb://169.254.40.50, und klicken Sie auf Verbinden.
  3. Wählen Sie Registrierter Benutzer, geben Sie Ihren Linux-Benutzernamen und Ihr Samba-Passwort ein und klicken Sie auf Verbinden.
  4. Wählen Sie die Freigabe Projects. Sie öffnet sich im Finder.

In unseren Tests über eine 10-Gb/s-Thunderbolt-Verbindung kopierte ein Mac 20.000 kleine Dateien (331 MB) in 114 Sekunden von einer Samba-Freigabe und in 238 Sekunden dorthin. Eine 4-GiB-Datei wurde in beide Richtungen mit etwa 7,6 Gb/s kopiert.

Nach Ruhezustand, Neustart oder Ausstecken

Jede Option hier funktioniert nur, solange die Kabelverbindung steht. Geht einer der Computer in den Ruhezustand oder ziehen Sie das Kabel ab, bricht die Verbindung ab.

  • rsync bricht mit einem Verbindungsfehler ab. Führen Sie denselben Befehl erneut aus. Er überspringt die Dateien, die schon angekommen sind.
  • Freigegebene Ordner werden getrennt. Der Finder warnt, dass die Verbindung zum Server unterbrochen wurde, und Dateien schließt die Freigabe. Verbinden Sie sich und melden Sie sich erneut an.
  • Die Adresse kann sich ändern. Selbst zugewiesene Adressen können sich nach dem Ausstecken ändern, schauen Sie sie also vor dem erneuten Verbinden nach.
  • Nach einem Neustart bleibt die Freigabe an. Entfernte Anmeldung, Dateifreigabe und ein aktivierter Samba-Dienst starten von selbst wieder. Vom anderen Computer aus verbinden Sie sich trotzdem neu.

Siehe warum eine Netzwerkfreigabe nach dem Ruhezustand getrennt wird.

Option 4: ein exFAT-Laufwerk

Formatieren Sie ein Laufwerk als exFAT und kopieren Sie Dateien drauf und wieder runter. Das braucht auf keinem Computer Einrichtung und funktioniert ohne Thunderbolt oder USB4, aber jede Datei wird zweimal kopiert, und das Laufwerk braucht genug freien Platz.