Computer >> 컴퓨터 >  >> 시스템 >> Linux

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

NTFS 드라이버를 설치하지 않고 macOS에서 NTFS 드라이브를 사용한다니, 모순처럼 들리시나요? 하지만 사실입니다. 기본적으로 macOS에서는 NTFS로 포맷된 장치에 쓰기 기능이 제공되지 않습니다. 최근 맥북을 쓰면서 이 사실을 알게 되었는데, 큰 문제는 아니지만 Windows 시절의 기존 자료들을 옮기거나 가끔 접근해 사용할 일이 많았습니다. 결국 파일 시스템 지원을 위한 별도의 방법이 필요했습니다.

이 문제를 해결하는 가장 확실한 방법은 전용 소프트웨어를 구매하는 것입니다. 사실 그렇게 하는 것이 좋습니다. 하지만 비용을 들이고 싶지 않다면, 다소 우회적이지만 무료로 동일한 작업을 수행할 수 있는 방법이 있습니다. 물론 상당히 큰 주의사항이 따릅니다. 오늘의 가이드는 무엇보다 재미있는 실험이며, 그다음으로 유용한 실용 레시피입니다. 제가 어떻게 했는지 하나씩 보여드리겠습니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

준비물

필요한 것은 다음과 같습니다.

  • 가상화 소프트웨어 (예: VirtualBox)
  • Linux 기반 운영체제 (예: Ubuntu — ARM 등 호스트와 아키텍처가 일치하는 버전)
  • NTFS 파티션이 하나 이상 포함된 USB 외장 저장 장치

(전위적인) 방법 개요

진행 순서는 다음과 같습니다.

  • 외장 디스크를 맥북에 연결합니다.
  • Ubuntu 가상 머신을 실행합니다.
  • VirtualBox의 패스스루(passthrough) 옵션으로 USB 장치를 가상 머신에 연결합니다.
  • Linux의 NTFS 읽기·쓰기 능력(ntfs 또는 ntfs-3g 드라이버)을 활용합니다.
  • VirtualBox의 공유 폴더 기능으로 데이터를 양방향으로 복사합니다.

결국 데이터 경로는 이렇게 됩니다.

USB 장치 → macOS → VirtualBox → Linux → macOS 공유 폴더

이렇게 하면 어느 방향으로든 데이터를 복사할 수 있습니다. 호스트에 네이티브 드라이버가 있다면 바로 복사하는 것보다 단계가 많을 뿐입니다.

이 방법의 장단점

본격적으로 시작하기 전에 반드시 짚고 넘어가야 할 부분들이 있습니다.

  • macOS에는 NTFS 읽기 지원이 내장되어 있습니다. 따라서 데이터를 안전하게 '안으로' 복사할 수 있습니다.
  • Linux에서의 NTFS 지원은 보장되지 않습니다. 작동할 수도, 그렇지 않을 수도 있습니다.
  • 버그, 시스템 정지, 심하면 데이터 손실을 겪을 수 있습니다.
  • 장치와 파티션을 다루는 작업은 지식과 주의가 필요합니다. 데이터를 잃을 수 있습니다.
  • 데이터 손실 가능성, 분명히 말씀드렸죠?

따라서 여기서 소개하는 방법은 정말 급할 때 데이터를 임시로 주고받기 위한 임시방편으로 생각하시기 바랍니다. 더 좋은 방법은 네트워크 공유를 사용하는 것이며, macOS는 Samba 공유와 매우 잘 작동합니다. 운영체제 간에 외장 장치로 데이터를 주고받아야 한다면 exFAT 포맷을 고려해 보세요. 이미 제공되는 읽기 전용 기능도 잊지 마시고, 필요하다면 상용 NTFS 드라이버를 구매하는 것도 합리적인 선택입니다.

1단계: NTFS 파티션이 있는 외장 장치 연결

외장 장치를 연결하면 Finder 사이드바에 표시됩니다. 클릭해 마운트하면 기본적으로 읽기 전용 기능을 바로 사용할 수 있습니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

2단계: VirtualBox에서 Ubuntu 가상 머신 실행

다음 단계입니다. 가상 머신 설정은 간단한 과정이 아니므로, 먼저 관련 가이드를 참고해 환경을 구축해 두시기 바랍니다. 가상 머신이 실행되면 메뉴에서 Devices(장치) > USB > 게스트 운영체제로 패스스루할 외장 디스크를 선택합니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

VirtualBox에 이 작업을 허용해 줍니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

이제 장치는 Linux 데스크톱에 나타나고, macOS 화면에서는 사라집니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

3단계: Linux에서 장치 마운트

보안 권한 문제와 macOS에서 VirtualBox가 작동하는 방식 때문에 파일 관리자로는 디스크를 마운트할 수 없습니다. sudo 권한이 필요합니다. VirtualBox 자체를 sudo로 실행하지 말고, Linux 명령줄에서 sudo를 사용하세요.

sudo mount -t ntfs /dev/whatever /mount-point

이제 파일 관리자에 장치가 올바르게 표시되며 접근할 수 있습니다. 다만 쓰기 권한을 얻으려면 마운트 지점에 쓰기 권한을 부여하거나 소유권을 변경해야 할 수 있습니다. 예를 들어 /mount/something 아래에 마운트하면 해당 폴더는 root 소유가 되어 기본적으로 읽기 권한만 갖게 됩니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

4단계: 데이터 복사하기

이제 준비가 끝났습니다. USB 드라이브에 데이터를 넣으려면, Mac에서 공유 폴더로 파일을 복사한 뒤 가상 머신 안에서 공유 폴더에서 마운트된 장치로 옮기면 됩니다. 작업이 끝나면 장치를 언마운트하거나 가상 머신을 종료하세요. 장치가 다시 macOS에 나타납니다.

참고로 공유 폴더 기능을 사용할 수 없는 상황이라면, 포트 포워딩과 SSH를 이용해 가상 머신 안팎으로 데이터를 주고받을 수도 있습니다. 이 방식은 보안상의 이유로 게스트 확장(Guest Additions)을 쓸 수 없는 환경에서도 작동하며, 스크립트 자동화나 백업 같은 추가적인 유연성까지 얻을 수 있습니다.

드라이버 설치 없이 macOS에서 NTFS 드라이브 읽고 쓰기 – VirtualBox 우회 방법

발생 가능한 문제들

앞서 언급한 데이터 손실 외에도, 다른 환경에서 제대로 언마운트되지 않은 파일 시스템 때문에 Linux 게스트가 마운트를 거부하는 문제를 만날 수 있습니다.

An error occurred while accessing 'Dedoimedo', the system responded:
The requested operation has failed: Error mounting /dev/sdb1 at
/media/igor/Dedoimedo: wrong fs type, bad option, bad superblock
on /dev/sdb1, missing codepage or helper program, or other error

혹은 다음과 같은 오류가 나타날 수도 있습니다.

sudo mount /dev/sdb1 /mnt
$MFTMirr does not match $MFT (record 0).
Failed to mount '/dev/sdb1': Input/output error
NTFS is either inconsistent, or there is a hardware fault,
or it's a SoftRAID/FakeRAID hardware.
...

이런 경우 Ubuntu의 ntfs-3g 유틸리티 패키지에 포함된 ntfsfix 명령으로 복구를 시도할 수 있습니다.

sudo ntfsfix /dev/sdb1
Mounting volume... $MFTMirr does not match $MFT (record 0).
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Correcting differences in $MFTMirr record 3...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.

복구 후 다시 마운트를 시도하면 정상적으로 작동할 것입니다. 하지만 다시 한번 강조합니다. 이 방법은 100% 안전하지 않으며, macOS가 있다고 해서 예외가 아닙니다. Linux에서 NTFS를 다루는 것 자체에도 여러 문제가 생길 수 있고, 위 시나리오는 그 위에 복잡성을 더할 뿐입니다.

맺음말

이 다소 괴짜스러운 튜토리얼은 실용성보다는 재미로 보일 수 있지만, 분명한 장점이 있습니다. 여러 운영체제를 나란히 활용하고, 가상화를 서로 다른 환경을 잇는 다리로 사용하는 유연성을 잘 보여줍니다. 이 사례에서는 NTFS를 읽기 전용으로만 지원하는 macOS와 (어느 정도의) NTFS 쓰기를 지원하는 Linux가 연결됩니다. 생각해 보면 꽤 유용합니다. Windows에서 다른 환경으로 이주하면서 자료를 내보낼 방법이 필요하다면 충분히 도움이 될 것입니다.

여기서 더 나아갈 수도 있습니다. 앞서 소개한 Linux의 TrueCrypt 및 VeraCrypt 컨테이너 기본 지원과 결합하는 것입니다. NTFS 기반 암호화 컨테이너가 담긴 외장 장치를 macOS와 Windows에서 계속 읽고 쓰며 사용하고 싶다면, 역시 Linux 가상 머신을 활용하면 됩니다. 외장 장치를 게스트로 패스스루하고, 장치를 마운트한 뒤 암호화 컨테이너를 열어 데이터를 복사하면 됩니다. 이 주제로 별도의 튜토리얼도 작성해 볼 만합니다. 이 글이 도움이 되기를 바랍니다. 과정이 까다로울 수 있고 데이터를 잃을 수도 있으니, 반드시 검증 가능한 백업을 여러 개 확보해 두세요.

즐거운 컴퓨팅 되세요!