NTFS

New Technology File System

1 개요

마이크로소프트 OS인 윈도우즈파일 시스템이다. MS-DOS와 이전 버전의 윈도에서 쓰인 마이크로소프트의 이전 FAT 파일 시스템을 개선하여 만든 새로운 파일 시스템이다. FAT시스템에 비해 몇 가지 개선사항이 있는데, 메타데이터의 지원, 고급 데이터 구조의 사용으로 인한 성능 개선, 신뢰성, 추가 확장 기능을 더한 디스크 공간 활용을 들 수 있다.

2 역사

처음 나올 당시엔 매우 획기적인 파일 시스템이었으나, 21세기 들어 오픈소스 진영이 폭발적으로 발달하면서 NTFS에 비교해도 전혀 떨어지지 않는 다양한 파일 시스템들이 선보이게 되었고, 그 파일 시스템계를 평정한 SUNZFS 까지 등장하면서 현재는 그냥 그럭저럭인 파일 시스템이 돼버렸다. MS에서는 뒤처지지 않기 위해 NTFS를 기반으로하는 ReFS를 준비중이다.MSDN의 ReFS 설명

처음으로 발표된 건 Windows NT 3.1이 발매된 1993년. 즉, Windows NT와 함께 탄생하였다. 현재 주로 쓰이는 NTFS인 3.1은 윈도 XP부터 사용되었으며, 이는 하위호환으로 Windows NT 3.51의 1.2 버전부터 사용할 수 있다. (3.50 이전과는 호환 안 됨)

3 기능과 제한

이 밖에도 파일 암호화라든지 수많은 기능을 가지고 있지만 역시 유저들에게 와닿는 기능은 파일용량 한계의 완화일 것이다. 특히 DVD의 보급으로 4GB가 넘는 ISO 파일을 FAT32에선 저장하질 못해[1], Windows 2000이 빠르게 소비자 시장에 퍼지게 된 원인이기도 하다.[2] 특히, 윈도 XP부터는 아예 하드나 이동식 디스크의 용량이 32GB가 넘으면 무조건 NTFS로 포맷하도록 해버리기 때문에, 구형 시스템에서 USB 메모리를 쓰기 위해 FAT32포맷하려면 서드파티 포맷 툴을 써야만 했다.

NTFS에도 약간의 제한이 있는데, 가장 큰 제한은 파일명 포함 최대 260자로 제한된 경로명. 사실, 이것은 NTFS 자체의 제한은 아니다. 원래 윈도의 NT커널은 32,767자까지 지원할 수 있다. 다만, Win32 API 의 MAX_PATH가 260자로 제한된 것이 문제. 아직도 Win32 API를 이용한 프로그램들이 상당히 많고, 더 웃픈 것은, MS Explorer(탐색기)에서 기본적인 복사 명령도 Win32 API를 사용하여 저런 제한에 딱 걸린다는 것이다(...)[3]

덕분에 MS Explorer 네트워크상에서 저런 제한이 없는 다른 OS나 다른 파일 시스템에서 NTFS로 자료를 복사할 때 파일경로 길이 제한 때문에 복사를 못한다는 메시지가 뜨는 경우가 있고, 이것을 NTFS 파일 시스템의 한계로 알고 있는 사람도 적지 않다. 다른 복사 프로그램을 사용하는 등 우회 방법이 있긴 한데, 많이 귀찮아서 좀 불편해도 그냥 260자 안으로 파일경로를 구성하는 사람들이 많다.[4]

또한, NTFS는 원래 2^64이므로 거의 무한대에 가까운 파티션 제한용량을 가지고 있지만 Windows XP 부터 현재까진 2의 32승인 256TB까지만 저장 가능하다. 거기다 논리 파티션 하나마다 16TB가 한계. MBR 레코드가 위치하는 부트파티션은 한계가 2TB까지 내려간다. 이 제한은 64비트 운영체제로 가야만 풀린다. 즉, 2TB보다 용량이 큰 보조기억장치32비트 운영체제에서는 하나의 파티션으로 쓸 수 없다! 하지만 파일 용량 제한은 32비트에서도 파티션 하나 꼭 채우는 16TB이므로 큰 문제는 아니다. 참고로, NTFS의 압축파티션 기능이 작동하려면 클러스터 용량은 반드시 4KB 이하가 되어야만 한다. 이보다 큰 클러스터는 압축기능을 지원하지 않는다.

NTFS 시스템에는 인덱싱 기능이 있는데 이를 적극적으로 활용하는 윈도 비스타 이후부터는 컴퓨터를 깔자마자 며칠 동안은 하드 데이터를 인덱싱하느라 컴퓨터가 좀 느릴 수도 있다. 하지만 일단 분석이 끝나면 XP보다 쾌적하게 이용할 수 있다는 평이 많은 편.

4 지원

더블스페이스(드라이브 스페이스)는 지원하지 않는다. 애초에 NTFS는 고유의 압축 기술이 있는데다가 Windows ME가 출시되기 전쯤부터 더블스페이스하드디스크의 대용량화로 이미 사양길을 걷고 있었다. 따라서 오늘날 더블스페이스는 사실상 사장된 유틸리티이므로 개의치 않아도 된다.

macOS에서는 읽기만 가능하다. 근데, 뒤져보면 애플에서 허락 안받고 슬쩍슬쩍 만든 NTFS 드라이버가 있다. 이를 이용하는게 Mounti 같은 것들. 물론 애플이 숨겨놓는 이유가 있어서[5] 불안정하다. 대신 NTFS-3G[6]나 이것의 상용판인 Tuxera, 패러곤 NTFS 같은 드라이버들이 있다. NTFS 외장 하드 쓸려면 차라리 후자를 쓰자.

5 FAT와의 차이점

  • FAT와 NTFS 모두 파일 이름을 따로 적는 구간을 가지고 있다. 하지만 FAT는 표 형태로 저장하고 NTFS는 B+ tree로 저장한다.
  • NTFS에는 저널링 파일 시스템이 있는데, 이것은 파일 시스템의 오류를 줄여주고 디스크 검사 속도를 높여주는 것으로, 파일을 기록하기 전에는 '어디에 데이터 기록 예정'이라는 데이터를, 그리고 파일 기록이 끝난 다음에 '데이터 기록 완료'라는 데이터를 기록하는 곳이다.
  1. 하필이면 DVD의 용량이 4GB를 조금 넘어가는 4.37GB다(싱글 레이어 기준).
  2. Windows NT 3.51은 Windows 9x 계열과 드라이버 호환성이 상당히 떨어지기 때문.
  3. 윈도우 8.1도 다를 바 없다.
  4. 과거 빌 게이츠의 "메모리는 640kb면 충분하다" 드립과 엮어서 "PATH 는 260자면 충분하다" 는 드립도 가끔 나온다.
  5. 물론, MS쪽과의 문제도 있지만...
  6. 일단 후자의 경우와 비교할때, 공짜이나 지원이 없고 삽을 꽤나 퍼야 한다.