NTFS
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
NTFS는 마이크로소프트가 개발한 파일 시스템으로, 윈도우 NT 운영 체제와 함께 발전해 왔다. 1980년대 마이크로소프트와 IBM의 공동 프로젝트에서 시작되었으며, HPFS의 개념을 계승하여 윈도우 NT에 도입되었다. NTFS는 다양한 버전으로 출시되었으며, 각 버전마다 새로운 기능과 개선 사항이 추가되었다. 주요 특징으로는 복구 능력, 보안성, 대용량 지원, 긴 파일 이름 지원, POSIX 지원, 대체 데이터 스트림(ADS) 등이 있다. NTFS는 윈도우에서 표준 파일 시스템으로 사용되지만, 파일 이름 길이, 볼륨 크기, 데이터 스트림 관리 등 몇 가지 제한 사항이 존재한다. ReFS는 NTFS의 차세대 파일 시스템으로, 데이터 무결성, 가용성, 확장성 등을 개선했지만, NTFS를 완전히 대체하지는 않는다.
1980년대 중반, 마이크로소프트와 IBM은 차세대 그래픽 운영 체제 개발을 위한 공동 프로젝트를 시작했다. 이 프로젝트의 결과물은 OS/2였지만, 두 회사는 여러 중요한 문제에서 합의에 이르지 못하고 결국 결별했다. OS/2는 IBM의 프로젝트로 남았고, 마이크로소프트는 윈도우 NT 개발에 착수했다.[130]
2. 역사
OS/2 파일 시스템인 HPFS는 여러 중요한 신기능을 포함하고 있었다. 마이크로소프트는 새로운 운영 체제를 만들면서 이러한 개념들 중 다수를 NTFS에 도입했다.[130] HPFS와 NTFS는 동일한 디스크 파티션 식별 유형 코드(07)를 사용하는데, 이는 여러 코드를 사용할 수 있는 상황에서 흔치 않은 일이다. 다른 주요 파일 시스템들은 자체 코드를 가지고 있으며, FAT는 9개 이상 (FAT12, FAT16, FAT32 등)을 가지고 있다. 파티션 유형 07의 파일 시스템을 식별하는 알고리즘은 추가적인 검사를 수행해야 한다. NTFS 개발에는 톰 밀러, 게리 키무라, 브라이언 앤드루, 데이빗 고벨 등이 참여했다.[131]
2. 1. 버전
NTFS는 다음의 5가지 버전을 가지고 있다.
| NTFS 버전 번호 | 최초 운영 체제 | 출시일 | 새로운 기능 | 비고 |
|---|---|---|---|---|
| 1.0 | 윈도우 NT 3.1 | 1993[13] | 초기 버전 | NTFS 1.0은 1.1 이상 버전과 호환되지 않는다. 윈도우 NT 3.5x에서 쓰여진 볼륨은 업데이트(NT 3.5x 설치 미디어에서 제공)가 설치되기 전까지 윈도우 NT 3.1에서 읽을 수 없다.[18] |
| 1.1 | 윈도우 NT 3.5 | 1994 | 명명된 스트림과 접근 제어 목록[19] | NTFS 압축 지원은 윈도우 NT 3.51에 추가되었다. |
| 1.2 | 윈도우 NT 4.0 | 1996 | 보안 설명자 | 운영 체제 출시 이후 일반적으로 NTFS 4.0으로 불린다. |
| 3.0 | 윈도우 2000 | 2000 | 디스크 할당량, Encrypting File System 형태의 파일 수준 암호화, 스파스 파일, 재분석 지점, 업데이트 시퀀스 번호(USN) 저널링, 분산 링크 추적, $Extend 폴더 및 해당 파일 | 서비스 팩 4 업데이트로 윈도우 NT 4.0에 대한 호환성도 제공되었다. 운영 체제 출시 이후 일반적으로 NTFS 5.0으로 불린다.[20] |
| 3.1 | 윈도우 XP | 2001년 10월 | 마스터 파일 테이블 (MFT) 항목을 중복 MFT 레코드 번호로 확장 (손상된 MFT 파일 복구에 유용) | 운영 체제 출시 이후 일반적으로 NTFS 5.1로 불린다. LFS 버전 1.1은 성능 향상을 위해 윈도우 8부터 버전 2.0으로 대체되었다. |
NTFS.sys 버전 번호 (예: 윈도우 2000의 v5.0)는 운영 체제 버전을 기반으로 하며, NTFS 버전 번호 (윈도우 XP 이후 v3.1)와 혼동해서는 안 된다.[21][22]
이후 버전의 윈도우에서 새로운 파일 시스템 관련 기능이 추가되었지만, NTFS 자체는 변경되지 않았다. 예를 들어, 윈도우 비스타는 NTFS 심볼릭 링크, 트랜잭션 NTFS, 파티션 축소 및 자체 복구를 구현했다.[23] NTFS 심볼릭 링크는 파일 시스템의 새로운 기능이며, 나머지 기능은 이미 존재하는 NTFS 기능을 사용하는 새로운 운영 체제 기능이다.
2. 2. 호환성
NTFS는 여러 버전을 거쳐 발전해 왔지만, 대부분 서로 호환된다. 즉, 새로운 버전의 윈도우에서는 이전 버전 NTFS를 읽고 쓸 수 있고, 그 반대도 대체로 가능하다. 하지만 구형 윈도우에서 최신 NTFS 볼륨을 사용하려면 몇 가지 주의할 점이 있다.- 윈도우 NT 4.0: NTFS 3.x (윈도우 2000, XP 등에 사용) 볼륨을 사용하려면 서비스 팩 4 이상을 설치해야 한다.[20]
- 윈도우 2000 이후: 이전 버전 NTFS에 접근하면 자동으로 최신 버전으로 변환된다.
다른 운영 체제에서도 NTFS를 지원하는 경우가 많다.
- 리눅스:
- 커널 2.1.74 이상에서는 NTFS 읽기가 가능하다.[36]
- 커널 2.5.11 이상에서는 파일 읽기를 지원하는 새 드라이버가 포함되었다.[37][38]
- 커널 2.6.15 (2006년)에서는 파일 쓰기 기능이 도입되었으나, 새 파일 생성은 불가능하다.[39]
- 커널 5.15 이상에서는 Paragon의 NTFS 드라이버가 병합되어 읽기/쓰기를 지원하고 저널 재생도 지원한다.[40]
- NTFS-3G는 FUSE를 이용해 NTFS 읽기/쓰기를 지원하며, macOS, FreeBSD 등 다양한 운영 체제에서 사용할 수 있다.[41][42]
- Captive NTFS는 윈도우 드라이버를 사용하는 방식이었으나 2006년 이후 개발이 중단되었다.[44]
- FreeBSD: 1999년 5월 출시된 3.2 버전부터 읽기 전용 NTFS를 지원한다.[32][35]
- NetBSD: 2000년 12월 출시된 1.5 버전부터 읽기 전용 NTFS를 지원한다.[33]
- OpenBSD: i386 및 amd64 플랫폼에서 기본적으로 읽기 전용 NTFS를 지원한다. [34][35]
- macOS:
- Mac OS X 10.3부터 읽기 전용 NTFS를 지원한다.[45]
- Mac OS X 10.6 이상에서는 NTFS 쓰기 지원이 포함되었지만 기본적으로 활성화되지 않았고, 불안정하다는 보고가 있다.[46]
- Paragon Software Group에서 읽기-쓰기 드라이버를 판매하며,[47] 일부 시게이트 하드 드라이브에 포함되어 있다.[48]
- OS/2, eComStation, ArcaOS: NetDrive 플러그인을 통해 NTFS 읽기/쓰기를 지원한다.[49][50]
- MS-DOS: Avira에서 개인용으로 읽기/쓰기 드라이버를 제공한다.[51][52]
- DR-DOS: Ahead Software에서 2002~2004년에 읽기 드라이버를 개발했다.
다만, 다른 운영 체제에서는 NTFS의 모든 기능을 완벽하게 지원하지 않을 수 있다. 예를 들어, 윈도우의 "이전 버전" 기능을 지원하지 않는 운영 체제에서 NTFS 파티션을 사용하면 이전 버전의 내용이 손실될 수 있다.[29]
3. 특징
NTFS는 다음과 같은 특징을 가지고 있다.
- '''복구성''': 시스템 오류나 디스크 손상이 발생했을 때 트랜잭션 처리 모델을 사용하여 파일 시스템 변경을 원자적 행위(atomic action)로 처리, 데이터의 일관성을 유지하고 복구한다. 중요 파일 시스템 데이터는 중복 저장하여 디스크 섹터 손상으로 인한 데이터 손실을 방지한다.[110]
- '''보안성''': 윈도우 NT 객체 모델을 기반으로 파일 보안 속성을 관리한다.[110]
- '''대용량 지원''': 이론상 264-1 클러스터까지 지원 가능하지만, 실제로는 컴퓨터 성능에 따라 제한된다. 권장 최대 크기는 2 TiB이다.[110]
- '''검색 속도 향상''': B+ 트리를 사용하여 파일을 관리하므로 대량의 파일이 있어도 빠른 검색 및 접근이 가능하다.[110]
- '''긴 파일 이름 지원''': MS-DOS의 8.3 형식(파일 이름 8 바이트 + 확장자 3바이트) 제한 없이 유니코드를 사용하여 최대 255자까지 파일 이름을 지정할 수 있다. 점(.)도 파일 이름의 일부로 사용 가능하다.[110]
- '''POSIX 지원''': 미국 정부의 컴퓨터 납품 조건으로 인해 POSIX.1 사양 환경을 제공한다. 대소문자 구분, 접근 권한, 하드 링크, 타임스탬프 지원이 포함된다.[110]
- '''대체 데이터 스트림(ADS)''': 하나의 디렉터리 항목에 여러 데이터 스트림을 연결할 수 있다. Macintosh의 HFS+ 멀티 포크와 유사하며, 파일 개요 정보 및 접근 제어 목록 등에 사용된다.[110]
3. 1. 대용량 지원
NTFS는 4 KB 클러스터에 최적화되어 있지만, 최대 클러스터 크기는 2 MB까지 지원한다.[24] 규격상 NTFS 볼륨의 최대 크기는 264 - 1 클러스터이지만, 모든 구현이 이 이론적 최대치를 달성하는 것은 아니다.Windows XP Professional에서 구현된 NTFS의 최대 볼륨 크기는 232 - 1 클러스터이다. 예를 들어 64 KB 클러스터를 사용하면 Windows XP NTFS 볼륨의 최대 크기는 256 TB에서 64 KB를 뺀 값이다. 기본 클러스터 크기인 4 KB를 사용하면 NTFS 볼륨의 최대 크기는 16 TB에서 4 KB를 뺀 값이다. 마스터 부트 레코드(MBR)의 파티션 크기는 512바이트 물리 섹터를 가진 하드 드라이브의 경우 2 TiB로 제한된다.[25][26] 대안은 여러 개의 GUID 파티션 테이블(GPT) 볼륨을 사용하여 2 TiB보다 큰 단일 NTFS 볼륨을 만드는 것이다. Microsoft에서 지원하는 방식으로 GPT 볼륨에서 Windows 환경으로 부팅하려면 통합 확장 펌웨어 인터페이스(UEFI) 및 64비트 지원 시스템이 필요하다.[27]
NTFS에서 개별 파일의 최대 이론적 크기는 16 EB[28] (16 × 10246 바이트)에서 1 KB를 뺀 값이다. Windows 10 버전 1709 및 Windows Server 2019에서는 최대 ''구현된'' 파일 크기가 8 PB에서 2 MB를 뺀 값이다.[24]
3. 2. 검색 속도 향상
파일 관리는 B+ 트리로 수행되며, 대량의 파일이 존재하더라도 검색 및 접근 속도 저하가 적다.[110]3. 3. 긴 파일 이름
MS-DOS의 "파일 이름 8 바이트 + 확장자 3바이트"(8.3 형식)에서 파일 이름과 확장자에 구애받지 않고, 유니코드로 최대 255자의 파일 이름을 지정할 수 있게 되었다(점(.)도 파일 이름의 일부가 되었다).[110]3. 4. POSIX 지원
NTFS는 POSIX.1 사양의 환경을 제공한다. 여기에는 파일 이름과 디렉터리 이름의 대소문자 구분, 접근 권한, 하드 링크, 호환 가능한 타임스탬프 지원이 포함된다.[110] 이는 미국 정부의 컴퓨터 납품 조건으로 POSIX 지원이 필수 조항이었기 때문이다.[110]3. 5. 대체 데이터 스트림 (ADS)
대체 데이터 스트림(ADS)을 사용하면 "filename:streamname" 형식(예: "text.txt:extrastream")을 사용하여 둘 이상의 데이터 스트림을 파일 이름(fork)에 연결할 수 있다.[62] 이러한 스트림은 기본적으로 Windows에 내장된 일반적인 GUI 응용 프로그램을 통해 사용자에게 표시되거나 편집할 수 없으므로, 대부분의 사용자에게는 그 존재가 숨겨져 있다. 유용한 메타데이터를 위한 것이었지만, 난해한 특성으로 인해 악성 코드, 스파이웨어, 보이지 않는 브라우저 기록 및 기타 잠재적으로 원치 않는 정보를 숨길 수 있는 잠재적 장소가 된다.대체 스트림은 Windows 탐색기에 나열되지 않으며, 그 크기는 파일 크기에 포함되지 않는다. ADS를 지원하지 않는 다른 파일 시스템으로 파일을 복사하거나 이동하면 대체 데이터 스트림을 보존할 수 없다는 경고가 사용자에게 표시된다. 파일이 이메일에 첨부되거나 웹사이트에 업로드된 경우에는 일반적으로 이러한 경고가 제공되지 않는다. 따라서 중요한 데이터에 대체 스트림을 사용하는 것은 문제가 될 수 있다. Microsoft는 선택한 볼륨에서 스트림을 볼 수 있는 Streams라는 다운로드 가능한 도구를 제공한다. Windows PowerShell 3.0부터는 Add-Content, Clear-Content, Get-Content, Get-Item, Remove-Item, Set-Content의 6개 cmdlet을 사용하여 ADS를 기본적으로 관리할 수 있다.[63]
`Zone.Identifier`라는 작은 ADS는 Internet Explorer와 대부분의 브라우저에서 외부 사이트에서 다운로드한 파일을 실행하기에 안전하지 않을 수 있음을 표시하기 위해 추가된다. 그러면 로컬 셸은 파일을 열기 전에 사용자 확인을 요구한다.[64] 사용자가 더 이상 이 확인 대화 상자를 원하지 않는다고 표시하면 이 ADS가 삭제된다. 이 기능은 "''웹 표시''"라고도 한다.[65][66] 소스 코드를 깊이 수정하지 않으면 모든 크로미움(예: 구글 크롬) 및 Firefox 기반 웹 브라우저도 다운로드한 파일에 `Zone.Identifier` 스트림을 기록한다. Windows 10부터 `Zone.Identifer` 스트림의 내용은 INI 파일(키-값 저장소)과 유사하게 구조화되어 있으며, `HostIpAddress`, `HostUrl` 및 `ReferrerUrl` 키가 포함되어 있다. 어느 정도까지는 이러한 필드는 구현에 따라 정의되지만, 일반적으로 원래 온라인 다운로드 위치의 도메인 이름과 정확한 URL을 포함하여 잠재적으로 개인 정보 보호 위험과 함께 브라우징 기록을 추적하는 매우 난해한 방법을 제공한다.[67] 다운로드한 파일이 실행 파일(예: 설치 프로그램)인 경우 `Zone` ADS를 리플렉션에 사용하여 프로그램이 다운로드된 위치를 식별할 수 있으며, 이는 때때로 프로그램이 공식 소스에서 다운로드되었는지 확인하려고 시도할 수 있는 telemetry 및/또는 보안 목적으로 사용될 수 있다(스트림이 제거되거나 spoof되지 않은 경우). 또한 인터넷을 통해 정보를 다시 전송할 수 있다(이의 예는 BiglyBT의 설치 프로그램에서 볼 수 있다).
악성 코드는 대체 데이터 스트림을 사용하여 코드를 숨겨왔다.[68] 2000년대 후반부터 일부 맬웨어 검사기 및 기타 특수 도구는 대체 데이터 스트림을 확인한다. ADS와 관련된 위험, 특히 개인 정보 보호 및 `Zone.Identifier` 스트림과 관련하여 사용하기 쉬운 방식으로 파일에서 스트림(인식된 위험이 있는 특정 스트림 또는 모든 스트림)을 제거하도록 특별히 설계된 소프트웨어가 있다.[69]
NTFS 스트림은 Windows NT 3.1에 도입되어 Services for Macintosh(SFM)가 resource fork를 저장할 수 있게 했다. 현재 버전의 Windows Server는 더 이상 SFM을 포함하지 않지만, 타사 Apple Filing Protocol(AFP) 제품(예: GroupLogic의 ExtremeZ-IP)은 여전히 파일 시스템의 이 기능을 사용한다.
3. 6. 견고성 및 보안
NTFS는 시스템 고장이나 디스크 손상으로부터 데이터를 복구하고 보호하는 다양한 기능을 제공한다.- 복구성: NTFS는 시스템 고장과 디스크 손상을 복구하는 능력을 갖추고 있다. 파일 시스템 변경 시 트랜잭션 처리 모델을 적용하여 각 단계를 원자적 행위(atomic action)로 처리한다. 이를 통해 손상 발생 시 처리 중이던 트랜잭션을 완료하거나 파기하여 데이터 일관성을 유지한다. 또한, 중요한 파일 시스템 데이터를 중복 저장하여 디스크 섹터 손상으로 인한 데이터 손실을 방지한다.
- 보안성: NTFS는 윈도우 NT 객체 모델을 기반으로 보안을 제공한다. 파일을 열면 해당 파일은 보안 서술자를 가진 파일 객체로 구현되어 파일의 보안 속성을 관리한다. 접근 제어 목록(ACL)과 사용자 수준 암호화를 사용하여 사용자 데이터를 보호한다.
3. 6. 1. 견고성 향상
NTFS는 저널링 파일 시스템으로, 갑작스러운 정전 등의 장애 발생 시 트랜잭션 로그를 통해 실행된 처리를 롤백하여 파일 시스템의 불일치를 방지한다.[56] 이는 볼륨에 대한 메타데이터 변경 사항을 기록하는 NTFS 로그를 사용하기 때문이다. 시스템 충돌이나 조각 모음 API에 의해 수행된 데이터 이동 시에도 NTFS가 복잡한 내부 데이터 구조의 일관성을 유지하고, 볼륨을 다시 마운트할 때 중요한 데이터 구조에 대한 커밋되지 않은 변경 사항을 쉽게 롤백할 수 있도록 돕는다.[56]3. 6. 2. 내고장성
NTFS는 하드 디스크 내의 불량 섹터를 동적으로 인식한다. 이후 해당 섹터를 포함하는 클러스터에 대한 접근을 다른 클러스터로 대체한다. 중복성이 있는 동적 볼륨 또는 저장소 공간을 사용하지 않는 경우, 불량 섹터에 있던 데이터는 복구되지 않는다.3. 6. 3. 보안 향상
파일 및 디렉터리별로 ACL을 통한 접근 권한 설정을 지원한다. 또한 파일 접근 감시 설정을 통해 어떤 사용자가 어떤 파일에 접근했는지 등의 내역을 기록할 수 있다.[53]
NTFS에서 각 파일 또는 폴더에는 소유자가 정의되고 두 개의 접근 제어 목록(ACL)이 포함된 보안 설명자가 할당된다. 첫 번째 ACL인 임의 접근 제어 목록(DACL)은 어떤 유형의 상호 작용(예: 읽기, 쓰기, 실행 또는 삭제)이 어떤 사용자 또는 사용자 그룹에 의해 허용되거나 금지되는지를 정확하게 정의한다. 예를 들어 `C:\Program Files` 폴더의 파일은 모든 사용자가 읽고 실행할 수 있지만 관리자 권한을 가진 사용자만 수정할 수 있다.[53]
두 번째 ACL인 시스템 접근 제어 목록(SACL)은 파일 또는 폴더와의 어떤 상호 작용을 감사할 것인지, 그리고 활동이 성공했는지, 실패했는지 또는 둘 다인지 여부에 따라 기록해야 하는지 여부를 정의한다. 예를 들어, 회사의 민감한 파일에 대한 감사를 활성화하여 관리자가 누군가가 파일을 삭제하거나 복사하려고 시도할 때와 그 성공 여부를 알 수 있게 할 수 있다.[53]
3. 6. 4. 디스크 할당량
Windows 2000 이후의 NTFS는 사용자별 디스크 사용량 상한을 설정할 수 있다. Windows Server 2003 R2부터는 디렉터리별 디스크 사용량 상한도 설정할 수 있게 되었다.[111]3. 6. 5. 암호화
암호화 파일 시스템(EFS)은 NTFS 볼륨 상의 파일과 폴더에 대한 투명한 암호화를 지원한다.[54] 이는 압축 기능과 함께 구현되며, 암호화된 파일과 폴더는 항상 압축된다. 암호화를 이용할 경우, 본인의 인증서를 분실하면 시스템 관리자를 포함하여 아무도 영구적으로 접근할 수 없게 된다.[54]EFS는 EFS 서비스, 마이크로소프트의 CryptoAPI, EFS 파일 시스템 런타임 라이브러리(FSRTL)와 함께 작동한다. EFS는 대량의 대칭 키 (파일 암호화 키 또는 FEK라고도 함)로 파일을 암호화하는데, 이는 비대칭 키 암호를 사용하는 것보다 대량의 데이터를 암호화하고 해독하는 데 걸리는 시간이 적기 때문이다. 파일을 암호화하는 데 사용되는 대칭 키는 파일을 암호화한 사용자와 관련된 공개 키로 암호화되며, 이 암호화된 데이터는 암호화된 파일의 대체 데이터 스트림에 저장된다. 파일을 해독하기 위해 파일 시스템은 사용자의 개인 키를 사용하여 데이터 스트림에 저장된 대칭 키를 해독한다. 그런 다음 이 대칭 키를 사용하여 파일을 해독한다. 이는 파일 시스템 수준에서 수행되므로 사용자에게는 투명하게 진행된다.[55]
EFS 지원은 Windows Basic, Home, MediaCenter 버전에서는 사용할 수 없으며, Professional, Ultimate, Server 버전의 Windows를 설치한 후 또는 Windows 도메인 내에서 엔터프라이즈 배포 도구를 사용하여 활성화해야 한다.
3. 6. 6. 스냅샷
윈도우 XP 및 윈도우 서버 2003 이후 볼륨 섀도 복사 서비스(VSS)를 통해 스냅샷 기능을 제공한다.[111] NTBackup, 백업 및 복원과 같은 윈도우에 포함된 백업 유틸리티는 VSS를 이용하여 특정 시점의 볼륨 상태를 정확하게 백업할 수 있다. 윈도우 서버 2003 서비스 팩 1 이후 윈도우에서는 Chkdsk에 VSS를 이용하여 정확한 검사를 수행할 수 있으며, 원래라면 복구가 불필요한 볼륨을 오프라인으로 만들지 않아도 된다.[112] 또한, 윈도우 서버 2003 및 윈도우 비스타에서는 VSS를 통해 파일의 세대별 저장을 실현한다.[113][114]3. 6. 7. 변경 저널
USN 저널(업데이트 시퀀스 번호 저널)은 볼륨의 파일, 스트림 및 디렉터리의 변경 사항과 해당 속성 및 보안 설정을 기록하는 시스템 관리 기능이다. 이 저널은 애플리케이션이 볼륨에 대한 변경 사항을 추적할 수 있도록 제공된다.[57] 이 저널은 시스템 볼륨이 아닌 볼륨에서 활성화하거나 비활성화할 수 있다.[58]3. 7. 용량 효율 향상
NTFS는 디스크 공간 효율성을 높이기 위해 다음과 같은 방법을 사용한다.- 파일 압축: 폴더나 파일별로 '압축' 속성을 설정하면, LZ77의 변형인 LZNT1 알고리즘을 사용하여 파일이 자동으로 압축된다.[70] 이 기능은 반복적인 내용이 많고, 자주 쓰이지 않으며, 순차적으로 접근하는 파일에 적합하다.
- 스파스 파일: 파일 내부에 0으로 채워진 영역이 많은 경우, 해당 영역을 실제로 저장하지 않고 메타데이터로만 관리하여 공간을 절약한다.
- 작은 파일의 MFT 내 저장: 약 900바이트보다 작은 파일은 MFT의 디렉터리 항목 내에 저장되어, 별도의 할당 단위를 사용하지 않고 빠르게 접근할 수 있다.[72]
마이크로소프트 NTFS 개발팀 연구에 따르면, 4KB 클러스터 크기의 NTFS 볼륨에서 압축된 파일의 적절한 최대 크기는 50~60GB이다.[74] 또한, 파일 수가 적지만 큰 파일을 저장할 때는 최대 2048KiB의 할당 단위 크기를 선택하여 조각화 문제를 해결할 수 있다.
3. 7. 1. 파일 압축
NTFS는 윈도우 NT 3.51부터 파일 압축을 지원한다. LZ77의 변형인 LZNT1 알고리즘을 사용하여 파일 단위의 투명한 압축을 지원하며, 디스크의 여유 공간을 늘릴 수 있다.[70] 압축 알고리즘은 최대 4KB의 클러스터 크기를 지원하도록 설계되어, NTFS 볼륨의 클러스터 크기가 4KB보다 크면 NTFS 압축을 사용할 수 없다.[71]데이터는 16클러스터 청크(최대 64KB 크기)로 압축된다. 압축으로 인해 64KB의 데이터가 60KB 이하로 줄어들면 NTFS는 불필요한 4KB 페이지를 비어 있는 스파스 파일 클러스터처럼 처리하여 기록하지 않는다. 이를 통해 OS가 단편의 체인을 따라가기만 하면 되므로 합리적인 임의 액세스 시간을 얻을 수 있다.
압축은 반복적인 내용이 있고, 거의 쓰이지 않으며, 일반적으로 순차적으로 액세스되며, 자체적으로 압축되지 않은 파일에 가장 적합하다. 제한된 하드 디스크 공간을 가진 단일 사용자 시스템은 압축 가능성에 따라 4KB에서 64KB 이상에 이르는 소규모 파일에 대해 NTFS 압축의 이점을 얻을 수 있다. 약 900 바이트보다 작은 파일은 MFT의 디렉터리 항목 내에 저장된다.[72]
다중 코어 프로세서를 사용하는 사용자는 애플리케이션과 데이터를 압축하여 애플리케이션 속도가 향상될 뿐만 아니라 사용 공간도 줄어드는 것을 확인할 수 있다. SSD 컨트롤러가 이미 데이터를 압축하더라도 전송되는 데이터가 줄어들어 I/O가 감소한다.[73]
3. 7. 2. 스파스 파일

희소 파일은 실제 저장 공간을 사용하지 않는 빈 세그먼트가 섞여 있는 파일이다. 애플리케이션에서 보면 파일은 0으로 채워진 영역으로 보이는 빈 영역이 있는 일반 파일처럼 보이며, 파일 시스템은 각 희소 파일에 대해 이러한 영역의 내부 목록을 유지한다.[86] '희소 파일' 속성은 파일이 이러한 영역을 가질 수 있다는 의미일 뿐, 반드시 희소 0 영역을 포함하는 것은 아니다.
파일의 일부가 0으로 채워져 있는 경우, 클러스터 단위로 0으로 채워진 영역을 건너뛰어 디스크 용량을 절약한다. 이는 데이터베이스의 해시 테이블 파일이나 가상 머신의 가상 하드 디스크 파일 등 대부분이 0으로 채워져 있는 파일에서 효율적으로 작동한다.
3. 7. 3. 작은 파일의 MFT 내 저장
NTFS는 작은 파일을 파일 메타데이터와 함께 MFT 내에 수용하는 기능이 있다. 이는 할당 단위를 할당하지 않음으로써 약간의 용량상 이점을 얻고, 사용자 데이터 읽기에 메타데이터와 별도의 I/O를 필요로 하지 않아 속도상의 이점도 있다.[115]3. 7. 4. 시스템 압축 (CompactOS)
Windows 10부터 마이크로소프트는 4K/8K/16K 블록 크기의 XPRESS 알고리즘[77]과 LZX 알고리즘을 기반으로 한 새로운 파일 압축 방식을 도입했다.[78] 이 압축 알고리즘은 Windows 이미징 형식 (WIM 파일)에서 가져온 것이다.새로운 압축 방식은 Windows 시스템 파일을 압축하여 디스크 사용량을 줄이는 CompactOS 기능에서 사용된다.[79] CompactOS는 NTFS 파일 압축의 확장 기능이 아니며 '압축됨' 속성을 사용하지 않는다. 대신, WOF (Windows 오버레이 필터) 태그가 있는 각 압축된 파일에 재분석 지점을 설정하지만,[80] 실제 데이터는 "WofCompressedData"라는 대체 데이터 스트림에 저장되며, WOF 파일 시스템 필터 드라이버에 의해 즉시 압축 해제되고, 주요 파일은 비어 있는 스파스 파일이다.[80] 이 설계는 순전히 읽기 전용 액세스를 위한 것이므로 압축된 파일에 대한 모든 쓰기는 자동 압축 해제를 초래한다.[80][81][82]
CompactOS 압축은 OEM이 Windows ADK에서 DISM 도구의 `/compact` 플래그를 사용하여 OS 이미지를 준비하는 데 사용되도록 설계되었지만,[83] `compact` 명령의 `/exe` 플래그를 사용하여 파일별로 수동으로 켤 수도 있다.[84]
CompactOS 파일 압축은 Windows 8.1에 도입된 WIMBoot 기능의 개선된 버전이다. WIMBoot는 시스템 파일을 별도의 숨겨진 디스크 파티션의 압축된 WIM 이미지에 보관하여 Windows 디스크 사용량을 줄인다.[85] CompactOS와 유사하게, Windows 시스템 디렉토리에는 WOF 태그가 있는 재분석 지점으로 표시된 스파스 파일만 포함되어 있으며, Windows 오버레이 필터 드라이버는 WIM 이미지에서 즉시 파일 내용을 압축 해제한다. 그러나 WIMBoot는 시스템 파일의 새 업데이트된 버전을 시스템 파티션에 기록해야 하여 디스크 공간을 소비하므로 CompactOS보다 덜 효과적이다.[80]
3. 8. 하드 링크 및 심볼릭 링크
하드 링크는 서로 다른 파일 이름이 동일한 파일 내용을 직접 참조할 수 있게 하는 기능이다. 하드 링크는 각 볼륨에 자체적인 MFT가 있기 때문에 동일한 볼륨의 파일에만 링크될 수 있다.[59]하드 링크는 파일 크기, 수정 날짜 및 속성과 같은 파일 메타데이터를 기록하는 동일한 MFT 레코드(inode)를 사용하지만, NTFS는 성능 향상을 위해 이 데이터를 디렉토리 항목에도 캐시한다. 즉, FindFirstFile/FindNextFile API (POSIX opendir/readdir API와 동일)를 사용하여 디렉토리 내용을 나열할 때 이름과 inode 외에도 이 캐시된 정보도 받게 된다. 그러나 이 정보는 파일이 닫힐 때, 그리고 해당 파일이 열린 디렉토리에 대해서만 업데이트가 보장되므로 최신 정보를 보지 못할 수도 있다.[60] 하드 링크를 통해 파일에 여러 이름이 있는 경우, 한 이름을 통해 파일을 업데이트해도 다른 이름과 관련된 캐시된 데이터는 업데이트되지 않는다. GetFileInformationByHandle을 사용하면 항상 최신 데이터를 얻을 수 있다(POSIX stat 함수와 동일). 이 작업은 파일 자체에 접근 권한이 없는 핸들을 사용하여 수행할 수 있으며(CreateFile에 dwDesiredAccess에 0 전달), 이 핸들을 닫으면 캐시된 정보가 업데이트되는 효과가 있다.
Windows는 NTFS에서 짧은 (8.3) 파일 이름을 지원하기 위해 하드 링크를 사용한다. 레거시 응용 프로그램은 8.3 파일 이름으로만 작동할 수 있으므로 운영 체제 지원이 필요하지만, 이 지원은 비활성화할 수 있다. 이 경우 추가 파일 이름 레코드와 디렉토리 항목이 추가되지만, 일반 하드 링크와 달리 8.3 파일 이름과 긴 파일 이름 모두 링크되고 함께 업데이트된다.
NTFS 파일 시스템은 파일당 1024개의 하드 링크로 제한된다.[61]
4. 내부 구조
NTFS는 내부적으로 B-트리를 사용하여 파일 시스템 데이터를 인덱싱한다. 저널링 파일 시스템을 사용하여 파일 시스템 메타데이터의 무결성을 보장하지만, 개별 파일의 내용은 보장하지 않는다. NTFS를 사용하는 시스템은 FAT 파일 시스템에 비해 향상된 안정성을 제공한다.[93]
NTFS는 파일 이름, 스트림 이름, 인덱스 이름 등 이름 인코딩에 0x0000을 제외한 16비트 값의 모든 시퀀스를 허용한다. UTF-16 코드 유닛이 지원되지만, 파일 시스템은 시퀀스가 유효한 UTF-16인지 확인하지 않으며, short 값의 모든 시퀀스를 허용한다. Win32 네임스페이스에서는 모든 UTF-16 코드 유닛이 대소문자를 구분하지 않지만, POSIX 네임스페이스에서는 대소문자를 구분한다. 파일 이름은 255개의 UTF-16 코드 유닛으로 제한된다.
볼륨 루트 디렉터리에는 $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (점), $Bitmap, $Boot, $BadClus, $Secure, $UpCase, $Extend와 같은 특정 이름이 예약되어 있어 파일에 사용할 수 없다.[5] 이 중 . (점)과 $Extend는 디렉터리이고, 나머지는 파일이다. NT 커널은 전체 경로를 32,767개의 UTF-16 코드 유닛으로 제한하며, 코드 포인트 및 파일 이름에 대한 몇 가지 추가 제한 사항이 있다.[94]
모든 파일, 디렉터리 및 메타파일 데이터(파일 이름, 생성 날짜, 접근 제어 목록을 사용한 접근 권한, 크기)는 마스터 파일 테이블(MFT)에 메타데이터로 저장된다.[93] 이러한 방식은 윈도우 NT 개발 과정에서 Active Directory 및 Windows Search에서 사용되는 인덱싱을 위한 필드 추가와 같은 파일 시스템 기능 추가를 용이하게 했다. 또한, MFT에 포함된 이름이 지정된 로컬 파일과 폴더는 다른 인덱스 없이도 빠른 파일 검색 소프트웨어에서 매우 빠르게 찾을 수 있게 한다.[93]
4. 1. 파티션 부트 섹터 (PBS)
NTFS 볼륨의 첫 번째 섹터는 파티션 부트 섹터(PBS)로, 부트스트랩 코드와 파일 시스템 정보를 담고 있다. 여기에는 BPB(BIOS Parameter Block)와 EBPB(Extended BIOS Parameter Block)가 포함된다.[134]
이 부트 파티션 형식은 이전 FAT 파일 시스템을 기반으로 하지만 필드 위치가 다르다. "트랙당 섹터 수", "헤드 수", "숨겨진 섹터" 필드 중 일부는 의미가 없거나 결정할 수 없는 드라이브에 더미 값을 포함할 수 있다.
OS는 0x30의 8 바이트를 확인하여 $MFT의 클러스터 번호를 찾은 다음, 해당 숫자에 클러스터당 섹터 수(0x0D에서 찾은 1 바이트)를 곱한다. 이 값은 $MFT의 섹터 오프셋(LBA)이다.
4. 2. 메타 파일
NTFS는 파일 시스템을 정의하고 구성하는 여러 파일을 포함하고 있다. 이 파일들은 대부분 사용자 파일과 유사한 구조를 가지고 있지만, 파일 시스템 클라이언트에게 직접적인 관련은 없다.[100] 이러한 메타파일들은 파일을 정의하고, 중요한 파일 시스템 데이터를 백업하며, 파일 시스템 변경 사항을 버퍼링하고, 사용 가능한 공간 할당을 관리하며, BIOS의 기대치를 충족시키고, 불량 할당 단위를 추적하며, 보안 및 디스크 공간 사용 정보를 저장한다.| 세그먼트 번호 | 파일 이름 | 목적 |
|---|---|---|
| 0 | $MFT | 파일 이름, 타임스탬프, 스트림 이름, 데이터 스트림, 인덱스, 보안 식별자, 파일 속성 (읽기 전용, 압축, 암호화 등)을 포함하여 볼륨의 모든 파일을 설명한다. |
| 1 | $MFTMirr | $MFT의 첫 번째 핵심 항목의 복제본이다. |
| 2 | $LogFile | 파일 시스템 메타데이터 변경의 트랜잭션 로그를 포함한다. |
| 3 | $Volume | 볼륨 정보 (볼륨 개체 식별자, 볼륨 레이블, 파일 시스템 버전, 볼륨 플래그)를 포함한다. |
| 4 | $AttrDef | 숫자 식별자를 이름과 연결하는 MFT 속성 테이블이다. |
| 5 | . | 루트 디렉터리이다. |
| 6 | $Bitmap | 비트 항목 배열로, 각 비트는 해당 클러스터가 사용 중인지 또는 비어 있는지를 나타낸다. |
| 7 | $Boot | 볼륨 부트 레코드(VBR)이다. 부트스트랩 코드와 BIOS 매개변수 블록이 포함되어 있다. |
| 8 | $BadClus | 불량 섹터로 표시된 모든 클러스터가 포함된 파일이다. |
| 9 | $Secure | 액세스 제어 목록 데이터베이스이다.[19] |
| 10 | $UpCase | Win32 및 DOS 네임스페이스에서 대소문자를 구분하지 않도록 하는 유니코드 대문자 테이블이다. |
| 11 | $Extend | 다양한 선택적 확장을 포함하는 파일 시스템 디렉터리이다. |
| 12–23 | $MFT 확장 항목용으로 예약되어 있다. | |
| 24 | $Extend\$Quota | 디스크 할당량 정보를 보관한다. |
| 25 | $Extend\$ObjId | 링크 추적 정보를 보관한다. |
| 26 | $Extend\$Reparse | 재분석 지점 데이터 (예: 심볼릭 링크)를 보관한다. |
| 27– | 일반 파일 항목의 시작이다. | |
4. 3. 마스터 파일 테이블 (MFT)
내부적으로 NTFS는 B-트리를 사용하여 파일 시스템 데이터를 인덱싱한다. 모든 파일, 디렉터리 및 메타파일 데이터(파일 이름, 생성 날짜, 접근 권한 (접근 제어 목록 사용), 크기)는 '''마스터 파일 테이블''' ('''MFT''')에 메타데이터로 저장된다.[93] 이러한 접근 방식은 윈도우 NT 개발 과정에서 파일 시스템 기능 추가를 용이하게 했다. 예를 들어, Active Directory 및 Windows Search에서 사용되는 인덱싱을 위한 필드가 추가되었다. 또한, MFT에 포함된 이름이 지정된 로컬 파일과 폴더는 다른 인덱스 없이도 빠른 파일 검색 소프트웨어에서 매우 빠르게 찾을 수 있게 한다.[93]MFT 구조는 디스크 단편화를 최소화하는 알고리즘을 지원한다.[97] 디렉토리 항목은 파일 이름과 "파일 ID" (inode 번호와 유사)로 구성되며, 이는 마스터 파일 테이블에서 파일을 나타내는 레코드 번호이다. 파일 ID에는 오래된 참조를 감지하기 위한 재사용 횟수도 포함되어 있다.[93] MFT의 부분 복사본인 MFT 미러는 손상 시 사용하기 위해 저장된다.[98] MFT의 첫 번째 레코드가 손상된 경우, NTFS는 두 번째 레코드를 읽어 MFT 미러 파일을 찾는다. 두 파일의 위치는 부트 섹터에 저장된다.[99]
각 파일(또는 디렉터리)에 대해 MFT 레코드에 설명된 스트림 설명자(이를 ''속성''이라고도 함)의 선형 저장소가 있으며, 하나 이상의 MFT 레코드(소위 ''속성 목록'' 포함)에 함께 묶여 있으며, 모든 MFT 레코드의 고정된 1KB 크기를 채우기 위한 추가 패딩과 해당 파일과 관련된 유효 스트림을 완전히 설명한다.
각 속성은 속성 유형(파일의 속성 정의에 매핑되는 고정 크기 정수), 선택적 속성 이름(예: 대체 데이터 스트림의 이름으로 사용됨) 및 일련의 바이트로 표현되는 값을 갖는다. NTFS의 경우, 파일의 표준 데이터, 대체 데이터 스트림 또는 디렉터리의 인덱스 데이터가 속성으로 저장된다.
에 따르면 일부 속성은 상주형 또는 비상주형일 수 있다. 파일 데이터를 포함하는 속성이 그러한 예이다. 속성이 상주형인 경우(플래그로 표시됨), 해당 값은 MFT 레코드에 직접 저장된다. 그렇지 않은 경우, 데이터에 대한 클러스터가 할당되고 클러스터 위치 정보가 속성에 데이터 실행으로 저장된다.
MFT의 각 파일에 대해 ''속성 유형, 속성 이름''으로 식별되는 속성은 고유해야 하며, NTFS에는 이러한 속성에 대한 몇 가지 정렬 제약 조건이 있다.
- 미리 정의된 null 속성 유형이 있으며, 이는 하나의 MFT 레코드에서 속성 목록의 끝을 나타내는 데 사용되며, 레코드의 마지막 속성으로 존재해야 한다(그 뒤에 사용 가능한 모든 다른 저장 공간은 무시되며 MFT의 레코드 크기에 맞게 패딩 바이트로 구성된다).
- 일부 속성 유형은 필수이며 각 MFT 레코드에 존재해야 한다. 단, null 속성 유형으로 표시된 사용되지 않은 레코드는 예외이다.
- 이는 고정 크기 레코드로 저장되며 타임스탬프 및 기타 기본 단일 비트 속성(DOS 또는 윈도우 9x의 FAT에서 관리되는 속성과 호환)을 포함하는 속성의 경우이다.
- 일부 속성 유형은 이름을 가질 수 없으며 익명으로 유지되어야 한다.
- 이는 표준 속성 또는 선호하는 NTFS "파일 이름" 속성 유형 또는 "짧은 파일 이름" 속성 유형(DOS와 유사한 응용 프로그램과의 호환성을 위해)의 경우이다. 파일에 짧은 파일 이름만 포함될 수도 있으며, 이 경우 Windows 탐색기에 나열된 선호하는 파일 이름이 된다.
- 속성 목록에 저장된 파일 이름 속성은 계층적 파일 시스템을 통해 파일에 즉시 액세스할 수 있도록 하지 않는다. 실제로 모든 파일 이름은 동일한 볼륨의 다른 디렉터리에서 별도로 인덱싱되어야 한다. 거기에는 자체 MFT 레코드와 이 파일에 대한 MFT 레코드 번호를 참조하는 자체 보안 설명자 및 속성이 있어야 한다. 이를 통해 동일한 파일 또는 디렉터리를 동일한 볼륨의 여러 컨테이너에서 여러 번 "하드 링크"할 수 있으며, 파일 이름이 다를 수 있다.
- 일반 파일의 기본 데이터 스트림은 유형의 스트림이지만 이름이 익명이며, ADS도 유사하지만 이름을 지정해야 한다.
- 반면에 디렉터리의 기본 데이터 스트림은 고유한 유형을 갖지만 익명은 아니다. 인덱싱 형식을 반영하는 속성 이름("NTFS 3+에서 ")이 있다.
지정된 파일의 모든 속성은 Microsoft "OEM 지원 도구"의 일부로 자유롭게 배포되는 nfi.exe("NTFS 파일 섹터 정보 유틸리티")를 사용하여 표시할 수 있다.[101]
NTFS는 매우 작은 관련 값을 가진 속성의 저장 공간을 최적화하고 I/O 오버헤드를 줄이기 위해, 데이터를 포함하는 클러스터를 나열하기 위해 MFT 레코드 공간을 사용하는 대신 (속성의 크기가 MFT 레코드의 최대 크기를 초과하지 않는 경우) 속성 자체 내에 값을 배치하는 것을 선호한다.[102] 이 경우 속성은 데이터를 직접 저장하지 않고, 볼륨의 다른 곳에 저장된 실제 데이터를 가리키는 할당 맵(데이터 런 형태)만 저장한다.[102] 값이 속성 내에서 직접 액세스할 수 있을 때, 이는 ("컴퓨터 포렌식" 작업자에 의해) "상주 데이터"라고 한다. 들어맞는 데이터의 양은 파일의 특성에 따라 크게 다르지만, 길이가 길지 않은 파일 이름과 ACL이 없는 단일 스트림 파일의 경우 700~800바이트가 일반적이다.
- 일부 속성(선호하는 파일 이름, 기본 파일 속성 등)은 비상주형으로 만들 수 없다. 비상주 속성의 경우 할당 맵은 MFT 레코드 내에 맞아야 한다.
- NTFS로 암호화된, 희소 데이터 스트림 또는 압축된 데이터 스트림은 상주형으로 만들 수 없다.
- 비상주 속성의 할당 맵 형식은 희소 데이터 저장을 지원하는 기능에 따라 달라진다. 현재 NTFS 구현에서는 비상주 데이터 스트림이 희소로 표시되고 변환되면, 해당 데이터를 완전히 잘라내고 희소 할당 맵을 완전히 폐기하지 않는 한, 비희소 데이터로 다시 변경할 수 없으므로 다시 상주형이 될 수 없다.
- 비상주 속성이 너무 조각화되어 해당 유효 할당 맵이 하나의 MFT 레코드 내에 완전히 맞을 수 없는 경우, NTFS는 여러 레코드에 속성을 저장한다. 그중 첫 번째 레코드는 기본 레코드라고 하고, 나머지는 확장 레코드라고 한다. NTFS는 긴 속성의 다른 부분을 MFT 레코드에 매핑하는 정보를 저장하기 위해 특수 속성을 생성하는데, 이는 할당 맵이 여러 레코드로 분할될 수 있음을 의미한다. 자체도 비상주형일 수 있지만, 자체 할당 맵은 하나의 MFT 레코드 내에 맞아야 한다.
- 파일에 너무 많은 속성(ADS, 확장 속성 또는 보안 설명자 포함)이 있어 모든 속성을 MFT 레코드 내에 맞출 수 없는 경우, 확장 레코드는 기본 MFT 레코드에 사용된 것과 동일한 형식을 사용하여 다른 속성을 저장하는 데에도 사용될 수 있지만, 하나의 MFT 레코드의 공간 제약은 없다.
할당 맵은 압축 인코딩을 사용하여 ''데이터 런'' 형태로 저장된다. 각 데이터 런은 속성 값을 저장하는 인접한 클러스터 그룹을 나타낸다. 여러 GB 볼륨의 파일의 경우, 각 항목은 5~7바이트로 인코딩될 수 있으며, 이는 MFT 레코드가 약 100개의 데이터 런을 저장할 수 있음을 의미한다. 그러나 도 크기 제한이 있으므로 NTFS 볼륨에 단일 파일의 100만 개 이상의 조각이 있는 것은 위험하며, 이는 일반적으로 보다 큰 파일에 NTFS 압축을 사용하는 것은 좋은 생각이 아님을 의미한다.[103]
NTFS 파일 시스템 드라이버는 때때로 비상주형으로 만들 수 있는 일부 속성의 데이터를 클러스터로 재배치하려고 시도하고, 우선 순위와 선호하는 정렬 규칙 및 크기 제약 조건에 따라 클러스터에 저장된 데이터를 MFT 레코드 내부의 속성으로 다시 재배치하려고 시도한다.
상주 파일은 클러스터("할당 단위")를 직접 차지하지 않으므로, NTFS 볼륨은 클러스터보다 더 많은 파일을 볼륨에 포함할 수 있다. 예를 들어, 파티션은 의 19,543,064개 클러스터로 NTFS 형식을 지정한다. 시스템 파일( 로그 파일, 2,442,888 바이트 비트맵 파일 및 약 25개의 고정 오버헤드 클러스터)을 빼면 파일 및 인덱스에 사용할 수 있는 19,526,158개의 클러스터가 남는다. 클러스터당 4개의 MFT 레코드가 있으므로, 이 볼륨은 이론적으로 거의 4 × 19,526,158 = 78,104,632개의 상주 파일을 보관할 수 있다.
5. 제한
파일 이름은 UTF-16 코드 워드로 최대 255자까지 가능하다. $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (점), $Bitmap, $Boot, $BadClus, $Secure, $Upcase, $Extend와 같은 특정 이름은 볼륨 루트 디렉터리에 예약되어 있어 파일 이름으로 사용할 수 없다.[129] NT 커널은 전체 경로를 32,767 UTF-16 코드 워드로 제한한다.
이론적으로 최대 NTFS 볼륨 크기는 264−1 클러스터이다. 그러나 윈도우 XP 프로페셔널에서는 232−1 클러스터로 제한된다. 예를 들어 클러스터를 사용하면 최대 윈도우 XP NTFS 볼륨 크기는 - 이다. 기본 클러스터 크기()를 사용하면 최대 NTFS 볼륨 크기는 - 가 된다. 이는 윈도우 XP 서비스팩 1에서 제한되었던 128G보다 큰 값이다. (MBR) 디스크의 파티션 테이블은 최대 파티션 크기를 지원하므로, 이상의 NTFS 볼륨을 만들려면 (GPT) 볼륨을 사용해야 한다. GPT 볼륨에서 윈도우를 시작하려면 (EFI)를 채용한 시스템과 64비트 지원이 필요하다.[135]
이론적인 최대 NTFS 파일 크기는 16E - 이지만, 실제 최대 NTFS 파일 크기는 - 이다.
윈도우 시스템 호출은 대체 데이터 스트림을 관리할 수 있지만,[129] 운영 체제, 유틸리티, 원격 파일 시스템, 파일 전송에 따라 데이터 스트림이 제거될 수 있다.[129] 파일을 안전하게 복사하고 이동하려면 BackupRead 및 BackupWrite 호출을 사용해야 한다.[129]
윈도우 NT 기반 운영 체제는 이 파일 시스템을 사용한다. 다른 운영 체제와의 파일 전송을 위해 플래시 드라이브나 외장 하드 드라이브는 FAT32로 포맷하는 것이 권장된다.
2017년부터 마이크로소프트는 OneDrive 파일 구조가 NTFS 디스크에 있어야 한다고 요구한다.[91]
6. ReFS
ReFS는 마이크로소프트가 윈도우 서버 2012에서 도입한 차세대 파일 시스템이다. ReFS는 NTFS의 일부 결점을 해소하고 데이터 무결성, 가용성, 확장성 등을 개선했다.[1] 하지만, ReFS가 NTFS의 완전한 대체재는 아니다.[1]
참조
[1]
논문
Using NTFS Cluster Allocation Behavior to Find the Location of User Data
2019-07-01
[2]
웹사이트
How NTFS Works
https://technet.micr[...]
Microsoft
2009-10-08
[3]
웹사이트
B*Trees - NTFS Directory Trees - Concept - NTFS Documentation
https://flatcap.org/[...]
2019-05-13
[4]
웹사이트
Appendix A: Product Behavior
https://learn.micros[...]
Microsoft
2013-11-14
[5]
웹사이트
How NTFS Works
https://technet.micr[...]
2003-03-28
[6]
웹사이트
NTFS Documentation
http://dubeyko.com/d[...]
[7]
웹사이트
SYSTEMTIME structure (minwinbase.h)
https://learn.micros[...]
Microsoft
2021-10-05
[8]
웹사이트
Windows Server 8 data deduplication
https://www.techrepu[...]
2011-09-14
[9]
간행물
The New Technology File System
https://link.springe[...]
Springer
2007
[10]
웹사이트
What Is NTFS and How Does It Work?
https://www.datto.co[...]
2022-08-01
[11]
웹사이트
Glossary
https://learn.micros[...]
Microsoft
2013-11-14
[12]
웹사이트
New Technology File System - an overview {{!}} ScienceDirect Topics
https://www.scienced[...]
[13]
서적
Inside the Windows NT File System
https://archive.org/[...]
Microsoft Press
[14]
웹사이트
NTFS3 — The Linux Kernel documentation
https://www.kernel.o[...]
[15]
웹사이트
ntfs-3g
https://www.freebsd.[...]
[16]
웹사이트
Overview and History of NTFS
https://www.karlstec[...]
The PC Guide
2018-02-14
[17]
서적
Inside the Windows NT File System
https://archive.org/[...]
Microsoft Press
[18]
웹사이트
Recovering Windows NT After a Boot Failure on an NTFS Drive
http://support.micro[...]
Microsoft
2006-11-01
[19]
웹사이트
Inside Win2K NTFS, Part 1
https://learn.micros[...]
Microsoft
2006-06-30
[20]
웹사이트
What's New in Windows NT 4.0 Service Pack 4?
http://www.microsoft[...]
1999-01-12
[21]
웹사이트
New Capabilities and Features of the NTFS 3.1 File System
http://support.micro[...]
Microsoft
2007-12-01
[22]
웹사이트
NTFS Overview
https://www.ntfs.com[...]
LSoft Technologies Inc.
[23]
웹사이트
Storage improvements in Windows Vista and Windows Server 2008
http://download.micr[...]
Microsoft
[24]
웹사이트
Appendix A: Product Behavior
https://learn.micros[...]
Microsoft
2018-09-12
[25]
웹사이트
Windows support for hard disks that are larger than 2 TB
https://learn.micros[...]
2013-06-26
[26]
웹사이트
Default cluster size for NTFS, FAT, and exFAT
https://support.micr[...]
[27]
웹사이트
Booting from GPT
http://www.rodsbooks[...]
[28]
웹사이트
NTFS vs FAT vs exFAT - NTFS.com
https://www.ntfs.com[...]
[29]
웹사이트
How restore points and other recovery features in Windows Vista are affected when dual-booting with Windows XP
http://blogs.technet[...]
2006-07-14
[30]
웹사이트
How to Convert FAT Disks to NTFS
https://www.karlstec[...]
Microsoft
2017-12-18
[31]
웹사이트
FAQ: How to use Convert.exe to convert a partition to the NTFS file system
https://www.eduhk.hk[...]
2007-02-12
[32]
웹사이트
FreeBSD 3.2 Release Notes
https://www.freebsd.[...]
1999-05-17
[33]
웹사이트
Announcing NetBSD 1.5
https://www.netbsd.o[...]
2000-12-06
[34]
웹사이트
OpenBSD 4.9
http://openbsd.com/4[...]
[35]
웹사이트
mount_ntfs - OpenBSD manual pages
https://man.openbsd.[...]
[36]
웹사이트
NTFS Credits and History
https://flatcap.org/[...]
2021-09-24
[37]
웹사이트
Kernel development
https://lwn.net/2002[...]
2021-09-05
[38]
웹사이트
Release notes for v2.5.11
https://cdn.kernel.o[...]
2021-09-05
[39]
웹사이트
2.6.15 changelog
https://kernelnewbie[...]
2021-09-05
[40]
웹사이트
GitHub merges 'useless garbage' says Linus Torvalds as new NTFS support added to Linux kernel 5.15
https://www.theregis[...]
2021-09-07
[41]
웹사이트
OpenBSD adds fuse(4) support for adding file systems in userland
http://undeadly.org/[...]
OpenBSD Journal
2013-11-08
[42]
웹사이트
NTFS-3G Stable Read/Write Driver
http://www.ntfs-3g.o[...]
2009-07-25
[43]
웹사이트
Tuxera NTFS for Mac
http://www.tuxera.co[...]
Tuxera
2011-09-20
[44]
웹사이트
Jan Kratochvil: Captive: The first free NTFS read/write filesystem for GNU/Linux
http://www.jankratoc[...]
2020-06-15
[45]
웹사이트
About Tuxera
https://www.tuxera.c[...]
2020-06-15
[46]
웹사이트
10.6: Enable native NTFS read/write support
http://hints.macworl[...]
2021-09-05
[47]
웹사이트
Microsoft NTFS for Mac
https://www.paragon-[...]
Paragon Software Group
2024-08-08
[48]
웹사이트
The Leader in Mass Data Storage Solutions | Seagate US
http://www.seagate.c[...]
[49]
웹사이트
NTFS plugin for NetDrive
https://ecsoft2.org/[...]
2020-09-09
[50]
웹사이트
NetDrive for OS/2
https://www.arcanoae[...]
2020-09-09
[51]
웹사이트
Avira NTFS4DOS Personal
http://www.free-av.c[...]
2009-07-25
[52]
웹사이트
Download Avira NTFS4DOS Personal 1.9
http://www.softpedia[...]
2018-09-22
[53]
웹사이트
How Security Descriptors and Access Control Lists Work
https://technet.micr[...]
Microsoft
2015-09-04
[54]
웹사이트
Security Watch Deploying EFS: Part 1
https://technet.micr[...]
Microsoft
2009-01-25
[55]
웹사이트
How EFS Works
https://technet.micr[...]
Microsoft
2014-02-25
[56]
웹사이트
Windows 8 volume compatibility considerations with prior versions of Windows
https://learn.micros[...]
2024-08-08
[57]
웹사이트
Change Journals
https://learn.micros[...]
Microsoft Docs
2023-08-12
[58]
웹사이트
Creating, Modifying, and Deleting a Change Journal (Windows)
https://learn.micros[...]
Microsoft Docs
2023-08-12
[59]
웹사이트
Chapter 29 – POSIX Compatibility
https://technet.micr[...]
Microsoft
2013-10-21
[60]
웹사이트
Hard Links and Junctions
http://msdn.microsof[...]
Microsoft
2013-10-12
[61]
웹사이트
MSDN – CreateHardLink function
https://msdn.microso[...]
2016-01-14
[62]
웹사이트
Streams - Sysinternals
https://learn.micros[...]
2023-08-12
[63]
웹사이트
FileSystem Provider
https://technet.micr[...]
Microsoft
2012-08-09
[64]
서적
Windows Internals
Microsoft Press
[65]
웹사이트
Malformed signature trick can bypass Mark of the Web
https://www.malwareb[...]
2022-10-26
[66]
웹사이트
Macros from the internet are blocked by default in Office - Deploy Office
https://learn.micros[...]
2023-02-28
[67]
문서
https://learn.micros[...]
[68]
웹사이트
Malware utilising Alternate Data Streams?
https://www.auscert.[...]
2007-08-21
[69]
Github
https://github.com/f[...]
[70]
웹사이트
File Compression and Decompression
http://msdn.microsof[...]
MSDN Platform SDK: File Systems
2005-08-18
[71]
웹사이트
The Default Cluster Size for the NTFS and FAT File Systems
http://support.micro[...]
Microsoft
2012-01-10
[72]
웹사이트
How NTFS Works
https://technet.micr[...]
2011-10-24
[73]
웹사이트
Should You Compress Data On Your SSD?
http://www.tomshardw[...]
Bestofmedia Group
2013-04-05
[74]
웹사이트
Understanding NTFS Compression
https://web.archive.[...]
Microsoft
2011-03-16
[75]
웹사이트
Shrinking the gap: carving NTFS-compressed files
https://www.forensic[...]
2011-05-29
[76]
웹사이트
Disk Concepts and Troubleshooting
https://technet.micr[...]
Microsoft
2012-03-26
[77]
웹사이트
'[MS-XCA]: Xpress Compression Algorithm'
https://learn.micros[...]
2023-01-31
[78]
웹사이트
wimlib: the open source Windows Imaging (WIM) library - Compression algorithm
https://wimlib.net/c[...]
[79]
웹사이트
Compact OS, single-instancing, and image optimization
https://learn.micros[...]
Microsoft
2019-10-01
[80]
웹사이트
What is WofCompressedData? Does WOF mean that Windows is a dog?
https://devblogs.mic[...]
2019-06-18
[81]
웹사이트
NTFS-3G plugin for reading "system compressed" files
https://github.com/e[...]
2019-04-29
[82]
웹사이트
'Re: [ntfs-3g-devel] Experimental support for Windows 10 "System Compressed" files'
https://sourceforge.[...]
2019-10-01
[83]
웹사이트
DISM Overview
https://learn.micros[...]
2021-12-15
[84]
웹사이트
Compact
https://learn.micros[...]
2023-02-03
[85]
웹사이트
Windows Image File Boot (WIMBoot) Overview
https://learn.micros[...]
2015-03-10
[86]
웹사이트
Sparse Files
http://msdn.microsof[...]
Microsoft
2013-10-12
[87]
웹사이트
Sparse File Errors: 1450 or 665 due to file fragmentation: Fixes and Workarounds
https://web.archive.[...]
Microsoft
2009-03-04
[88]
웹사이트
Sparse Files and Disk Quotas
http://msdn.microsof[...]
Microsoft
2013-10-12
[89]
웹사이트
Transactional NTFS
https://web.archive.[...]
Microsoft
2007-02-02
[90]
웹사이트
Transactional NTFS (TxF)
https://learn.micros[...]
Microsoft
2023-08-12
[91]
웹사이트
Unable to open content synced in a OneDrive folder on an external drive
https://support.micr[...]
2021-04-03
[92]
웹사이트
NTFS-3G: Junction Points, Symbolic Links and Reparse Points
https://web.archive.[...]
2019-03-01
[93]
웹사이트
Chapter 18 – Choosing a File System
https://technet.micr[...]
Microsoft
2014-02-25
[94]
웹사이트
Naming Files, Paths, and Namespaces
http://msdn.microsof[...]
Microsoft
2014-02-25
[95]
웹사이트
NTFS. Partition Boot Sector
http://www.ntfs.com/[...]
2018-09-22
[96]
웹사이트
Boot Sector
https://technet.micr[...]
2018-09-22
[97]
웹사이트
Master File Table
http://msdn.microsof[...]
MSDN
2012-07-02
[98]
웹사이트
Forensics: What is the MFT Mirror?
https://whereismydat[...]
2021-07-30
[99]
웹사이트
NTFS Master File Table (MFT)
http://ntfs.com/ntfs[...]
2018-09-22
[100]
웹사이트
COEN 252 Computer Forensics NTFS
https://web.archive.[...]
Faculty of Organization and Informatics University of Zagreb
2019-05-30
[101]
웹사이트
OEM Support Tools Phase 3 Service Release 2 Availability
http://support.micro[...]
Microsoft Corporation
2010-06-16
[102]
웹사이트
The Four Stages of NTFS File Growth
https://web.archive.[...]
2018-09-22
[103]
웹사이트
A heavily fragmented file in an NTFS volume may not grow beyond a certain size
https://support.micr[...]
2021-05-19
[104]
웹사이트
How Oplocks function in the Windows Environment: Overview
https://web.archive.[...]
2018-12-19
[105]
웹사이트
What's New in NTFS
https://technet.micr[...]
2018-09-22
[106]
웹사이트
Beating the Daylight Saving Time bug and getting correct file modification times
https://www.codeproj[...]
2001-05-28
[107]
문서
'[MS-FSA]: File System Algorithms 6 Appendix A: Product Behavior'
http://msdn.microsof[...]
[108]
웹사이트
'[MS-FSA]: Appendix A: Product Behavior'
https://msdn.microso[...]
Microsoft
2018-09-12
[109]
Github
https://github.com/e[...]
[110]
문서
512バイト/セクタかつ1セクタ/クラスタ、つまり512バイト/クラスタのとき、8 ZiB - 512 Bytes。
[111]
웹사이트
Volume Shadow Copy Service (Windows)
http://msdn.microsof[...]
마이크로소프트
2011-03-10
[112]
웹사이트
実行中の Chkdsk を強制終了する場合、アプリケーションイベントログに VSS エラー 12294 が記録されることがある
http://support.micro[...]
マイクロソフト
2006-09-22
[113]
웹사이트
ストレージの管理に関する新機能
http://www.microsoft[...]
マイクロソフト
2002-09-03
[114]
웹사이트
Windows Vista とのデータ整合性を維持するための選択されたシナリオ
http://technet.micro[...]
マイクロソフト
[115]
문서
A heavily fragmented file in an NTFS volume may not grow beyond a certain size
http://support.micro[...]
[116]
문서
Windows Server 2012のサーバーマネージャーの新しいボリュームウィザード上に「非推奨」と表記されている
[117]
웹사이트
Chkdsk
http://technet.micro[...]
マイクロソフト
2007-09
[118]
문서
chkdsk の刷新と新しい NTFS 正常性モデルの追加
http://blogs.msdn.co[...]
[119]
웹사이트
'[CHKNTFS.EXE] CHKNTFS.EXE の使用方法'
http://support.micro[...]
マイクロソフト
2005-06-10
[120]
문서
https://atmarkit.itm[...]
[121]
문서
http://support.micro[...]
[122]
웹사이트
File System Functionality Comparison
https://msdn.microso[...]
[123]
웹사이트
NTFS-3G at Tuxera
http://www.tuxera.co[...]
Tuxera
[124]
문서
Captive NTFS
http://www.jankratoc[...]
[125]
문서
NTFS for Windows98
http://www.sysintern[...]
[126]
웹인용
Windows XP: Format backup drives using NTFS
http://www.microsoft[...]
Microsoft
2011-10-04
[127]
웹인용
Inside Win2K NTFS, Part 1
http://msdn2.microso[...]
MSDN
2008-04-18
[128]
웹인용
NTFS Documentation
http://dubeyko.com/d[...]
2011-06-26
[129]
웹인용
How NTFS Works
http://technet.micro[...]
2011-09-12
[130]
웹인용
Overview and History of NTFS
http://www.pcguide.c[...]
PCGuide
2001-04-17
[131]
서적
Inside the Windows NT File System
https://archive.org/[...]
Microsoft Press
[132]
웹인용
Recovering Windows NT After a Boot Failure on an NTFS Drive
http://support.micro[...]
Microsoft
2006-11-01
[133]
웹인용
Inside Win2K NTFS, Part 1
http://msdn.microsof[...]
Microsoft
2011-01-26
[134]
문서
NTFS Partition Boot Sector
http://www.ntfs.com/[...]
[135]
문서
http://www.rodsbooks[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com