Linux/Centos 7 1611

Centos 7 NTFS 디스크 마운트

a1de61c172 2017. 1. 14. 17:47

Windows 에서 사용하던 디스크를 Linux에서 Samba를 이용해 공유하는 것과 같은 이유로 Windows에서 사용하던 NTFS 디스크를 Linux 시스템에 마운트를 해야 할 경우가 있습니다. 이 경우 'ntfs-3g' 패키지를 이용하면 마운트가 가능합니다.

NTFS-3g 설치

EPEL 활성화

기본적으로 RHEL / Centos의 기본 패키지 저장소는 'ntfs-3g' 패키지가 없습니다. 워낙 RHEL이 안정적인 패키지만 지원해서 그런 것 같습니다. 따라서 EPEL이라는 확장 패키지 저장소를 사용해야 합니다. EPEL 저장소를 활성화 하려면 다음과 같은 명령어를 입력하면 됩니다. '#'은 root 권한이 필요하다는 의미로 일반 사용자 계정은 명령 앞에 'sudo'을 이용해 최고 관리자 권한으로 승격이 필요합니다.
# yum install epel-release

아래와 같은 결과가 나오고 설치가 완료 됩니다.

Dependencies Resolved

================================================================================
 Package                Arch             Version         Repository        Size
================================================================================
Installing:
 epel-release           noarch           7-9             extras            14 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 14 k
Installed size: 24 k
Downloading packages:
Public key for epel-release-7-9.noarch.rpm is not installed
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : epel-release-7-9.noarch                                      1/1
  Verifying  : epel-release-7-9.noarch                                      1/1

Installed:
  epel-release.noarch 0:7-9                                                    

Complete!

제대로 설치되었는지 확인하려면 다음과 같음 명령어를 입력합니다.

$ yum repolist | grep

아래와 같은 결과가 나오면 정상적으로 설치된 것입니다.

* epel: <mirror site address>

*epel/x86_64    Extra Packages for Enterprise Linux 7 - x86_64

NTFS-3g 설치

'ntfs-3g' 패키지를 설치하려면 다음과 같은 명령어를 입력하세요.

# yum install ntfs-3g

아래와 같은 메시지가 나오고 설치가 완료됩니다.

Dependencies Resolved

================================================================================
 Package         Arch           Version                      Repository    Size
================================================================================
Installing:
 ntfs-3g         x86_64         2:2016.2.22-3.el7            epel         297 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 297 k
Installed size: 695 k
Downloading packages:
Public key for ntfs-3g-2016.2.22-3.el7.x86_64.rpm is not installed
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:ntfs-3g-2016.2.22-3.el7.x86_64                             1/1
  Verifying  : 2:ntfs-3g-2016.2.22-3.el7.x86_64                             1/1

Installed:
  ntfs-3g.x86_64 2:2016.2.22-3.el7                                             

Complete!

NTFS 디스크 준비

Windows에서 사용하던 NTFS 디스크를 그대로 옮긴 후, 'mount'를 수행하면 아래와 같은 에러를 볼 수 있습니다.

The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sdc1': Operation not permitted The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option.

이러한 에러가 뜨는 이유는 Windows 8이상 부터 있는 '빠른 시작'기능 때문입니다. 따라서 NTFS 디스크를 Windows 컴퓨터에 연결 한 후, '빠른 시작'을 끄고 시스템을 종료합니다. 그 다음 NTFS 디스크를 빼서 Linux 시스템에 연결하여야 합니다.

Windows 빠른 시작 끄기

'제어판 > 하드웨어 및 소리 > 전원 옵션'에서 왼쪽 '전원 단추 작동 설정'을 클릭합니다.

'현재 사용할 수 없는 설정 변경'을 클릭하면 아래 '종료 설정' 메뉴가 활성화 됩니다. 그 후, '빠른 시작 켜기(권장)'의 체크를 해제합니다.

'변경 내용 저장'버튼으로 변경한 내용을 저장하고 시스템을 종료합니다. 그 다음 NTFS 디스크를 뽑아서 Linux 시스템에 연결합니다.

Mount 를 이용한 NTFS 파티션 마운트

NTFS 파티션을 마운트 하기 전 마운트를 할 폴더를 만들어야 합니다. 저는 '/mnt' 폴더 하위에 'data'라는 폴더를 만들겠습니다.

# mkdir /mnt/data

그 다음 mount 명령을 이용해 마운트를 수행하겠습니다.

# mount -t ntfs-3g /dev/sdb2 /mnt/data -o defaults

그 다음 'ls'를 이용해 마운트 된 폴더를 확인하면 시스템 폴더인 '$RECYCLE.BIN' 폴더와 'System Volume Information' 폴더가 보입니다. NTFS의 숨김 옵션이 적용이 되지 않아 생기는 현상인데 이를 해결하려면 마운트 시, 추가적인 옵션이 필요합니다.

drwxrwxrwx. 1 root root    0  1월 14 18:57 $RECYCLE.BIN
drwxrwxrwx. 1 root root 4096  1월 14 18:57 .
drwxr-xr-x. 3 root root   18  1월 14 18:59 ..
drwxrwxrwx. 1 root root    0  1월 14 18:57 System Volume Information
drwxrwxrwx. 1 root root    0  1월 14 18:57 testdir
-rwxrwxrwx. 1 root root   10  1월 14 18:57 testfile.txt

아래 명령어를 통해 마운트를 하면 위와 같은 일을 방지할 수 있습니다.

# mount -t ntfs-3g /dev/sdb2 /mnt/data -o defaults,hide_hid_files,windows_names

  • 'hide_hid_files' 옵션은 NTFS의 숨김 옵션을 리눅스에서 숨김 폴더로 인식하게 해주는 옵션입니다.
  •  'windows_names'는 파일과 폴더의 이름이 Windows 시스템에서 허용되지 않는 문자를 포함할 수 없도록 만들어줍니다.

위와 같이 마운트를 하고 폴더를 조회해 보면 시스템 폴더들이 사라져 있습니다.

drwxrwxrwx. 1 root root    0  1월 14 18:57 testdir
-rwxrwxrwx. 1 root root   10  1월 14 18:57 testfile.txt

fstab에 mount 하기

'mount' 명령을 이용하면 재부팅 하면 마운트 정보가 유실되서 다시 마운트를 해야합니다. HDD 같은 고정 드라이브에는 굉장히 불편합니다. 부팅 타임에 자동으로 마운트 하도록 만들어 줄 수 있습니다. 이는 '/etc/fstab' 파일을 수정해서 등록할 수 있습니다.

nano나 vi같은 편집기를 이용해 'etc/fstab'폴더를 열어 편집합니다.

fstab 파일 구조[각주:1]

fstab 파일은 다음과 같은 구조를 갖습니다.

# 디바이스 마운트 위치 파일시스템 종류 옵션 덤프 무결성 확인 LABEL=/ / ext4 defaults 1 1 /dev/sda6 none swap defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0

  • '디바이스'는 '/dev/sda'와 같은 디바이스 이름이나 UUID등을 입력할 수 있습니다.
  • '마운트 위치'는 마운트가 될 위치를 지정하는데 'swap' 파티션의 경우에는 'none'를 입력합니다.
  • '파일 시스템 종류'는 대상 디바이스의 파일 시스템을 적습니다. NTFS의 경우에는 'ntfs-3g'를 적으면 됩니다.
  • '옵션'은 파일 시스템에서 지원하는 옵션들을 적을 수 있습니다. NTFS의 경우에는 위에서 적었던 'hide_hid_files'나 'windows_names'등이 있습니다.
  • '덤프'는 시스템에서 덤프 프로그램을 이용해서 백업할지 여부를 정합니다. 0이면 시스템은 자동으로 백업을 수행하지 않습니다.
  • '무결성 확인'은 부팅 타임에 fsck가 디바이스 에러 유무를 체크하는 설정입니다. 1은 루트 파일 시스템을 위한 것이고, 2는 루트 파일 시스템 다음에 무결성을 검사하는 옵션이고 3은 무결성 검사를 하지 않습니다.

NTFS 파티션 마운트

위 fstab 구조에 따라 마운트 파일을 수정하면 다음과 같이 수정할 수 있습니다.

#
# /etc/fstab
# Created by anaconda on Sat Jan 14 17:28:19 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=11ada13f-b877-407b-a7bb-4e4e67055efd /boot                   xfs     defaults        0 0
UUID=121F-0E55          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
/dev/sdb2    /mnt/data    ntfs-3g defaults,hide_hid_files,windows_names 0 0

이후 파일을 저장하고 재부팅 하면 드라이브가 '/mnt/data' 폴더에 마운트 되어 있을 것입니다.

  1. Wikipedia, fstab, https://en.wikipedia.org/wiki/Fstab [본문으로]

'Linux > Centos 7 1611' 카테고리의 다른 글

Centos 7 docker 설치하기  (0) 2017.03.18
Centos 7 Samba 설치 (Standalone)  (2) 2017.01.30
Centos 7 설치하기  (0) 2017.01.14