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
- Podłącz kabel.
- W Ustawieniach systemowych wybierz Sieć, a potem Mostek Thunderbolt.
- 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 thunderbolt0Wiersz inet 169.254… to adres kabla. Jeśli nie ma wiersza inet, NetworkManager nadal czeka na DHCP. Nadaj kablowi automatycznie przypisany adres:
- W Ustawieniach wybierz Sieć, a potem kliknij przycisk ustawień obok przewodowego połączenia kabla.
- Na karcie IPv4 wybierz Tylko lokalne łącze i kliknij Zastosuj.
- 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
- W Ustawieniach systemowych wybierz Ogólne, następnie Udostępnianie i włącz Zdalne logowanie.
- Kliknij przycisk informacji obok Zdalne logowanie i sprawdź, czy Twoje konto ma dostęp.
- 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
- W terminalu uruchom
rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/. Zastąpuserkrótką nazwą konta na Macu (nazwą jego folderu domowego), aaddressadresem 169.254 Maka. - Za pierwszym razem SSH zapyta, czy ufać Makowi. Wpisz
yes. - 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
- W Ustawieniach systemowych wybierz Ogólne, następnie Udostępnianie i włącz Udostępnianie plików.
- Kliknij przycisk informacji obok Udostępnianie plików. W sekcji Udostępniane foldery kliknij + i wybierz folder.
- W sekcji Użytkownicy ustaw swoje konto na Odczyt i zapis, jeśli Linux ma kopiować pliki do środka.
- 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
- W Plikach naciśnij Ctrl+L, wpisz
smb://i adres Maka, na przykładsmb://169.254.20.30, a potem naciśnij Enter. - Wybierz Zarejestrowany użytkownik, wpisz krótką nazwę konta na Macu i hasło, a potem kliknij Połącz.
- 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
- Zainstaluj Sambę:
sudo dnf install sambaw Fedorze lubsudo apt install sambaw Ubuntu. - Dodaj udział na końcu pliku
/etc/samba/smb.conf, jak pokazano poniżej. Wierszfruitdodaje opcje zgodności z Apple. - Ustaw hasło Samby dla swojego użytkownika poleceniem
sudo smbpasswd -a you. Jest ono niezależne od hasła logowania. - Otwórz zaporę. W Fedorze uruchom
sudo firewall-cmd --permanent --add-service=samba, a potemsudo firewall-cmd --reload. W Ubuntu zapora jest wyłączona, chyba że ją włączyłeś. Jeśli jest włączona, uruchomsudo ufw allow samba. - W Fedorze pozwól SELinuksowi udostępniać folder:
sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?", a potemsudo restorecon -R /home/you/Projects. - Uruchom Sambę:
sudo systemctl enable --now smbw Fedorze lubsudo systemctl restart smbdw Ubuntu.
[Projects]
path = /home/you/Projects
valid users = you
read only = no
vfs objects = catia fruit streams_xattrNa Macu
- W Finderze wybierz Idź > Połącz z serwerem….
- Wpisz
smb://i adres komputera z Linuksem, na przykładsmb://169.254.40.50, i kliknij Połącz. - Wybierz Zarejestrowany użytkownik, wpisz nazwę użytkownika w Linuksie i hasło Samby, a potem kliknij Połącz.
- 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.