상세 컨텐츠

본문 제목

[맥북-NTFS] 맥북에서 윈도우 외장하드(NTFS) 쓰기(mount) - 모든버전 사용 가능

IT 이야기/IT 상식

by 리치윈드 - windFlex 2022. 6. 29. 23:14

본문

반응형

맥북에서 NTFS를 사용해 보자.

맥북 (MacOS)는 파일시스템 (FileSystem)이 윈도우의 그것과 다르기 때문에, 윈도우용으로 사용하던 외장하드/외장SSD/USB등의 쓰기를 사용할 수 없다. 다행하게도 읽기는 지원을 해주지만, 아래 처럼 쓰기가 되지 않는다. 

"정보 가져오기"를 통해서 디스크 정보를 보면, "읽기만 가능"으로 표기 되어 있다. 실제 디스크의 폴더에 접근하여 "새폴더 만들기" 등이 팝업메뉴에 출력되지 않으며, 당연하게도 "파일복사" 등이 되지 않는다. 맥북의 내장 SSD 용량 부족으로 데이터를 백업하거나, 윈도우용으로 사용하던 USB담아서 파일을 옮기려고 할 때, 매우 곤란을 겪게 된다.

 

패러랠즈, VMware 또는 부트캠프(Bootcamp) 등을 사용하여 윈도우와 같이 OS를 사용하는 유저의 경우에는 불편하더라도 파일복사/백업 방법이 있지만, 이 또한 패러럴즈/VMware를 추가 구동해야 하고, 복사를 다수회 진행해야 할 수도 있다. 또한, 부트캠프는 리부팅 후 윈도우즈 부팅을 해야 하기 때문에 상황에 따라서는 아예 선택지에서 제외 해야 하는 경우도 존재한다. 

FAT32 등 OS와 무관하게 공용으로 사용하는 파일시스템은 모두 사용 가능하다. 그러나, FAT32 파일 시스템은 4G이상의 파일을 저장하지 못한다. (2^32 -> 4*GB) 

맥북 (MacOS)에서 윈도우즈용 디스크의 정보가져오기 (좌). 디스크에 대한 권한이 읽기만 가능으로 되어 있다. 윈도우용 디스크에서 팝업메뉴 (우). 새폴더 만들기 등의 메뉴 자체가 없으며, 파일복사/이동 등 쓰기 관련한 기능이 아예 동작하지 않는다. 

 

이러한 이유로 우리는 맥북(최근 Monterey 포함)에서 "윈도우용 디스크 (NTFS)"에 대한 쓰기 권한으로 열기가 필요하다. 

구글을 검색해 보면, 유사한 사례로 "맥북에서 NTFS 쓰기 방법" 등에 대한 다양한 정보가 나올것이다. 

  • mounty application 설치
  • NTFS 지원용 유료 Application 설치
  • /etc/fstab mount 방법
  • 수동 mount 방법

결론부터 말하면, 유료 Application 설치 방법 외 나머지 방법들은 모두 해 보았으나, 필자의 환경 (Monterey 12.2.1)에서는 다수의 방법이 동작하지 않았다. 필자의 경우는 수동 mount 방법만이 동작하여 그 방법과, 그외 방법들을 소개한다. 

직접 수동 Mount 해서 사용한다

 

 

수동 마운트 (Mount) 방법

 

수동 마운트라고 해서 걱정할 것 없다.

NTFS 디스크를 마운트하기 위해서는, 다음과 같은 정보를 확인하고 수행 하면 된다. 

  • 마운트하고자 하는 디스크(NTFS용 디스크)의 디바이스명
  • 마운트하고자 하는 위치 (폴더, 신규 생성)
  • 마운트 명령어 수행 ( NTFS 디바이스 이름 --> 마운트폴더 )
한번 수작업 하고 나면, 쉘스크립트 등으로 자동화해 사용해도 좋을 것이다. 

실제 수행할 명령어만을 먼저 리스트업 해보면 다음과 같다.  (이게 이 포스팅의 핵심이다.)

$ diskutil list
$ sudo mkdir /Volumes/disk2s2
$ sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk2s2 /Volumes/disk2s2

 

이제 위 명령어를 하나씩 살펴 보도록하자. 

 

우리의 목적을 다시 말하면, NTFS 디스크에 쓰기 권한을 부여하고 마운트(mount)하는 것이다. 즉, 다음과 같은 형태가 최종 목적이라는 것이다. 

$ mount   <NTFS파일시스템>  <읽기/쓰기권한>       <디스크이름>     <마운트할 폴더>

 

여기에서 부족한 정보를 확보하고 mount를 실행해 주면 되는것이라 하겠다. 위에서 우리가 모르는 것이 무엇일까? 나머지는 형식에 맞게 표기해 주면 되지만, 정확한 "<디스크이름>"을 알지 못한다. linux에서는 `sda0` `sdb0` 등의 이름을 사용하는데, MacOS에서는 다른 네이밍 체계를 가지고 있다. 

구글을 검색하면, /etc/fstab/을 이용하 마운트를 자동화 해주는 방법들이 검색 된다. 그런데 여기에서 문제점이 정확한 "디바이스명"을 가이드 하지 않는다. 디바이스이름이 아니라, `SSD` `WindowsDisk`등의 디스플레이 네임을 표기하면 된다는 설명이 있는데, 이렇게 하면 동작하지 않는다. MacOS에서 자체적으로 어떤 추가/편의 프로세스가 있을지 모르겠지만, Linux Mount를 조금 아는 사람이라면 이렇게 동작하지 않을 것을 알것이다. 저 디스크 이름은 단순히 표기상의 구분일 뿐이다. 정확한 DeviceID가 필요하다. 

위와 같은 이유로, 정확히 OS에서 인지하는 Device ID를 구해야 한다. 이를 위해서 `diskutil list`를 실행해 본다. 

실행 1) diskutil list

diskutil list 명령어를 통하여, 실제 OS가 인식하고 있는 Disk 볼륨을 확인할 수 있다.

`diskutil list`를 실행하면 위와 같은 결과를 볼 수 있다. 윈도우즈에서 `disk part`등과 비슷한 화면이다.  여러 항목이 나오지만 대부분 내장 디스크에 대한 정보이고, 하단으로 중간쯤 `/dev/disk2 (external, physical)`에서 외장물리디스크에 관한 섹션인것을 확인 할 수 있다. 이 중에서 "GUID_partition_scheme" 디스크볼륨은 아니고 볼륨구조에 대한 스키마 이므로 직접적인 마운트 대상은 아니다. 따라서, 3번째에 있는 "Microsoft Basic Data SSD"가 대상이며 디바이스ID "disk2s2" 인것을 확인 할 수 있다. 

`/dev/disk3`는 가상디스크/이미지의 영역이다.

실행 2) 마운트할 대상 폴더 생성 : mkdir /Volumes/disk2s2

마운트할 대상 위치에 폴더를 하나 생성한다. 마운트후에 이 폴더가 디스크 역할을 대신 할 것이다. 일반 디스크와 동일하게 취급하기 위해서 `/Volumes/`하단에 폴더를 생성하도록 하자. 또는 본인의 취향에 따라서 편한 위치에 생성해도 된다. 또, 마운트할 폴더명 (추후 디스크명)을 지정하여 `mkdir`을 실행해 주면 된다. 필자의 경우는 Disk ID 이름과 동일하게 `disk2s2`라고 지정하였다. 

  • $ sudo mkdir /Volumes/disk2s2
`/Volumes`은 관리자영역이므로 하위 폴더 생성에 `sudo`가 필요하다.

 

실행 3) Mount : mount -t NTFS -o rw,auto,nobrowse <디스크id> <마운트 대상 폴더>

위에서 정보 (디스크 ID: disk2s2)와 마운트할 폴더 (/Volumes/disk2s2)를 확보하였다. 이제 실제 마운트만 해 주면 우리는 맥북(MacOS)에서 NTFS 디스크를 사용하여 읽고/쓰기를 할 수 있다. 

 

다음과 같이 실행해 주면 된다. 

$ sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk2s2 /Volumes/disk2s2

 

위 명령을 수행하고 나면, 다음과 같이 동일이름을 가진 디스크 드라이브가 추가 생성되어 있는 것을 확인할 수 있다. 

추가적인 디스크 SSD가 /Volume/에 생성되어 있다. (좌). 사실 이 디스크는 /Volume/disk2s2 이다. 해당 디스크는 원래의 디스크와 달리 팝업메뉴에 "이름변경"등 기존 "읽기"권한 으로 수행할 수 없는 메뉴가 포함되어 있다. 디스크 정보를 보면 권한항목에 "사용자 설정으로 연결함"이라고 표시 되어 있다. 

이 신규 디스크 "SSD"는 실제 이름은 "disk2s2"이지만, 디스크 드라이브 이름 (디스플레이 이름)으로 변경 출력되는 것이다.  위에서 잠깐 언급했지만, 구글링으로 검색되는 "/etc/fstab" 등록 방법은 이러한 디스크의 이름을 지정해 줄 때 명시성이 부족해서 잘 동작하지 않는다. 또한, "disk2s2"라는 Device ID는 디스크가 구동될 때마다 숫자가 달라질 수 있다. 따라서 "/etc/fstab"에 등록해 두고 자동화 할 수 있을지는 의문이다. (외장하드 포트를 절대 빼지 않는 다는 가정이 있으면 가능할 지도 모르겠다.)

SSD 디스크 중 쓰기가 가능한 디스크의 원래 이름은 disk2s2

마운트 된 결과를 확인해 보자:  `mount`를 실행해 보면 마운트가 결려있는 정보를 나열해 준다. 결과를 확인해 보면 `/dev/disk2s2`가 마운트 되어 있음을 확인할 수 있다. 또한, 이전에 소개한적 있던 안드로이드 (Android)에 파일을 전송하는 애플리케이션 또한 유사한 방법으로 마운트가 걸려 있는 것을 알수 있다. 

마운트가 설정되어 있는 결과를 확인할 수 있다. 안드로이드 파일 전송 프로그램도 비슷한 방식을 사용하고 있다.

이제 우리는 NTFS 외장하드(SSD)에 자유롭게 파일 쓰기를 할수 있다. 맥북의 부족한 하드디스크의 고통을 완화할 수 있는 수단이다. 데이터파일 등은 외장SSD로 빠르게 사용할 수 있을 것이다.

(참고로 필자는 윈도우즈 머신에서 내장 SSD로 사용하던 것을 외장으로 쓰는 방법을 사용하고 있다. 매우 빠르게 내장과 유사한 속도로 사용할 수 있어서 편리하다. 대용량을 지원하기 때문에, USB메모리와는 차원이 다른 편의성이 있다. 또한 필요에 따라서는 다시 윈도우즈 머신에서 사용한다.)

이제 NTFS 디스크/외장하드에 새로운 파일 쓰기를 자유롭게 할 수 있다.

4) 마운트 삭제 (다른 마운트를 삭제하지 않도록 주의할것)

마운트한 결과가 필요 없으면 마운트 설정을 제거하면 된다. 

다른 마운트 포지션이 제거되지 않도록 2번~3번 확인하고 삭제하도록 하자...

$ sudo umount -f /Volumes/disk2s2
$ mount -f <마운트한 폴더>     or    mount -f <마운트한 디스크ID> 

 

 

 

ERROR : Read-only file system

 

종종 아래와 같이, "Read-only file system"이라는 에러가 발생할 수 있다. 

mount_ntfs: /dev/disk2s2 on /Users/windstream/ExtDrive: Read-only file system
mount: /Users/windstream/ExtDrive failed with 71

 

 

 

아래부터는 구글에서 검색되는 mounty 애플리케이션과 /etc/fstab을 사용하는 방법을 간략히 정리하였다. 필요에 따라 사용할 수 있을 것이니 참조하기 바란다.

mounty 설치 방법

 

brew install --cask mounty

 

 

 

 

 

/etc/fstab에 mount 설정 방법

sudo nano /etc/fstab

 

반응형

관련글 더보기

댓글 영역