리눅스에서 외장 하드를 마운트하고 안의 내용을 복사할 일이 생겨서 USB 포트에 꼽고 아래의 mount 명령어를 실행했습니다.

$ sudo mount /dev/sdc /mnt/usb


mount: unknown filesystem type 'ntfs'
CODE

하지만 위와 같이 mount: unknown filesystem type 'ntfs' 라는 에러 메시지가 발생하고 제대로 마운트가 되지 않았습니다.


아마 리눅스 커널에 NTFS 드라이버가 기본적으로 포함되지 않아서 발생하는 것 같아서 구글링해보니 아래와 같이 처리하면 된다는 것을 알아서 정리해 봅니다.


설정

먼저 NTFS 드라이버를 설치하기 위해 epel 저장소를 설치합니다.

$ sudo yum install epel-release -y
CODE


epel 저장소에서 ntfs 드라이버 패키지(ntfs-3g)를 설치합니다. 

$ sudo yum install ntfs-3g -y
CODE


이제 mount 명령을 다시 실행하면 NTFS 로 된 외장 하드를 마운트할 수 있습니다.

$ sudo mount /dev/sdc /mnt/usb
CODE

또는 ntfs-3g 마운트 유틸리티인 mount.ntfs-3g 를 사용해도 됩니다.

$ sudo mount.ntfs-3g /dev/sdc /mnt/usb
CODE

자동으로 file system type 을 인식하므로 -t ntfs-3g 옵션을 제외해도 잘 마운트합니다.


mount option

NTFS 의 경우 파티션에 휴지통($RECYCLE.BIN)이나 볼륨 정보(System Volume Information) 폴더가 존재합니다. 이런 파일을 숨기고 리눅스에서 만든 파일을 Windows 에서 사용할 때 문제가 없도록 다음 마운트 옵션을 추가해도 됩니다.

$  sudo mount.ntfs-3g -o hide_hid_files,windows_names /dev/sdc /mnt/usb
CODE
  • hide_hid_files :  휴지통이나 볼륨 정보를 숨깁니다.
  • windows_names: 파일이나 폴더 생성시 Windows 에서 문제가 되는 문자열( * / : < > ? \ |)은 허용하지 않습니다.

rsync 로 필요한 파일만 복사

마운트를 하고 외장 하드의 내용을 리눅스로 복사하려고 보니 NTFS 의 경우 파티션에 휴지통($RECYCLE.BIN)이나 볼륨 정보(System Volume Information) 폴더가 존재합니다.

이런 폴더와 파일은 필요없으므로 rsync 의 --exclude 옵션을 사용해서 제외하고 복사해 줍니다.(같이 보기 참고)

cp 대신 rsync 를 사용하는 이유는 복사 진행률을 알수 있고 --exclude 옵션으로 미리보기 데이타(Thumbs.db) 나 .DS_Store등 불필요한 파일을 제외할 수 있기 때문입니다.


같이 보기

Ref