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
- Sluit de kabel aan.
- Kies in Systeeminstellingen Netwerk en dan Thunderbolt Bridge.
- 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 thunderbolt0Een 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:
- Kies in Instellingen Netwerk, en klik dan op de instellingenknop naast de bekabelde verbinding van de kabel.
- Kies op het tabblad IPv4 Alleen link-local en klik op Toepassen.
- Zet de verbinding uit en weer aan, en voer dan de opdracht
ipopnieuw 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
- Kies in Systeeminstellingen Algemeen, dan Delen, en zet Extern inloggen aan.
- Klik op de infoknop naast Extern inloggen en controleer of je account is toegestaan.
- 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
- Voer in een terminal
rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/uit. Vervanguserdoor de korte naam van het Mac-account (de naam van de thuismap) enaddressdoor het 169.254-adres van de Mac. - De eerste keer vraagt SSH of je de Mac vertrouwt. Typ
yes. - 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
- Kies in Systeeminstellingen Algemeen, dan Delen, en zet Bestandsdeling aan.
- Klik op de infoknop naast Bestandsdeling. Klik onder Gedeelde mappen op + en kies de map.
- Zet onder Gebruikers je account op Lees en schrijf als Linux er bestanden naartoe moet kopiëren.
- 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
- Druk in Bestanden op Ctrl+L, typ
smb://en het adres van de Mac, bijvoorbeeldsmb://169.254.20.30, en druk op Enter. - Kies Geregistreerde gebruiker, typ de korte naam en het wachtwoord van het Mac-account en klik op Verbinden.
- 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
- Installeer Samba:
sudo dnf install sambaop Fedora, ofsudo apt install sambaop Ubuntu. - Voeg de deling toe aan het eind van
/etc/samba/smb.conf, zoals hieronder. De regel metfruitvoegt de opties voor Apple-compatibiliteit toe. - Stel een Samba-wachtwoord in voor je gebruiker met
sudo smbpasswd -a you. Dat staat los van je inlogwachtwoord. - Open de firewall. Voer op Fedora
sudo firewall-cmd --permanent --add-service=sambauit, en dansudo firewall-cmd --reload. Op Ubuntu staat de firewall uit, tenzij je hem hebt aangezet. Staat hij aan, voer dansudo ufw allow sambauit. - Laat SELinux op Fedora de map delen:
sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?", en dansudo restorecon -R /home/you/Projects. - Start Samba:
sudo systemctl enable --now smbop Fedora, ofsudo systemctl restart smbdop Ubuntu.
[Projects]
path = /home/you/Projects
valid users = you
read only = no
vfs objects = catia fruit streams_xattrOp de Mac
- Kies in Finder Ga > Verbind met server….
- Typ
smb://en het adres van de Linux-computer, bijvoorbeeldsmb://169.254.40.50, en klik op Verbind. - Kies Geregistreerde gebruiker, typ je Linux-gebruikersnaam en Samba-wachtwoord en klik op Verbind.
- 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.