Sunday, June 26, 2016

exFAT and Automount

exFAT & Automount

exFAT & Automount


이 문서는 eEsc m⌥⌘Meta aAlt c^Ctrl sShift org-mode로 작성된 글입니다.


System Environments

Operating Systems

  • Main- : OS X El Capitan (10.11.5)
  • Sub- : Debian GNU/Linux Wheezy (7.11)
  • Server: Debian GNU/Linux Jessie || Wheezy || Squeeze
  • Mobile: iOS 9.3.2

Hardware Systems

  • OS X installed : MacBook Pro(13-inch, Mid 2009) 2.53 GHz Intel Core 2 Duo
  • Debian installed: Zotac ZBOX ID12 Intel Atom D525
  • iOS installed : iPhone 6s

exFAT & File Systems

exFAT은 Extended File Allocation Table의 약어로 기존의 FAT (File Allocation Table)에서 4 GB 이상의 단일 파일을 다룰 수 없었던 한계 벗어나 512 TiB까지 다룰 수 있는 파일 시스템 (File System) 중 하나로 Microsoft에서 개발하였다.

파일 시스템 (File System)에 대해서 간단히 설명하자면, 하드 (HDD or SSD)나 USB를 포맷할 때, 맨 처음 지정하는 것으로 이해하면 쉽다. 대부분의 USB는 FAT 로 포맷되어 나오는데 이는 4 GB 이상의 단일 파일을 다룰 수 없다는 한계에도 불구하고 현재까지 범용성이 최고라서 대부분의 OS (OS X or Macintosh, Linux, Windows)는 물론 프린터/스캐너 같은 USB 포트가 있는 대부분의 기기에서 별다른 설정없이 꽂으면 바로 사용할 수 있기 때문이다. USB와는 다르게 OS에서는 각자 고유의 File System을 쓰고 있는데, OS X (or Macintosh or MacOS)에서는 HFS+ (Hierarchical File System Plus), Linux 계열 대부분은 ext4 (Fourth extended file system), Windows 계열은 NTFS (New Technology File System)으로 포맷되어 사용된다. 이들 모두는 당연히 4 GB 이상의 단일 파일을 다룰 수 있지만, 서로 호환되는데 설정이 필요하거나 안되는 경우가 있다. 예를들어, 시중에서 백업용으로 판매하는 외장하드 대부분은 Windows OS를 대상으로 한 경우가 많아 NTFS 형식으로 주로 포맷되어 나온다. 이들은 OS X는 물론 Linux에서 바로 인식되지 않는다. 그러니 본인의 OS가 Windows가 아니라면 HFS+ext4 으로 포맷을 먼저한 후 사용하는 것이 대부분이다.

나처럼 두 개 이상의 OS를 사용하는 경우는 조금 상황이 복잡해진다. 외장하드를 ext4 으로 사용하자니 Main OS인 OS X에 무언가 3rd party software를 깔아야 하는데 이는 내 기준에 최후의 선택이며 안정성에서도 조금 의심이 간다. 그렇다고 HFS+ 로 포맷해서 쓰자니 따로 journaling을 없애야 하고 그렇게 해도 2nd OS인 Debian에서 인식이 불안정했다. 남은 선택은 exFAT 뿐이다. 유일한 선택지였지만, 나름 여러모로 장점이 많았다.

  • 첫째, OS X와 Linux 모두에서 포맷 가능한 File System이다.
  • 둘째, 비교적 간단하게 Linux에서 Mount시킬 수 있다.
  • 셋째, Windows에서도 대부분 바로 인식 가능하다.

단점으로는 암호화 (encryption)가 불가능하는 점을 들고 싶다.

exFAT in Debian GNU/Linux

기본적으로 exFAT 형식으로 포맷된 외장하드를 Linux에서 인식시키기 위해서는 exfat-fuseexfat-utils 이 필요하다. Bash shell(Konsole/Terminal)을 열어 아래를 실행해서 설치한다.

$ sudo apt-get install exfat-fuse exfat-utils

이제 외장하드를 (수동으로) Mount 시켜보자.

  • 먼저 exFAT 형식으로 포맷된 외장하드를 USB 포트에 꽂는다.
  • 적당한 이름의 directory/media/ 아래에 만든다. 여기서는 exfatEXT 라 하겠다.
    $ sudo mkdir /media/exfatEXT
    
  • 외장하드 정보를 fdisk 명령어로 확인한다.
    $ sudo fdisk -l
    

    아래 그림은 /dev/sdb1exFAT 으로 포맷한 2 TB 외장하드가 물려있는 모습이다.

27921493245_85005ab5d8_b.jpg

  • 아래의 명령어로 외장하드를 /media/exfatEXT 에 Mount 시킨다.
    $ sudo mount /dev/sdb1 /media/exfatEXT
    

    여기서 /dev/sdb1 는 본인의 환경에 따라 달라질 수 있음에 유의하자. /dev/sdc1 일 수도 있고 /dev/sdb2 일 수도 있다. fdisk 명령으로 어디에 외장하드가 물려있는 지 확인하자.

이제 Dolphin이나 Thunar 같은 파일 탐색기에서 외장하드에 접근할 수 있다.

그럼 매번 수동으로 Mount 시켜야 하는가? 물론 그렇지는 않다.

Automount exFAT external HDD

아래 기술할 방법은 꼭 exFAT 형식에만 적용되는 방법이 아니라 일반적인 모든 외장하드 (external HDD)를 자동으로 Mount 시키는 방법이다. 몇 가지 방법들이 존재하지만, 여기서는 fstab 파일을 수정하는 것으로 Automount를 구현하려 한다.

  • 먼저, 아래 명령어를 Bash shell(Konsole/Terminal)에서 실행해 외장하드의 UUID 정보를 확인하자.
    $ sudo blkid
    

    아래는 /dev/sdb1 에 물려있는 외장하드의 UUID가 5573-0AEE 인 모습이다.

27887358666_ef38e9a021_b.jpg

  • 적당한 editor로 /etc/fstab 파일을 열어 아래를 적어 넣자.
    UUID=5573-0AEE   /media/exfatEXT   exfat   auto,rw,user   0   0
    

    위의 /media/exfatEXT 는 이전에 기술한 Mount Point를 다시 적은 것이고 exfat 은 외장하드의 포맷 형식이며, auto,rw,user 는 읽기/쓰기 가능으로(rw) 부팅 시 자동으로 Mount하라(auto)는 의미이다. 더 자세한 사항은 여기를 참고하자. 1

이제 부팅 시 외장하드가 자동으로 Mount되어 있음을 확인할 수 있을 것이다.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Created: 2016-06-26 Sun 23:41

Emacs 24.3.1 (Org mode 8.2.10)

No comments:

Post a Comment