DirectConnect

Poradniki

Jak przesyłać pliki między Makiem a Linuksem

Aby przenieść pliki między Makiem a Linuksem, skopiuj je przez rsync po SSH, udostępnij folder z Maka i otwórz go w menedżerze plików w Linuksie albo udostępnij folder z Linuksa przez Sambę. Każda metoda wymaga konfiguracji na obu komputerach, a udostępnianie plików jest wolne przy folderach z małymi plikami.

Dlaczego to trudniejsze, niż powinno być

  • Brak wspólnego szybkiego wysyłania. AirDrop jest tylko dla Apple, a pulpity Linuksa nie mają niczego, co Mac by rozumiał.
  • Każda metoda wymaga kont i haseł. SSH i Udostępnianie plików na Macu logują się kontem z Maka. Samba wymaga własnego, osobnego hasła.
  • Linux domyślnie nie udostępnia folderów Makowi. Trzeba zainstalować i skonfigurować Sambę oraz otworzyć zaporę. W Fedorze i podobnych dystrybucjach SELinux też musi zezwolić na udostępniany folder.
  • Samba potrzebuje ustawień specyficznych dla Maka. Bez opcji zgodności z Apple Finder zostawia obok Twoich plików dodatkowe ukryte pliki ._.
  • Łącze kablowe wymaga adresów. Mac przydziela sobie na kablu adres 169.254. Linux często czeka na serwer DHCP, którego nie ma, i w ogóle nie dostaje adresu IPv4.
  • Małe pliki się wloką. W naszych testach Mac kopiował 20 000 małych plików (331 MB) do udziału Samba przez łącze Thunderbolt 10 Gb/s prawie cztery minuty.
  • Dyski nie działają po obu stronach. Mac nie może zapisywać na dyskach Linuksa ext4 ani btrfs, a Linux słabo radzi sobie z dyskami APFS z Maka. Tylko exFAT działa dobrze na obu.
  • Kable mogą działać z połową prędkości. W naszych testach laptop z Linuksem i Mac połączyły się tylko jedną linią 20 Gb/s kabla 40 Gb/s.

Podłącz kabel i znajdź adres każdego komputera

Jeśli oba komputery mają Thunderbolt lub USB4, kabel między nimi daje bezpośrednie łącze sieciowe. Mac nazywa je Mostek Thunderbolt, a Linux thunderbolt0. Bez tych portów użyj sieci domowej i jej adresów. Zobacz przesyłanie plików przez Thunderbolt.

Na Macu

  1. Podłącz kabel.
  2. W Ustawieniach systemowych wybierz Sieć, a potem Mostek Thunderbolt.
  3. Kliknij Szczegóły… i zanotuj adres IP. Gdy na kablu nie ma nic innego, zaczyna się od 169.254.

Na komputerze z Linuksem

W terminalu uruchom to polecenie. Tylko odczytuje ustawienia:

ip -4 addr show thunderbolt0

Wiersz inet 169.254… to adres kabla. Jeśli nie ma wiersza inet, NetworkManager nadal czeka na DHCP. Nadaj kablowi automatycznie przypisany adres:

  1. W Ustawieniach wybierz Sieć, a potem kliknij przycisk ustawień obok przewodowego połączenia kabla.
  2. Na karcie IPv4 wybierz Tylko lokalne łącze i kliknij Zastosuj.
  3. Wyłącz i włącz połączenie, a potem ponownie uruchom polecenie ip.

Zawsze łącz się adresem 169.254, a nie nazwą komputera. Nazwa może znaleźć adres Wi-Fi komputera i kopia pójdzie wtedy przez Wi-Fi.

Opcja 1: rsync przez SSH, z terminala

rsync pasuje każdemu, kto dobrze czuje się w terminalu. Kopiuje całe foldery, a jeśli kopia się zatrzyma, ponowne uruchomienie pomija już skopiowane pliki. Wszystkie polecenia uruchamia komputer z Linuksem, więc konfiguracji wymaga tylko Mac.

Na Macu

  1. W Ustawieniach systemowych wybierz Ogólne, następnie Udostępnianie i włącz Zdalne logowanie.
  2. Kliknij przycisk informacji obok Zdalne logowanie i sprawdź, czy Twoje konto ma dostęp.
  3. Aby kopiować z Biurka, Dokumentów lub Pobranych, włącz w tym samym panelu Zezwalaj zdalnym użytkownikom na pełny dostęp do dysku. Bez tego macOS odmawia dostępu do tych folderów z komunikatem „Operation not permitted”.

Na komputerze z Linuksem

  1. W terminalu uruchom rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/. Zastąp user krótką nazwą konta na Macu (nazwą jego folderu domowego), a address adresem 169.254 Maka.
  2. Za pierwszym razem SSH zapyta, czy ufać Makowi. Wpisz yes.
  3. Wpisz hasło konta na Macu. rsync wyświetla każdy kopiowany plik.

Zamień obie ścieżki miejscami, aby kopiować w drugą stronę. Końcowy / ma znaczenie: z nim rsync kopiuje zawartość folderu, a bez niego sam folder. Ścieżki ze spacjami ujmij w cudzysłów. Nie ma czego przeglądać, więc przed rozpoczęciem potrzebujesz dokładnych ścieżek.

Opcja 2: udostępnij folder z Maka i otwórz go w Linuksie

Udostępnianie plików na Macu nie wymaga oprogramowania w Linuksie. Pliki GNOME i większość innych menedżerów plików w Linuksie otwierają udziały SMB.

Na Macu

  1. W Ustawieniach systemowych wybierz Ogólne, następnie Udostępnianie i włącz Udostępnianie plików.
  2. Kliknij przycisk informacji obok Udostępnianie plików. W sekcji Udostępniane foldery kliknij + i wybierz folder.
  3. W sekcji Użytkownicy ustaw swoje konto na Odczyt i zapis, jeśli Linux ma kopiować pliki do środka.
  4. Kliknij Opcje…, zaznacz swoje konto w sekcji Udostępnianie plików Windows, wpisz jego hasło i kliknij Gotowe. Bez tego kroku Linux nie może się zalogować.

Na komputerze z Linuksem

  1. W Plikach naciśnij Ctrl+L, wpisz smb:// i adres Maka, na przykład smb://169.254.20.30, a potem naciśnij Enter.
  2. Wybierz Zarejestrowany użytkownik, wpisz krótką nazwę konta na Macu i hasło, a potem kliknij Połącz.
  3. Otwórz udostępniony folder. Przeciągaj pliki do niego lub z niego.

Duże pliki kopiują się w ten sposób dobrze. Foldery z małymi plikami są wolne, bo udostępnianie plików otwiera, zapisuje i zamyka każdy plik po kolei.

Opcja 3: udostępnij folder z Linuksa przez Sambę

Udostępniaj z Linuksa, gdy chcesz przeglądać pliki komputera z Linuksem w Finderze. Każde poniższe polecenie zmienia system i wymaga hasła do sudo. Zastąp you swoją nazwą użytkownika w Linuksie.

Na komputerze z Linuksem

  1. Zainstaluj Sambę: sudo dnf install samba w Fedorze lub sudo apt install samba w Ubuntu.
  2. Dodaj udział na końcu pliku /etc/samba/smb.conf, jak pokazano poniżej. Wiersz fruit dodaje opcje zgodności z Apple.
  3. Ustaw hasło Samby dla swojego użytkownika poleceniem sudo smbpasswd -a you. Jest ono niezależne od hasła logowania.
  4. Otwórz zaporę. W Fedorze uruchom sudo firewall-cmd --permanent --add-service=samba, a potem sudo firewall-cmd --reload. W Ubuntu zapora jest wyłączona, chyba że ją włączyłeś. Jeśli jest włączona, uruchom sudo ufw allow samba.
  5. W Fedorze pozwól SELinuksowi udostępniać folder: sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?", a potem sudo restorecon -R /home/you/Projects.
  6. Uruchom Sambę: sudo systemctl enable --now smb w Fedorze lub sudo systemctl restart smbd w Ubuntu.
[Projects]
   path = /home/you/Projects
   valid users = you
   read only = no
   vfs objects = catia fruit streams_xattr

Na Macu

  1. W Finderze wybierz Idź > Połącz z serwerem….
  2. Wpisz smb:// i adres komputera z Linuksem, na przykład smb://169.254.40.50, i kliknij Połącz.
  3. Wybierz Zarejestrowany użytkownik, wpisz nazwę użytkownika w Linuksie i hasło Samby, a potem kliknij Połącz.
  4. Wybierz udział Projects. Otworzy się w Finderze.

W naszych testach przez łącze Thunderbolt 10 Gb/s Mac skopiował 20 000 małych plików (331 MB) z udziału Samba w 114 sekund, a do niego w 238 sekund. Plik 4 GiB kopiował się z prędkością około 7,6 Gb/s w obie strony.

Po uśpieniu, restarcie lub odłączeniu

Każda z tych opcji działa tylko wtedy, gdy łącze kablowe jest aktywne. Gdy któryś komputer zaśnie albo odłączysz kabel, połączenie się zrywa.

  • rsync zatrzymuje się z błędem połączenia. Uruchom to samo polecenie ponownie. Pominie pliki, które już dotarły.
  • Udostępnione foldery się rozłączają. Finder ostrzega, że połączenie z serwerem zostało przerwane, a Pliki zamykają udział. Połącz się i zaloguj ponownie.
  • Adres może się zmienić. Automatycznie przypisane adresy mogą się zmienić po odłączeniu, więc sprawdź je ponownie przed ponownym połączeniem.
  • Po restarcie udostępnianie pozostaje włączone. Zdalne logowanie, Udostępnianie plików i włączona usługa Samba uruchamiają się ponownie same. Nadal trzeba połączyć się ponownie z drugiego komputera.

Zobacz dlaczego udział sieciowy rozłącza się po uśpieniu.

Opcja 4: dysk exFAT

Sformatuj dysk jako exFAT i kopiuj pliki na niego i z niego. Nie wymaga konfiguracji na żadnym komputerze i działa bez Thunderbolt czy USB4, ale każdy plik jest kopiowany dwa razy, a dysk potrzebuje wystarczająco dużo wolnego miejsca.