Mac과 Linux 간에 파일을 전송하는 방법
Mac과 Linux 간에 파일을 옮기려면 SSH를 통한 rsync로 복사하거나, Mac 폴더를 공유해 Linux 파일 관리자에서 열거나, Samba로 Linux 폴더를 공유하세요. 어느 방법이든 두 컴퓨터에서 설정이 필요하고, 파일 공유는 작은 파일이 많은 폴더에서 느립니다.
생각보다 어려운 이유
- 공통 빠른 전송 기능이 없습니다. AirDrop은 Apple 전용이고, Linux 데스크탑에는 Mac이 이해하는 기능이 없습니다.
- 모든 방법에 계정과 암호가 필요합니다. SSH와 Mac 파일 공유는 Mac 계정으로 로그인합니다. Samba에는 별도의 암호가 필요합니다.
- Linux는 기본적으로 Mac과 폴더를 공유하지 않습니다. Samba를 설치하고 설정하고 방화벽을 열어야 합니다. Fedora 같은 배포판에서는 SELinux에서도 공유 폴더를 허용해야 합니다.
- Samba에는 Mac용 설정이 필요합니다. Apple 호환 옵션이 없으면 Finder가 내 파일 옆에 숨겨진
._파일을 추가로 남깁니다. - 케이블 연결에는 주소가 필요합니다. Mac은 케이블에서 169.254 주소를 스스로 정합니다. Linux는 있지도 않은 DHCP 서버를 기다리다가 IPv4 주소를 전혀 받지 못하는 경우가 많습니다.
- 작은 파일은 기어가듯 느립니다. 테스트에서 Mac이 10 Gb/s Thunderbolt 연결로 Samba 공유에 작은 파일 20,000개(331 MB)를 복사하는 데 거의 4분이 걸렸습니다.
- 드라이브가 호환되지 않습니다. Mac은 Linux의 ext4나 btrfs 드라이브에 쓸 수 없고, Linux는 Mac의 APFS 드라이브를 잘 다루지 못합니다. 양쪽 모두에서 잘 작동하는 것은 exFAT뿐입니다.
- 케이블이 절반 속도로 작동할 수 있습니다. 테스트에서 Linux 노트북과 Mac이 40 Gb/s 케이블의 20 Gb/s 레인 하나로만 연결되었습니다.
케이블을 연결하고 각 컴퓨터의 주소 찾기
두 컴퓨터 모두 Thunderbolt 또는 USB4가 있다면, 둘 사이를 케이블로 연결해 직접 네트워크 연결을 만들 수 있습니다. Mac에서는 Thunderbolt 브리지라고 부르고, Linux에서는 thunderbolt0이라는 이름이 붙습니다. 이런 포트가 없다면 대신 가정용 네트워크와 그 주소를 사용하세요. Thunderbolt로 파일 전송하기를 참고하세요.
Mac에서
- 케이블을 연결합니다.
- 시스템 설정에서 네트워크, Thunderbolt 브리지를 차례로 선택합니다.
- 세부사항…을 클릭하고 IP 주소를 적어 둡니다. 케이블에 다른 장치가 없으면 169.254로 시작합니다.
Linux 컴퓨터에서
터미널에서 다음 명령을 실행합니다. 설정을 읽기만 합니다:
ip -4 addr show thunderbolt0inet 169.254… 줄이 케이블의 주소입니다. inet 줄이 없다면 NetworkManager가 아직 DHCP를 기다리고 있는 것입니다. 케이블에 자체 할당 주소를 지정하세요:
- 설정에서 네트워크를 선택한 다음 케이블 유선 연결 옆의 설정 버튼을 클릭합니다.
- IPv4 탭에서 링크-로컬 전용을 선택하고 적용을 클릭합니다.
- 연결을 껐다가 다시 켠 다음
ip명령을 다시 실행합니다.
컴퓨터 이름이 아니라 항상 169.254 주소로 연결하세요. 이름으로는 컴퓨터의 Wi-Fi 주소를 찾을 수 있고, 그러면 복사가 Wi-Fi로 진행됩니다.
방법 1: 터미널에서 SSH를 통한 rsync
rsync는 터미널에 익숙한 사람에게 알맞습니다. 폴더 전체를 복사하며, 복사가 멈춰도 다시 실행하면 이미 복사된 파일은 건너뜁니다. 모든 명령을 Linux 컴퓨터에서 실행하므로 Mac만 설정하면 됩니다.
Mac에서
- 시스템 설정에서 일반, 공유를 차례로 선택하고 원격 로그인을 켭니다.
- 원격 로그인 옆의 정보 버튼을 클릭하고 내 계정이 허용되어 있는지 확인합니다.
- 데스크탑, 문서, 다운로드에서 복사하려면 같은 패널에서 원격 사용자에 대한 전체 디스크 접근 권한 허용을 켭니다. 이 옵션이 없으면 macOS가 'Operation not permitted'와 함께 해당 폴더를 거부합니다.
Linux 컴퓨터에서
- 터미널에서
rsync -a --progress user@address:/Users/user/Projects/ ~/Projects/를 실행합니다.user는 Mac 계정의 짧은 이름(홈 폴더 이름)으로,address는 Mac의 169.254 주소로 바꿉니다. - 처음에는 SSH가 Mac을 신뢰할지 묻습니다.
yes를 입력합니다. - Mac 계정의 암호를 입력합니다. rsync가 복사하는 파일을 하나씩 표시합니다.
반대 방향으로 복사하려면 두 경로를 바꿉니다. 끝의 /가 중요합니다. 붙이면 rsync가 폴더의 내용을, 붙이지 않으면 폴더 자체를 복사합니다. 공백이 있는 경로는 따옴표로 감싸세요. 탐색할 화면이 없으므로 시작하기 전에 정확한 경로를 알아야 합니다.
방법 2: Mac 폴더를 공유하고 Linux에서 열기
Mac 파일 공유는 Linux에 소프트웨어가 필요 없습니다. GNOME 파일과 대부분의 Linux 파일 관리자가 SMB 공유를 열 수 있습니다.
Mac에서
- 시스템 설정에서 일반, 공유를 차례로 선택하고 파일 공유를 켭니다.
- 파일 공유 옆의 정보 버튼을 클릭합니다. 공유 폴더 아래에서 +를 클릭하고 폴더를 선택합니다.
- Linux에서 파일을 복사해 넣어야 한다면 사용자 아래에서 내 계정을 읽기 및 쓰기로 설정합니다.
- 옵션…을 클릭하고 Windows 파일 공유 아래에서 계정을 선택한 다음 암호를 입력하고 완료를 클릭합니다. 이 단계를 거치지 않으면 Linux에서 로그인할 수 없습니다.
Linux 컴퓨터에서
- 파일에서 Ctrl+L을 누르고
smb://와 Mac의 주소를 입력한 다음(예:smb://169.254.20.30) Enter 키를 누릅니다. - 등록된 사용자를 선택하고 Mac 계정의 짧은 이름과 암호를 입력한 다음 연결을 클릭합니다.
- 공유 폴더를 엽니다. 파일을 드래그해 넣거나 꺼냅니다.
이 방법으로 큰 파일은 잘 복사됩니다. 작은 파일이 많은 폴더는 느린데, 파일 공유가 파일을 하나씩 열고, 쓰고, 닫기 때문입니다.
방법 3: Samba로 Linux 폴더 공유하기
Finder에서 Linux 컴퓨터의 파일을 탐색하고 싶다면 Linux에서 공유하세요. 아래의 각 명령은 시스템을 변경하며 sudo용 암호가 필요합니다. you는 내 Linux 사용자 이름으로 바꿉니다.
Linux 컴퓨터에서
- Samba를 설치합니다. Fedora에서는
sudo dnf install samba, Ubuntu에서는sudo apt install samba를 실행합니다. - 아래와 같이
/etc/samba/smb.conf의 끝에 공유를 추가합니다.fruit줄이 Apple 호환 옵션을 추가합니다. sudo smbpasswd -a you로 사용자의 Samba 암호를 설정합니다. 로그인 암호와는 별개입니다.- 방화벽을 엽니다. Fedora에서는
sudo firewall-cmd --permanent --add-service=samba를 실행한 다음sudo firewall-cmd --reload를 실행합니다. Ubuntu에서는 직접 켜지 않았다면 방화벽이 꺼져 있습니다. 켜져 있다면sudo ufw allow samba를 실행합니다. - Fedora에서는 SELinux가 폴더를 공유하도록 허용합니다:
sudo semanage fcontext -a -t samba_share_t "/home/you/Projects(/.*)?"를 실행한 다음sudo restorecon -R /home/you/Projects를 실행합니다. - Samba를 시작합니다. Fedora에서는
sudo systemctl enable --now smb, Ubuntu에서는sudo systemctl restart smbd를 실행합니다.
[Projects]
path = /home/you/Projects
valid users = you
read only = no
vfs objects = catia fruit streams_xattrMac에서
- Finder에서 이동 > 서버에 연결…을 선택합니다.
smb://와 Linux 컴퓨터의 주소를 입력하고(예:smb://169.254.40.50) 연결을 클릭합니다.- 등록된 사용자를 선택하고 Linux 사용자 이름과 Samba 암호를 입력한 다음 연결을 클릭합니다.
- Projects 공유를 선택합니다. Finder에서 열립니다.
10 Gb/s Thunderbolt 연결에서 테스트했을 때, Mac은 Samba 공유에서 작은 파일 20,000개(331 MB)를 114초 만에 복사해 왔고, 공유로는 238초 만에 복사했습니다. 4 GiB 파일은 양방향 모두 약 7.6 Gb/s로 복사되었습니다.
잠자기, 재시동, 케이블 분리 후에는
여기 나온 모든 방법은 케이블 연결이 살아 있는 동안에만 작동합니다. 어느 컴퓨터든 잠자기에 들어가거나 케이블을 뽑으면 연결이 끊깁니다.
- rsync가 연결 오류로 멈춥니다. 같은 명령을 다시 실행하세요. 이미 도착한 파일은 건너뜁니다.
- 공유 폴더 연결이 끊깁니다. Finder는 서버 연결이 중단되었다고 경고하고, 파일은 공유를 닫습니다. 다시 연결하고 로그인하세요.
- 주소가 바뀔 수 있습니다. 자체 할당 주소는 케이블을 뽑은 후 바뀔 수 있으므로, 다시 연결하기 전에 다시 확인하세요.
- 재시동 후에도 공유는 켜져 있습니다. 원격 로그인, 파일 공유, 활성화된 Samba 서비스는 저절로 다시 시작됩니다. 다른 컴퓨터에서는 여전히 다시 연결해야 합니다.
잠자기 후 네트워크 공유 연결이 끊기는 이유를 참고하세요.
방법 4: exFAT 드라이브
드라이브를 exFAT로 포맷하고 파일을 복사해 넣었다가 꺼냅니다. 어느 컴퓨터에서도 설정이 필요 없고 Thunderbolt나 USB4 없이도 작동하지만, 모든 파일을 두 번 복사하며 드라이브에 여유 공간이 충분해야 합니다.