NTFS

NTFS
신기술 파일 시스템[1]
개발자마이크로소프트
전체이름NT 파일 시스템[2]
소개했다1993년 7월, 30년 전(1993-07) Windows NT 3.1과 함께 사용
파티션 ID0x07 (MBR)
EVD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
구조물들
디렉토리 내용B-트리 변이체[3][4]
파일할당비트맵
불량 블럭$BadClus (MFT 레코드)
한계
최대 볼륨 크기 clusters 2개 - 클러스터 1개(형식);
256TB[a] - 64KB[a](Windows 10 버전 1703, Windows Server 2016 이전 구현)[5]
8PB[a] - 2MB[a](Windows 10 버전 1709, Windows Server 2019 이상 구현)[6]
최대 파일 크기16EB[a] - 1KB(형식);
16TB - 64KB(Windows 7, Windows Server 2008 R2 이전 구현)[5]
256TB - 64KB(Windows 8, Windows Server 2012 이상 구현)[7]
8PB - 2MB(Windows 10 버전 1709, Windows Server 2019 이상 구현)[6]
최대 파일 수4,294,967,295 (232−1)[5]
최대 파일 이름 길이UTF-16 코드 유닛[8] 255개
허용된 파일 이름
성격.
  • Win32 네임스페이스의 경우: UTF-16 코드 유닛(대소문자 구분 없음)/\:*"?<> NUL뿐[8] 아니라
  • POSIX 네임스페이스에서: 대소문자 구분을 제외한 모든 UTF-16 코드 유닛/NUL뿐만 아니라
특징들
기록한 날짜작성, 수정, POSIX 변경, 액세스
일자범위1601년 1월 1일 - 60056년 5월 28일(파일 시간은 1601년부터 100나노초 간격(초당 천만 개)을 세는 64비트 숫자이며, 이는 58,000년 이상)
날짜 해상도100 ns
포크예(아래 § 대체 데이터 스트림(ADS) 참조)
특성읽기 전용, 숨김, 시스템, 아카이브, 컨텐츠 인덱싱 안 함, 오프라인, 임시, 압축, 암호화
파일 시스템
허가.
ACL들
투명한
압축.
파일 단위, LZ77(Windows NT 3.51 이후)
투명한
암호화
파일 단위로,
DESX(윈도우즈 2000 이후),
트리플 DES(Windows XP 이후),
AES(Windows XP 서비스 팩 1, Windows Server 2003 이후)
데이터 중복제거예(윈도우즈 서버 2012)[9]
다른.
지원됨
운영 체제
윈도 NT 3.1 이상
Mac OS X 10.3 이상(읽기 전용)
리눅스 커널 버전 2.6 이상
리눅스 커널 버전 2.2-2.4(읽기 전용)
FreeBSD
NetBSD
OpenBSD(읽기 전용)
크롬OS
솔라리스
ReactOS(읽기 전용)

NTFS(New Technology File System)마이크로소프트가 개발한 독점 저널링 파일 시스템입니다.[2][1]윈도우 NT 3.1부터는 윈도우 NT 계열의[10] 기본 파일 시스템입니다.[11]Windows에서 선호하는 파일 시스템으로 FAT(File Allocation Table)를 대체했으며 LinuxBSD에서도 지원됩니다.NTFS 읽기 및 쓰기 지원은 Linux의 NTFS3 및 BSDNTFS-3G 드라이버로 알려진 무료 오픈 소스 커널 구현을 사용하여 제공됩니다.[12][13]명령어를 사용하면 Windows에서 모든 파일을 다시 쓸 필요 없이 FAT32/16/12를 NTFS로 변환할 수 있습니다.[14]NTFS는 일반적으로 사용자로부터 숨겨진 여러 파일을 사용하여 드라이브에 저장된 다른 파일에 대한 메타데이터를 저장하므로 데이터를 읽을 때 속도와 성능을 향상시킬 수 있습니다.[1]FAT 및 HPFS(High Performance File System)와 달리 NTFS는 ACL(Access Control List), 파일 시스템 암호화, 투명 압축, 희소 파일파일 시스템 저널링을 지원합니다.NTFS는 또한 시스템이 실행되는 동안 백업할 수 있도록 섀도 복사본을 지원하지만 섀도 복사본의 기능은 Windows 버전마다 다릅니다.[15]

역사

1980년대 중반, 마이크로소프트IBM은 차세대 그래픽 운영 체제를 만들기 위한 공동 프로젝트를 구성했습니다. 그 결과 OS/2HPFS가 탄생했습니다.마이크로소프트는 많은 중요한 문제에 대해 IBM과 의견이 일치하지 않았기 때문에 결국 분리되었습니다. OS/2는 IBM 프로젝트로 남아 있었고 마이크로소프트는 Windows NT 및 NTFS 개발을 위해 노력했습니다.

OS/2용 HPFS 파일 시스템에는 몇 가지 중요한 새로운 기능이 포함되어 있었습니다.마이크로소프트가 새로운 운영 체제를 만들 때, 그들은 NTFS를 위해 이러한 개념들을 많이 차용했습니다.[16]최초의 NTFS 개발자는 Tom Miller, Gary Kimura, Brian Andrew, 그리고 David Goebel이었습니다.[17]

아마도 이러한 공통 조상의 결과로 HPFS와 NTFS는 동일한 디스크 파티션 식별 유형 코드(07)를 사용합니다.사용하지 않은 수십 개의 코드 번호가 있고 다른 주요 파일 시스템에도 고유 코드가 있기 때문에 동일한 파티션 ID 레코드 번호를 사용하는 것은 매우 이례적입니다.예를 들어, FAT는 9개 이상(FAT12, FAT16, FAT32 등에 대해 각각 하나씩)을 가지고 있습니다.파티션 유형 07에서 파일 시스템을 식별하는 알고리즘은 HPFS와 NTFS를 구별하기 위해 추가적인 검사를 수행해야 합니다.

버전

마이크로소프트는 5가지 버전의 NTFS를 출시했습니다.

NTFS 버전 번호 퍼스트 운영 체제 출고일자 신기능 언급
1.0 윈도 NT 3.1 1993[11] 이니셜 버전 NTFS 1.0은 1.1 이상과 호환되지 않습니다. Windows NT 3.5x에서 작성된 볼륨은 업데이트(NT 3.5x 설치 미디어에서 사용 가능)를 설치할 때까지 Windows NT 3.1에서 읽을 수 없습니다.[18]
1.1 윈도우 NT 3.51 1995 압축 파일, 명명된 스트림 및 액세스 제어 목록[19]
1.2 윈도 NT 4.0 1996 보안 설명자 OS 릴리즈 이후 일반적으로 NTFS 4.0이라고 불림
3.0 윈도 2000 2000 디스크 할당량, 암호화 파일 시스템 형태의 파일 수준 암호화, 희소 파일, 재분석 지점, USN(Update Sequence Number) 저널링, 분산 링크 추적,$Extend폴더 및 폴더 파일 윈도우 NT 4.0과 서비스 팩 4 업데이트의 호환성도 확보되었습니다.일반적으로 OS 릴리즈 이후 NTFS 5.0이라고 불립니다.[20]
3.1 윈도 XP 2001년10월 중복 MFT 레코드 번호로 마스터 파일 테이블(MFT) 항목 확장(손상된 MFT 파일 복구에 유용) 일반적으로 OS 릴리즈 이후 NTFS 5.1이라고 불립니다.LFS 버전 1.1은 성능 향상을 위해 윈도우 8부터 버전 2.0으로 대체되었습니다.

NTFS.sys버전 번호(예: Windows 2000의 v5.0)는 운영 체제 버전을 기반으로 하므로 NTFS 버전 번호(Windows XP 이후의 v3.1)와 혼동해서는 안 됩니다.[21]

윈도우의 후속 버전은 새로운 파일 시스템 관련 기능을 추가했지만 NTFS 자체는 변경되지 않았습니다.예를 들어 Windows VistaNTFS 심볼릭 링크, Transactional NTFS, 파티션 축소 및 자가 복구를 구현했습니다.[22]NTFS 심볼릭 링크는 파일 시스템의 새로운 기능이며, 다른 모든 기능은 NTFS 기능을 이미 사용하는 새로운 운영 체제 기능입니다.

확장성

NTFS는 4KB[a] 클러스터에 최적화되어 있지만 최대 2MB[a] 클러스터 크기를 지원합니다. (이전 구현에서는 최대 64KB를 지원함)[6] 규격에서 지원할 수 있는 최대 NTFS 볼륨 크기64 2 - 1개의 클러스터이지만 아래에서 설명하는 바와 같이 모든 구현에서 이론적 최대치를 달성하는 것은 아닙니다.

Windows XP Professional에서 구현되는 최대 NTFS 볼륨 크기는 232 - 1개의 클러스터로, 파티션 테이블 제한으로 인해 부분적으로 발생합니다.예를 들어 64KB 클러스터를 사용할 경우 윈도우즈 XP NTFS 볼륨의 최대 크기는 256TB에서 64KB를 뺀 값입니다.기본 클러스터 크기인 4KB를 사용하면 최대 NTFS 볼륨 크기는 16TB에서 4KB를 뺀 값입니다.이 두 가지 모두 Windows XP SP1128GB[a] 제한보다 훨씬 높습니다.많은 BIOS 펌웨어에서 MBR(Master Boot Records) 파티션 크기를 512바이트의 물리적 섹터 크기를 가진 하드 드라이브의 경우 제한되는 2TiB로 제한하지만, 4KiB 물리적 섹터의 경우 MBR 파티션 크기 제한은 16TiB입니다.[23]다른 방법으로는 여러 GPT(GUID Partition Table) 볼륨을 사용하여 2TiB보다 큰 단일 NTFS 볼륨을 만드는 방법이 있습니다.마이크로소프트가 지원하는 방식으로 GPT 볼륨에서 윈도우즈 환경으로 부팅하려면 UEFI(Unified Extensible Firmware Interface) 및 64비트 지원이 있는 시스템이 필요합니다.[24]GPT 데이터 디스크는 BIOS가 있는 시스템에서 지원됩니다.

개별 파일 크기에 대한 NTFS 최대 이론적 제한은 16EB[a][25](16 × 10246 또는 2바이트64)에서 1KB를 뺀 값으로 총 18,446,744,073,709,550,592바이트입니다.Windows 10 버전 1709 및 Windows Server 2019의 경우 최대 구현 파일 크기는 8PB에서[a] 2MB 또는 9,007,199,252,643,840바이트입니다.[6]

상호운용성

창문들

여러 NTFS 버전이 대부분 완전한 순방향 및 역방향 호환성을 갖추고 있지만 이전 버전의 Microsoft Windows에 새로운 NTFS 볼륨을 탑재하는 데는 기술적인 고려 사항이 있습니다.이는 듀얼 부팅 및 외장 휴대용 하드 드라이브에 영향을 미칩니다.예를 들어, NTFS 파티션을 지원하지 않는 운영 체제에서 "이전 버전"(Volume Shadow Copy)과 함께 사용하려고 하면 해당 이전 버전의 콘텐츠가 손실됩니다.[15]convert.exe라는 윈도우즈 명령줄 유틸리티는 지원 파일 시스템을 HPFS(Windows NT 3.1, 3.5 및 3.51에만 해당), FAT16 및 FAT32(Windows 2000 이상에만 해당)를 비롯한 NTFS로 변환할 수 있습니다.[26][27]

FreeBSD

1999년 5월에 출시된 FreeBSD 3.2에는 Semen Ustimenko가 작성한 읽기 전용 NTFS 지원이 포함되어 있습니다.[28][29]이 구현은 NetB로 포팅되었습니다.Christos Zoulas와 Jaromir Dolecek의 SD이며 2000년 12월 NetBSD 1.5와 함께 출시되었습니다.[30]프리비NTFS의 SD 구현도 OpenB로 포팅되었습니다.Julien Bordet의 SD는 2011년 5월 1일 출시된 버전 4.9를 기준으로 i386 및 amd64 플랫폼에서 기본적으로 읽기 전용 NTFS 지원을 제공합니다.[31][29]

리눅스

리눅스 커널 버전 2.1.74 이상에는 NTFS 파티션을 읽을 수 있는 마르틴 폰 뢰위스(Martin von Löwis)가 작성한 드라이버가 포함되어 있으며,[32] 커널 버전 2.5.11 이상에는 파일 읽기를 지원하는 안톤 알타파르마코프(Cambridge 대학교)와 리처드 루슨(Richard Russon)이 작성한 새로운 드라이버가 포함되어 있습니다.[33][34][32]파일에 쓸 수 있는 기능은 2006년 커널 버전 2.6.15에서 도입되었는데, 이는 사용자가 기존 파일에 쓸 수 있게 해주지만 새로운 파일을 만드는 것은 허용하지 않습니다.[35]Paragon의 NTFS 드라이버(아래 참조)는 커널 버전 5.15에 병합되었으며, 일반 파일, 압축 파일 및 희소 파일에 대한 읽기/쓰기와 저널 재생을 지원합니다.[36]

NTFS-3G는 처음에 Szabolcs Szakacsits에 의해 리눅스 커널 드라이버로 개발된 NTFS의 무료 GPL 라이선스 FUSE 구현입니다.FUSE가 지원하는 macOS, FreeBSD, NetBSD, OpenBSD, Solaris, QNX, [37]Haiku[38] 등의 다른 시스템에서 작동하기 위해 FUSE 프로그램으로 다시 작성되었으며 NTFS 파티션에 읽기 및 쓰기를 허용합니다.NTFS-3G 개발자는 "Tuxera NTFS for Mac"이라고 불리는 NTFS-3G의 성능 향상 상용 버전도 구입할 수 있습니다.[39]

Windows 자체 드라이버 ntfs.sys를 사용하는 'wrapping' 드라이버인 Captive NTFS는 Linux용으로 존재합니다.FUSE(File system in Userspace) 프로그램으로 만들어졌으며 GPL로 출시되었으나 Captive NTFS에 대한 작업은 2006년에 중단되었습니다.[40]

리눅스 커널 버전 5.15 이후 버전은 NTFS3을 탑재하고 있으며, NTFS 버전에서 3.1까지 작동하며 주로 Paragon 소프트웨어 그룹에서 유지 관리하는 완전한 기능을 갖춘 NTFS 읽기-쓰기 드라이버입니다.

맥OS

Mac OS X 10.3에는 FreeBSD에서 NTFS를 읽기 전용으로 구현한 Ustimenko의 기능이 포함되어 있습니다.그리고 2006년에 Apple은 Mac OS X 10.6을 위한 새로운 NTFS 구현을 작성하기 위해 Anton Altaparmakov를 고용했습니다.[41]기본 NTFS 쓰기 지원은 10.6 이상에 포함되어 있지만 기본적으로 활성화되지는 않지만 기능을 활성화하기 위한 해결 방법이 있습니다.그러나 사용자 보고서에 따르면 기능이 불안정하여 커널 패닉이 발생하는 경향이 있습니다.[42]

Paragon Software Group은 Mac OS X용 NTFS라는 이름의 읽기-쓰기 드라이버를 판매하고 있으며,[43] Seagate 하드 드라이브의 일부 모델에도 포함되어 있습니다.[44]

OS/2

OS/2용 NetDrive 패키지(및 eComStationArcaOS 등 파생 제품)는 NTFS 볼륨에 대한 읽기 및 쓰기 액세스를 허용하는 플러그인을 지원합니다.[45][46]

도스

"NTFS4DOS"라고 불리는 아비라MS-DOS용 개인용 읽기/쓰기 드라이버가 있습니다.[47][48]

어헤드 소프트웨어는 2002년에서 2004년 사이에 DR-DOS 7.0x용 NTFSREAD 드라이버(버전 1.200)를 개발했습니다.네로 버닝소프트웨어의 일부였습니다.

보안.

NTFS는 액세스 제어 목록과 사용자 수준 암호화를 사용하여 사용자 데이터를 안전하게 보호합니다.

ACL(Access Control List)

최신 Windows 시스템에서 NTFS 파일 시스템 권한

NTFS에서 각 파일 또는 폴더에는 소유자를 정의하고 두 개의 ACL(Access Control List)이 포함된 보안 설명자가 할당됩니다.임의 접근 제어 목록(DACL)이라고 하는 첫 번째 ACL은 어떤 유형의 상호 작용(예: 읽기, 쓰기, 실행 또는 삭제)이 어떤 사용자 또는 사용자 그룹에 의해 허용되거나 금지되는지를 정확하게 정의합니다.예를 들어 에 있는 파일은C:\Program Files폴더는 모든 사용자가 읽고 실행할 수 있지만 관리자 권한을 가진 사용자만 수정할 수 있습니다.[49]Windows Vista(윈도우 비스타)는 DACL에 필수 액세스 제어 정보를 추가합니다. DACL은 Windows Vista(윈도우 비스타) 이상에서 사용자 계정 제어의 주요 초점입니다.

시스템 액세스 제어 목록(SACL)이라고 하는 두 번째 ACL은 파일 또는 폴더와 어떤 상호 작용을 감사할 것인지, 활동이 성공했을 때 기록해야 하는지, 실패했을 때 또는 둘 다 기록해야 하는지를 정의합니다.예를 들어, 감사는 회사의 중요한 파일에 대해 활성화할 수 있으므로, 관리자는 누군가가 파일을 삭제하거나 복사하려고 할 때와 성공 여부를 알 수 있습니다.[49]

암호화

EFS(Encrypting File System)는 NTFS 볼륨의 모든 파일 또는 폴더를 사용자에게 투명하게 암호화합니다.[50]EFS는 EFS 서비스, 마이크로소프트의 CryptoAPI 및 EFS 파일 시스템 런타임 라이브러리(FSRTL)와 함께 작동합니다.EFS는 대량 대칭 키(File Encryption Key, 또는 FEK라고도 함)로 파일을 암호화하는 방식으로 작동합니다. 는 비대칭 키 암호를 사용하는 경우보다 많은 양의 데이터를 암호화하고 해독하는 데 상대적으로 적은 시간이 걸리기 때문입니다.그런 다음 파일을 암호화하는 데 사용되는 대칭 키는 파일을 암호화한 사용자와 관련된 공개 키로 암호화되고 이 암호화된 데이터는 암호화된 파일의 대체 데이터 스트림에 저장됩니다.파일의 암호를 풀기 위해 파일 시스템은 사용자의 개인 키를 사용하여 데이터 스트림에 저장된 대칭 키의 암호를 해독합니다.그런 다음 대칭 키를 사용하여 파일의 암호를 해독합니다.이 작업은 파일 시스템 수준에서 수행되기 때문에 사용자에게 투명합니다.[51]또한 사용자가 키에 대한 액세스 권한을 잃을 경우 EFS 시스템에 추가 암호 해독 키를 지원하므로 복구 에이전트가 필요한 경우에도 파일에 액세스할 수 있습니다.NTFS가 제공하는 암호화와 NTFS가 제공하는 압축은 상호 배타적이지만, NTFS는 한 도구에 사용할 수 있고 다른 도구에는 타사 도구를 사용할 수 있습니다.

Windows의 Basic, Home 및 MediaCenter 버전에서는 EFS 지원을 사용할 수 없으며, Windows의 Professional, Ultimate 및 Server 버전을 설치한 후 또는 Windows 도메인 내의 엔터프라이즈 배포 도구를 사용하여 활성화해야 합니다.

특징들

저널링

NTFS는 저널링 파일 시스템이며 NTFS 로그($LogFile)를 사용하여 볼륨의 메타데이터 변경 내용을 기록합니다.이 기능은 시스템 충돌이나 조각 모음 API에 의해 수행되는 데이터 이동 시 복잡한 내부 데이터 구조가 일관성을 유지하도록 보장하고 볼륨이 재장착될 때 이러한 중요 데이터 구조에 대한 커밋되지 않은 변경 사항을 쉽게 롤백할 수 있도록 NTFS에 제공하지 않으며 중요한 기능입니다.특히 영향을 받는 구조는 볼륨 할당 비트맵, MFT 레코드 및 속성 목록에 저장된 일부 가변 길이 속성의 이동과 같은 MFT 레코드의 수정, 디렉터리 및 보안 설명자를 위한 인덱스 등입니다.

($LogFile) 형식은 여러 버전을 거쳐 발전해 왔습니다.

윈도 버전 $LogFile 형식 버전
윈도 NT 4.0 1.1
윈도 2000
윈도 XP
윈도 비스타
윈도 7
윈도8 2.0
윈도 8.1
윈도우 10

Windows 8, Windows 10, Windows 11에서 구현된 $LogFile 버전의 비호환성으로 인해 Windows 7(및 이전 버전의 Windows)에서 $LogFile 버전 2.0을 인식할 수 없습니다.NTFS 볼륨을 완전히 분리할 때 $LogFile을 버전 1.1로 다운그레이드하면 하위 호환성이 제공됩니다.호환되는 버전의 Windows에 마운트하면 버전 2.0으로 다시 업그레이드됩니다.그러나 로그오프 상태(일명)에서 디스크로 최대 절전 모드로 전환하는 경우기본적으로 활성화되어 있는 하이브리드 부팅 또는 고속 부팅)을 사용하면 마운트된 파일 시스템이 마운트 해제되지 않으므로 활성 파일 시스템의 $LogFiles가 버전 1.1로 다운그레이드되지 않습니다.8.0 이전 버전의 윈도우즈에서 $LogFile 버전 2.0을 처리할 수 없으므로 CHKDSK 디스크 복구 유틸리티가 불필요하게 호출됩니다.이는 8.0 이전 버전과 이후 버전의 Windows를 포함하는 다중 부팅 시나리오 또는 이전 버전과 최신 버전 간에 스토리지 장치를 자주 이동할 때 특히 문제가 됩니다.$LogFile을 최신 버전으로 자동 업그레이드하지 못하도록 Windows 레지스트리 설정이 있습니다.하이브리드 부팅을 비활성화하여 문제를 해결할 수도 있습니다.[52]

USN Journal(Update Sequence Number Journal)은 $Extend\를 기록하는 시스템 관리 기능입니다.$UsnJrnl)은 볼륨의 파일, 스트림 및 디렉터리와 다양한 속성 및 보안 설정을 변경합니다.저널은 응용프로그램이 볼륨의 변화를 추적할 수 있도록 제공됩니다.[53]이 저널은 시스템이 아닌 볼륨에서 활성화 또는 비활성화할 수 있습니다.[54]

하드 링크

하드 링크 기능을 사용하면 다른 파일 이름이 동일한 파일 내용을 직접 참조할 수 있습니다.각 볼륨에는 고유한 MFT가 있으므로 하드 링크는 동일한 볼륨의 파일에만 연결될 수 있습니다. 하드 링크는 원래 Windows NT의 POSIX 하위 시스템을 지원하기 위해 포함되었습니다.[55]

하드 링크는 파일 크기, 수정 날짜 및 속성과 같은 파일 메타데이터를 기록하는 동일한 MFT 레코드(inode)를 사용하지만 NTFS는 성능 향상을 위해 디렉토리 항목에 이 데이터를 캐싱하기도 합니다.즉, FindFirstFile/FindNextFile 계열의 API를 사용하여 디렉토리의 내용을 나열할 때(POSIX opendir/readdir APIs와 동일) 이름과 inode 외에 캐시된 정보도 받게 됩니다.그러나 이 정보는 파일이 닫혔을 때만 업데이트되며, 파일이 열린 디렉토리에 대해서만 업데이트가 보장되므로 최신 정보가 표시되지 않을 수 있습니다.[56]즉, 하드 링크를 통해 파일에 여러 이름이 있는 경우 한 이름을 통해 파일을 업데이트해도 다른 이름과 연관된 캐시된 데이터는 업데이트되지 않습니다.GetFileInformationByHandle(POSIX stat 함수의 실제 등가물)을 사용하여 항상 최신 데이터를 얻을 수 있습니다.이 작업은 파일 자체에 대한 액세스 권한이 없는 핸들(dwDesiredAccess용 CreateFile로 0을 전달)을 사용하여 수행할 수 있으며, 이 핸들을 닫으면 캐시된 정보가 업데이트되는 부수적인 효과가 있습니다.

Windows(윈도우)에서는 하드 링크를 사용하여 NTFS에서 짧은(8.3) 파일 이름을 지원합니다.8.3 파일 이름으로만 작동할 수 있는 레거시 응용 프로그램이 있기 때문에 운영 체제 지원이 필요하지만 지원이 비활성화될 수 있습니다.이 경우 파일 이름 레코드와 디렉터리 항목이 추가되지만 일반 하드 링크와 달리 8.3 파일 이름과 긴 파일 이름이 함께 링크되고 업데이트됩니다.

NTFS 파일 시스템에는 파일에 1024개의 하드 링크가 있습니다.[57]

대체 데이터 스트림(ADS)

대체 데이터 스트림은 "filename:streamname"(예: "text") 형식을 사용하여 둘 이상의 데이터 스트림을 파일 이름(포크)과 연결할 수 있습니다.txt:extrastream").

NTFS 스트림은 매킨토시용 서비스(SFM)가 리소스 포크를 저장할 수 있도록 Windows NT 3.1에 도입되었습니다.현재 Windows Server 버전에는 SFM이 더 이상 포함되지 않지만 타사 Apple Filing Protocol(AFP) 제품(예: GroupLogic의 ExtremeZ-IP)에서는 파일 시스템의 이 기능을 여전히 사용합니다.

존(Zone)이라는 이름의 작은 광고."Identifier"는 외부 사이트에서 다운로드한 파일을 실행하기에 안전하지 않다고 표시하기 위해 Internet Explorer와 대부분의 브라우저에서 추가됩니다. 그러면 로컬 셸을 열기 전에 사용자 확인이 필요합니다.[58]사용자가 이 확인 대화 상자를 더 이상 원하지 않는다고 표시하면 이 ADS는 삭제됩니다.이 기능은 "마크 오브 더 웹"이라고도 합니다.[59][60]

대체 스트림은 Windows 탐색기에 나열되지 않으며 크기도 파일 크기에 포함되지 않습니다.ADS 지원 없이 파일을 복사하거나 다른 파일 시스템으로 이동하면 대체 데이터 스트림을 보존할 수 없다는 경고가 표시됩니다.일반적으로 파일이 전자 메일에 첨부되거나 웹 사이트에 업로드된 경우에는 이러한 경고가 제공되지 않습니다.따라서 중요한 데이터에 대체 스트림을 사용하면 문제가 발생할 수 있습니다.Microsoft는 Streams라는[61] 도구를 제공하여 선택한 볼륨의 스트림을 볼 수 있습니다.Windows PowerShell 3.0부터는 Add-Content, Clear-Content, Get-Content, Get-Item, Remove-Item, Set-Content의 6가지 cmdlet으로 ADS를 기본적으로 관리할 수 있습니다.[62]

멀웨어는 코드를 숨기기 위해 대체 데이터 스트림을 사용했습니다.[63]그 결과 멀웨어 스캐너 및 기타 특수 도구는 이제[when?] 대체 데이터 스트림을 확인합니다.

파일 압축

압축은 폴더 단위 또는 파일 단위로 '압축' 속성을 설정하여 활성화합니다.폴더에서 압축을 활성화하면 해당 폴더로 이동하거나 저장한 모든 파일이 LZNT1 알고리즘(LZ77의 변형)을 사용하여 자동으로 압축됩니다.[64]압축 알고리즘은 최대 4KB의 클러스터 크기를 지원하도록 설계되었으며, NTFS 볼륨에서 클러스터 크기가 4KB보다 크면 NTFS 압축을 사용할 수 없습니다.[65]데이터는 16개의 클러스터 청크(최대 64KB 크기)로 압축됩니다. 압축을 통해 64KB의 데이터가 60KB 이하로 줄어들면 NTFS는 불필요한 4KB 페이지를 빈 스파스 파일 클러스터로 취급합니다.이것은 OS가 단지 단편의 연쇄를 따르기만 하면 되기 때문에 합리적인 랜덤 액세스 시간을 허용합니다.

압축은 반복적인 내용이 있고, 거의 쓰이지 않으며, 대개 순차적으로 액세스되며, 자체적으로 압축되지 않은 파일에서 가장 잘 작동합니다.하드 디스크 공간이 제한된 단일 사용자 시스템은 압축성에 따라 4KB에서 64KB 이상의 작은 파일에 대해 NTFS 압축의 이점을 누릴 수 있습니다.약 900바이트보다 작은 파일은 MFT의 디렉토리 항목 내에 저장됩니다.[66]

이점

빠른 멀티 코어 프로세서를 사용하는 사용자는 애플리케이션과 데이터를 압축하여 애플리케이션 속도를 향상시키고 사용 공간을 줄일 수 있습니다.SSD 컨트롤러가 이미 데이터를 압축해도 전송되는 데이터가 적어 I/O가 줄어듭니다.[67]

Microsoft NTFS 개발 팀의 연구에 따르면 50-60GB는 4KB(기본값) 클러스터(블록) 크기의 NTFS 볼륨에서 압축 파일의 합리적인 최대 크기입니다.이렇게 합리적인 최대 크기는 클러스터 크기가 작은 볼륨일수록 급격히 줄어듭니다.[68]

단점들

64KB보다 작은 청크는 모두 단편화되므로 압축 가능한 대용량 파일은 매우 단편화됩니다.[68][69]SSD 드라이브와 같은 플래시 메모리는 기계식 하드 디스크 드라이브의 헤드 이동 지연과 높은 액세스 시간을 가지고 있지 않으므로 단편화는 더 작은 단점만 가지고 있습니다.

부팅 시 필요한 시스템 파일(예: 드라이버, NTLDR, 윈로드).압축 해제 필터가 아직 로드되지 않았기 때문에 exe 또는 BOOTMGR)이 압축 해제 필터가 아직 로드되지 않았기 때문입니다.[70][failed verification]Windows(윈도우[which?]) 이후 버전에서는 중요한 시스템 파일을 압축할 수 없습니다.

시스템 압축

윈도우 10 이후 마이크로소프트는 4K/8K/16K 블록 크기의[71] XPRESS 알고리즘과 LZX 알고리즘을 기반으로 새로운 파일 압축 방식을 도입하였는데,[72] 둘 다 LZNT1이 부족했던 Huffman 엔트로피 코딩과 범위 코딩으로 업데이트된 LZ77의 변형입니다.이러한 압축 알고리즘은 WIM 파일(Windows Imaging Format)에서 가져온 것입니다.

Compact에서 새 압축 방식을 사용합니다.OS 기능 - Windows 시스템 파일을 압축하여 디스크 사용량을 줄입니다.[73]작은OS는 NTFS 파일 압축의 확장자가 아니며 '압축' 속성을 사용하지 않습니다. 대신 WOF(Windows Overlay Filter) 태그를 사용하여 각 압축 파일에 재분석 지점을 설정하지만 [74]실제 데이터는 WOF 파일 시스템 필터 드라이버에 의해 즉시 압축 해제되는 "WofCompressed Data"라는 대체 데이터 스트림에 저장됩니다.메인 파일은 빈 스파스 파일입니다.[74]이 설계는 순수하게 읽기 전용 액세스를 위한 것이므로 압축 파일에 대한 쓰기는 자동 압축 해제로 이어집니다.[74][75][76]

Compact OS 압축은 다음과 같이 OS 이미지를 준비하는 OEM을 대상으로 합니다./compactWindows ADK에서 도구의 플래그를 사용할 수도 있지만 [77]파일마다 수동으로 설정할 수도 있습니다./exe국기compact지휘.[78]작은OS 알고리즘은 코어 NTFS 압축과 달리 연속적으로 할당된 청크에 압축 데이터를 기록하여 파일 조각화를 방지합니다.[citation needed]

컴팩트 OS 파일 압축은 윈도우 8.1에 도입된 WIMboot 기능의 개선된 버전입니다. WIMboot는 별도의 숨겨진 디스크 파티션압축된 WIM 이미지에 시스템 파일을 보관함으로써 윈도우 디스크 사용량을 줄입니다.[79]CompactOS와 마찬가지로 Windows 시스템 디렉터리도 WOF 태그가 있는 재분석 지점으로 표시된 희소 파일만 포함하고 있으며 Windows Overlay Filter 드라이버는 WIM 이미지에서 파일 내용을 즉시 압축 해제합니다.WIM 부트는 콤팩트보다 효과가 떨어집니다.그러나 OS는 새로운 업데이트 버전의 시스템 파일을 시스템 파티션에 기록해야 하므로 디스크 공간이 소모됩니다.[74]

희소 파일

희소 파일: 빈 바이트는 저장할 필요가 없으므로 메타데이터로 나타낼 수 있습니다.
1페타바이트(1,125,899,906,842,624바이트)의 희소 파일, 디스크에 0바이트.

스파스 파일은 실제 저장 공간이 사용되지 않는 빈 세그먼트가 흩어져 있는 파일입니다.응용 프로그램에서 파일은 빈 영역이 0으로 채워진 영역으로 보이는 일반 파일처럼 보입니다. 파일 시스템은 각 희소 파일에 대해 해당 영역의 내부 목록을 유지합니다.[80]희소 파일은 반드시 희소 0 영역을 포함하지는 않으며, "희소 파일" 속성은 파일에 해당 영역이 허용됨을 의미할 뿐입니다.

예를 들어, 데이터베이스 애플리케이션은 희소 파일을 사용할 수 있습니다.[81]압축 파일과 마찬가지로 실제 스파스 파일 크기는 할당량 제한을 결정할 때 고려되지 않습니다.[82]

볼륨 섀도 복사본

VSS(Volume Shadow Copy Service)는 쓰기 시 복사 기술을 통해 오래되고 새로 덮어쓴 데이터를 섀도 복사본에 복사하여 NTFS 볼륨에 파일 및 폴더의 기록 버전을 보관합니다.사용자는 나중에 이전 버전의 복구를 요청할 수 있습니다.이를 통해 데이터 백업 프로그램이 파일 시스템에서 현재 사용 중인 파일을 보관할 수도 있습니다.

윈도우 비스타는 또한 시스템 복원 및 이전 버전 기능과 함께 사용할 수 있는 영구 섀도 복사본을 선보였습니다.그러나 오래된 운영 체제가 NTFS 볼륨을 마운트하면 영구 섀도 복사본이 삭제됩니다.이 문제는 이전 운영 체제가 영구 섀도 복사본의 새로운 형식을 이해하지 못하기 때문에 발생합니다.[15]

거래

Windows Vista(윈도우 비스타)에서는 TxF(Transactional NTFS)를 사용하여 파일에 대한 여러 변경 사항을 하나의 트랜잭션으로 그룹화할 수 있습니다.트랜잭션은 모든 변경사항이 발생하거나 변경사항이 발생하지 않음을 보장하며 트랜잭션 외부의 어떤 애플리케이션도 변경사항이 커밋되기 전까지 변경사항을 볼 수 없습니다.[83]

덮어쓰기된 데이터를 안전하게 롤백할 수 있도록 볼륨 섀도 복사본(즉, 쓰기 시 복사)에 사용되는 것과 유사한 기술을 사용하고 아직 커밋되지 않은 트랜잭션을 표시하는 CLFS 로그를 사용합니다.또는 (참가자 중 한 명의 커밋 도중 시스템 충돌이 발생한 경우) 커밋은 완료되었지만 아직 완전히 적용되지 않은 경우.

트랜잭션 NTFS는 로컬 NTFS 볼륨에만 트랜잭션을 제한하지 않으며 별도의 볼륨에 저장된 데이터, 로컬 레지스트리 또는 SQL 데이터베이스, 시스템 서비스 또는 원격 서비스의 현재 상태 등 다른 위치에 있는 다른 트랜잭션 데이터나 작업도 포함합니다.이러한 거래는 모든 참가자가 특정 서비스인 DTC를 사용하여 네트워크 전반에 걸쳐 조정되어 모든 참가자가 동일한 커밋 상태를 받도록 보장합니다.모든 참가자가 검증한 변경 사항을 전송합니다(다른 참가자가 이전 데이터에 대한 로컬 캐시를 무효화하거나 커밋되지 않은 변경 사항을 롤백할 수 있도록).예를 들어 트랜잭션 NTFS를 사용하면 로컬 라이브 또는 오프라인 캐시를 포함하여 네트워크 전체에 일관된 분산 파일 시스템을 만들 수 있습니다.

마이크로소프트는 "향후 버전의 마이크로소프트 윈도우에서는 TxF를 사용할 수 없을 수도 있기 때문에 개발자들에게 대체 수단을 사용할 것을 강력히 권고한다"는 TxF를 사용하지 말 것을 권고하고 있습니다.[84]

쿼터

디스크 할당량은 NTFS v3에 도입되었습니다.NTFS를 지원하는 윈도우즈 버전을 실행하는 시스템의 관리자가 사용자가 사용할 수 있는 Disk 공간 임계값을 설정할 수 있습니다.또한 관리자는 각 사용자가 사용하는 디스크 공간을 계속 추적할 수 있습니다.관리자는 사용자가 경고를 받기 전에 사용할 수 있는 특정 수준의 디스크 공간을 지정한 다음 사용자가 공간 상한에 도달하면 액세스를 거부할 수 있습니다.디스크 할당량은 NTFS의 투명한 파일 압축을 고려하지 않습니다.사용 가능한 공간의 양을 쿼리하는 응용프로그램은 자신에게 적용된 할당량이 있는 사용자에게 남은 사용 가능한 공간의 양도 볼 수 있습니다.

휴식점

NTFS v3에 도입된 NTFS 복원 지점은 파일 또는 디렉토리의 사용자 공간 속성에 복원 태그를 연결하여 사용합니다.마이크로소프트는 심볼릭 링크, 디렉터리 연결 지점, 볼륨 마운트 지점 등 여러 기본 태그를 포함하고 있습니다.Object Manager는 파일 시스템 이름 조회를 파싱하고 reparse 속성을 발견하면 이름 조회를 재분석하여 Windows에 로드되는 모든 파일 시스템 필터 드라이버에 사용자가 제어하는 reparse 데이터를 전달합니다.각 필터 드라이버는 재분석된 데이터가 해당 재분석 지점과 연관되어 있는지 확인하기 위해 재분석된 데이터를 검사하고, 해당 필터 드라이버가 일치 여부를 결정하면 파일 시스템 요청을 가로채 특별한 기능을 수행합니다.

한계

리사이징

윈도우 비스타를 기점으로 마이크로소프트는 파티션을 축소하거나 확장할 수 있는 내장 기능을 추가했습니다.그러나 이 기능은 페이지 파일 조각이나 이동 불가능으로 표시된 파일을 재배치하지 않으므로 볼륨을 축소하려면 페이지 파일, Windows 검색 인덱스 및 시스템 복원에서 사용하는 섀도 복사본을 재배치하거나 비활성화해야 하는 경우가 많습니다.다양한 타사 도구를 통해 NTFS 파티션 크기를 조정할 수 있습니다.

원드라이브

2017년부터 마이크로소프트는 OneDrive 파일 구조를 NTFS 디스크에 저장하도록 요구하고 있습니다.[85]OneDrive Files On-Demand 기능은 NTFS 재분석 지점을 사용하여 OneDrive에 저장된 파일 및 폴더를 로컬 파일 시스템에 연결하기 때문에 파일 또는 폴더를 이전 버전의 Windows에서 사용할 수 없거나, 다른 NTFS 파일 시스템 드라이버를 사용하거나, 파일 시스템 및 백업 유틸리티를 지원하기 위해 업데이트되지 않았기 때문입니다.[86]

구조.

NTFS는 부팅 정보를 저장하는 PBS(Partition Boot Sector), 파일 시스템의 모든 파일 및 폴더에 대한 레코드를 저장하는 마스터 파일 테이블, 메타 데이터를 보다 효율적으로 구조하는 데 도움이 되는 일련의 메타 파일, 데이터 스트림 및 잠금 메커니즘 등의 여러 구성 요소로 구성됩니다.

내부적으로 NTFS는 B-tree를 사용하여 파일 시스템 데이터를 인덱싱합니다.파일 시스템 저널은 파일 시스템 메타데이터의 무결성을 보장하기 위해 사용되지만 개별 파일의 내용은 보장되지 않습니다.NTFS를 사용하는 시스템은 FAT 파일 시스템에 비해 신뢰성이 향상된 것으로 알려져 있습니다.[87]

NTFS는 이름 인코딩을 위해 0x0000을 제외한 모든 16비트 값 시퀀스(예: 파일 이름, 스트림 이름 또는 인덱스 이름)를 허용합니다.이것은 UTF-16 코드 유닛이 지원된다는 것을 의미하지만 파일 시스템은 시퀀스가 유효한 UTF-16인지 확인하지 않습니다(유니코드 표준에 있는 것에 제한되지 않고 짧은 값의 시퀀스를 허용합니다).Win32 네임스페이스에서는 UTF-16 코드 유닛이 대소문자를 구분하지 않는 반면 POSIX 네임스페이스에서는 대소문자를 구분하지 않습니다.파일 이름은 UTF-16 코드 유닛 255개로 제한됩니다.특정 이름은 볼륨 루트 디렉터리에 예약되어 있으므로 파일에 사용할 수 없습니다.이것들은$MFT,$MFTMirr,$LogFile,$Volume,$AttrDef,.(점),$Bitmap,$Boot,$BadClus,$Secure,$UpCase,그리고.$Extend.[5] .(점) 및$Extend둘 다 디렉토리이고 나머지는 파일입니다.NT 커널은 전체 경로를 32,767 UTF-16 코드 유닛으로 제한합니다.코드 포인트 및 파일 이름에 추가적인 제한이 있습니다.[88]

파티션 부트 섹터(PBS)

NTFS 부팅 섹터 컨텐츠[89][90]( 문자열을 제외한 모든 값은 리틀 엔디언 순서로 저장됨)
바이트 오프셋 필드길이 표준값 필드명 목적
0x00 3바이트 0xEB5290 x86 JMPNOP 지침 이 부팅 섹터의 데이터 구조 이후에도 실행이 계속됩니다.
0x03 8바이트 "NTFS "
단어 "NTFS" 다음에 후행 공백 4개(0x20)
OEMID NTFS 파일 시스템임을 나타내는 매직 넘버입니다.
0x0B 2바이트 0x0200 BPB 섹터당 바이트 수 디스크 섹터의 바이트 수입니다.
0x0D 1바이트 0x08 클러스터당 섹터 수 클러스터에 있는 섹터 수입니다.값이 0x80보다 크면 섹터의 양은 이 필드를 음수로 간주하는 절대값의 거듭제곱에 2가 됩니다.
0x0E 2바이트 0x0000 예약된 섹터, 사용되지 않음
0x10 3바이트 0x000000 미사용 이 필드는 항상 0입니다.
0x13 2바이트 0x0000 NTFS에서 사용하지 않음 이 필드는 항상 0입니다.
0x15 1바이트 0xF8 미디어 디스크립터 드라이브의 유형. 0xF8은 하드 드라이브를 나타내는 데 사용됩니다(플로피의 여러 크기와 대조적으로).
0x16 2바이트 0x0000 미사용 이 필드는 항상 0입니다.
0x18 2바이트 0x003F 트랙당 섹터 수 드라이브 트랙의 디스크 섹터 수입니다.
0x1A 2바이트 0x00FF 헤드 수 드라이브의 헤드 수입니다.
0x1C 4바이트 0x0000003F 숨겨진 섹터 파티션 앞에 있는 섹터 수입니다.
0x20 4바이트 0x00000000 미사용 NTFS에서 사용하지 않음
0x24 4바이트 0x00800080 EPB 미사용 NTFS에서 사용하지 않음
0x28 8바이트 0x00000000007FF54A 총섹터 섹터 단위의 파티션 크기입니다.
0x30 8바이트 0x0000000000000004 $MFT 클러스터 번호 마스터 파일 테이블이 들어 있는 클러스터
0x38 8바이트 0x000000000007FF54 $MFTMirr 클러스터 번호 마스터 파일 테이블의 백업을 포함하는 클러스터
0x40 1바이트 0xF6 파일 레코드 세그먼트당 바이트 또는 클러스터 수 양의 값은 파일 레코드 세그먼트의 클러스터 수를 나타냅니다.음의 값은 File Record Segment(파일 레코드 세그먼트)의 바이트 양을 나타냅니다. 이 경우 크기는 절대값의 거듭제곱의 2입니다.(0xF6 = -10 → 2 = 1024).
0x41 3바이트 0x000000 미사용 이 필드는 NTFS에서 사용되지 않습니다.
0x44 1바이트 0x01 인덱스 버퍼당 바이트 또는 클러스터 수 양의 값은 인덱스 버퍼의 클러스터 수를 나타냅니다.음의 값은 바이트의 양을 나타내며 "Bytes or Clusters Per File Record Segment"와 같은 알고리즘을 사용합니다.
0x45 3바이트 0x000000 미사용 이 필드는 NTFS에서 사용되지 않습니다.
0x48 8바이트 0x1C741BC9741BA514 볼륨 일련 번호 이 파티션에 할당된 고유 난수로, 정리를 유지합니다.
0x50 4바이트 0x00000000 체크섬, 미사용 체크섬으로 추정됩니다.
0x54 426바이트 부트스트랩 코드 운영 체제의 나머지 부분을 로드하는 코드입니다.이 섹터의 처음 3바이트가 이를 가리킵니다.
0x01FE 2바이트 0xAA55 섹터 종료 마커 이 플래그는 유효한 부팅 섹터임을 나타냅니다.

이 부팅 파티션 형식은 대략 이전 FAT 파일 시스템을 기반으로 하지만 필드는 다른 위치에 있습니다.이러한 필드 중 일부, 특히 "트랙당 섹터", "헤드 수" 및 "숨겨진 섹터" 필드에는 드라이브의 더미 값이 포함되어 있을 수 있습니다.

OS는 먼저 0x30에서 8바이트를 조사하여 $MFT의 클러스터 번호를 찾은 다음 해당 숫자를 클러스터당 섹터 수(0x0D에서 1바이트 발견)에 곱합니다.이 값은 $MFT에 대한 섹터 오프셋(LBA)이며, 이 값은 아래에 설명됩니다.

마스터 파일 테이블

NTFS에서는 파일 이름, 작성 날짜, 액세스 제어 목록을 사용한 액세스 권한, 크기 등 모든 파일, 디렉토리 및 메타 파일 데이터가 MFT(Master File Table)에 메타데이터로 저장됩니다.이러한 추상적인 접근 방식을 통해 Windows NT의 개발 과정에서 파일 시스템 기능을 쉽게 추가할 수 있었습니다. 예를 들어 Active Directory와 Windows Search에서 사용하는 인덱싱을 위한 필드를 추가할 수 있습니다.이를 통해 빠른 파일 검색 소프트웨어는 다른 인덱스 없이 MFT에 포함된 명명된 로컬 파일과 폴더를 매우 빠르게 찾을 수 있습니다.

MFT 구조는 디스크 조각화를 최소화하는 알고리즘을 지원합니다.[91]디렉토리 항목은 파일 이름과 마스터 파일 테이블의 파일을 나타내는 레코드 번호인 "파일 ID"(inode 번호와 유사)로 구성됩니다.파일 ID에는 오래된 참조를 탐지하기 위한 재사용 횟수도 포함되어 있습니다.이것은 Files-11의 W_FID와 매우 유사하지만 다른 NTFS 구조는 근본적으로 다릅니다.

MFT 미러라고 하는 MFT의 일부 복사본은 손상된 경우에 사용하기 위해 저장됩니다.[92]MFT의 첫 번째 레코드가 손상된 경우 NTFS는 두 번째 레코드를 읽어 MFT 미러 파일을 찾습니다.두 파일의 위치는 부팅 섹터에 저장됩니다.[93]

메타파일스

NTFS에는 파일 시스템을 정의하고 구성하는 여러 파일이 들어 있습니다.모든 면에서 이러한 파일의 대부분은 다른 사용자 파일(Volume이 가장 고유한 파일임)과 마찬가지로 구조화되어 있지만 파일 시스템 클라이언트가 직접 관심을 가질 수는 없습니다.[94]이러한 메타 파일은 파일 정의, 중요한 파일 시스템 데이터 백업, 파일 시스템 변경 버퍼, 사용 가능한 공간 할당 관리, BIOS 기대치 충족, 잘못된 할당 단위 추적, 보안 및 디스크 공간 사용 정보 저장 등의 기능을 제공합니다.별도의 언급이 없는 한 모든 콘텐츠는 이름 없는 데이터 스트림에 있습니다.

MFT(0-26 항목은 NTFS 메타 파일임)
세그먼트번호 파일명 목적
0 $MFT 파일 이름, 타임스탬프, 스트림 이름 및 데이터 스트림이 있는 클러스터 번호 목록, 인덱스, 보안 식별자 및 "읽기 전용", "압축", "암호화" 등의 파일 특성을 포함하여 볼륨에 있는 모든 파일을 설명합니다.
1 $MFTMirr $MFT의 첫 번째 필수 항목(일반적으로 4 킬로바이트)을 중복합니다.
2 $LogFile 파일 시스템 메타데이터 변경의 트랜잭션 로그를 포함합니다.
3 $Volume 볼륨 개체 식별자, 볼륨 레이블, 파일 시스템 버전 및 볼륨 플래그(mounted, chkdsk 요청, $LogFile resize 요청, NT 4에 마운트, 볼륨 일련 번호 업데이트, 구조 업그레이드 요청)와 같은 볼륨에 대한 정보를 포함합니다.이 데이터는 데이터 스트림에 저장되지 않고 특수한 MFT 속성에 저장됩니다.존재하는 경우 볼륨 오브젝트 ID가 $OBJECT_에 저장됩니다.ID 레코드; 볼륨 레이블은 $VOLUME_NAME 레코드에 저장되고 나머지 볼륨 데이터는 $VOLUME_INFORMATION 레코드에 저장됩니다.참고: 볼륨 일련 번호는 $Boot 파일(아래)에 저장됩니다.
4 $AttrDef 숫자 식별자를 이름과 연결하는 MFT 속성 테이블입니다.
5 . 루트 디렉터리.디렉토리 데이터는 $I30이라는 이름의 $INDEX_ROOT 및 $INDEX_ALLOCATION 특성에 저장됩니다.
6 $Bitmap 비트 항목 배열: 각 비트는 해당 클러스터가 사용(할당됨)되었는지 또는 사용(할당에 사용 가능함)되었는지 나타냅니다.
7 $Boot VBR(Volume boot record).이 파일은 항상 볼륨의 첫 번째 클러스터에 있습니다.부트스트랩 코드(NTLDR/BOOTMGR 참조) 및 볼륨 일련 번호와 $MFT$MFTMirr의 클러스터 번호를 포함하는 BIOS 매개 변수 블록이 포함되어 있습니다.
8 $BadClus 불량 섹터로 표시된 모든 클러스터가 들어 있는 파일입니다.이 파일은 새로 발견된 불량 섹터를 저장하고 참조되지 않은 클러스터를 식별하기 위해 chkdsk 유틸리티를 사용하여 클러스터 관리를 단순화합니다.이 파일에는 두 개의 데이터 스트림이 포함되어 있으며, 심지어 불량 섹터가 없는 볼륨의 경우에도 포함되어 있습니다. 이름 없는 스트림에는 불량 섹터가 포함되어 있으며, 완벽한 볼륨에 대해서는 길이가 0이고, 두 번째 스트림에는 $Bad라는 이름이 붙으며 첫 번째 스트림이 아닌 볼륨의 모든 클러스터가 포함됩니다.
9 $Secure 이러한 ACL을 데이터베이스에만 고유하게 저장하여 각 파일과 동일한 ACL이 많이 저장된 오버헤드를 줄이는 액세스 제어 목록 데이터베이스(실제 ACL 테이블이 포함된 $SDS라는 이름의 스트림을 인덱스하는 $SII(Standard_Information ID)$SDH(Security Descriptor Hash)[19]의 두 인덱스 포함).
10 $UpCase Win32 및 DOS 네임스페이스에서 대소문자 구분을 보장하기 위한 유니코드 대문자 표입니다.
11 $Extend $Quota, $ObjId, $Reparse 또는 $UsnJrnl과 같은 다양한 옵션 확장을 포함하는 파일 시스템 디렉토리입니다.
12–23 $MFT 확장 항목을 위해 예약되었습니다.확장 항목은 주 레코드에 맞지 않는 추가 특성을 포함하는 추가 MFT 레코드입니다.파일이 충분히 조각화되어 있거나 스트림이 많거나 파일 이름이 길거나 보안이 복잡하거나 기타 희귀한 상황이 발생할 수 있습니다.
24 $Extend\$Quota 디스크 할당량 정보를 보유합니다.$O$Q라는 두 개의 인덱스 루트를 포함합니다.
25 $Extend\$ObjId 링크 추적 정보를 보유합니다.$O라는 인덱스 루트 및 할당이 포함되어 있습니다.
26 $Extend\$Reparse 재분석데이터(예: 기호 링크)를 보유합니다.$R이라는 인덱스 루트 및 할당이 포함되어 있습니다.
27– 일반 파일 항목의 시작입니다.

이러한 메타 파일은 Windows에서 특별하게 처리되며 직접 처리됩니다.NTFS.SYS드라이버는 직접 보기가 어렵습니다. 특수 용도로 제작된 도구가 필요합니다.[b]Windows 7의 경우 NTFS 드라이버는 사용자 액세스를 완전히 금지하므로 메타데이터 파일을 실행하려고 할 때마다 BsoD가 발생합니다.이러한 도구 중 하나가 마이크로소프트 "OEM 지원 도구"의 일부로 자유롭게 배포되는 nfi.exe("NTFS 파일 섹터 정보 유틸리티")입니다.예를 들어 "$MFT"-Master File Table Segment에 대한 정보를 얻으려면 다음 명령을 사용합니다.nfi.exe c:\$MFT[95] 이 제한을 무시하는 또 다른 방법은 7-Zip의 파일 관리자를 사용하여 하위 NTFS 경로로 이동하는 것입니다.\\.\X:\(어디에X:\모든 드라이브/ partition)와 유사합니다.여기에 3개의 새 폴더가 나타납니다.$EXTEND,[DELETED](7-Zip이 볼 파일 시스템에서 삭제된 파일을 첨부하는 데 사용하는 유사 폴더) 및[SYSTEM](모든 NTFS 메타데이터 파일을 포함하는 다른 유사 폴더).이 방법은 Windows(윈도우) 내의 이동식 장치(USB 플래시 드라이브, 외장 하드 드라이브, SD 카드 등)에서 사용할 수 있지만 활성 파티션에서 사용하려면 오프라인 액세스(즉, WinRE)가 필요합니다.

속성 목록, 속성 및 스트림

MFT 레코드에 기술된 각각의 파일(또는 디렉토리)에 대하여, 스트림 디스크립터(또한 명명된 속성)의 선형 저장소가 있고, 하나 이상의 MFT 레코드(소위 속성 리스트를 포함함)에 함께 팩킹되고, 모든 MFT 레코드의 고정된 1KB 크기를 채우기 위한 추가 패딩이 있습니다.파일과 관련된 효과적인 스트림을 완벽하게 설명합니다.

각 속성에는 속성 유형(파일 $AttrDef의 속성 정의에 고정 크기 정수 매핑), 선택적 속성 이름(예: 대체 데이터 스트림의 이름으로 사용) 및 바이트 시퀀스로 표시되는 값이 있습니다.NTFS의 경우 파일의 표준 데이터, 대체 데이터 스트림 또는 디렉터리의 인덱스 데이터가 속성으로 저장됩니다.

$AtrDef에 따르면 일부 속성은 상주 속성일 수도 있고 비거주 속성일 수도 있습니다.파일 데이터를 포함하는 $DATA 속성이 그러한 예입니다.속성이 레지던트(플래그로 표시됨)인 경우 해당 값은 MFT 레코드에 직접 저장됩니다.그렇지 않으면 데이터에 대해 클러스터가 할당되고 클러스터 위치 정보가 데이터가 속성에 실행됨에 따라 저장됩니다.

  • MFT의 각 파일에 대해 속성 유형, 속성 이름으로 식별되는 속성은 고유해야 합니다.또한 NTFS는 이러한 속성에 대해 몇 가지 주문 제약이 있습니다.
  • 하나의 MFT 레코드에서 속성 목록의 끝을 나타내는 데 사용되는 미리 정의된 null 속성 유형이 있습니다.레코드에 마지막 속성으로 존재해야 합니다(이후 사용 가능한 다른 모든 저장 공간은 무시되며 MFT의 레코드 크기와 일치하도록 패딩 바이트로 구성됩니다).
  • Null 속성 유형으로 표시된 사용되지 않은 레코드를 제외하고 일부 속성 유형은 필수이며 각 MFT 레코드에 존재해야 합니다.
    • $STANDARD_의 경우입니다.고정 크기 레코드로 저장되며 타임스탬프 및 기타 기본 단일 비트 속성(DOS 또는 Windows 9x에서 FAT로 관리되는 속성과 호환됨)을 포함하는 INFORMATION 특성.
  • 일부 특성 유형에는 이름이 있을 수 없으며 익명으로 유지해야 합니다.
    • 이는 표준 속성, 선호 NTFS "filename" 속성 유형 또는 "short filename" 속성 유형의 경우입니다(DOS와 유사한 응용 프로그램과의 호환성은 아래 참조).Windows 탐색기에 나열된 것처럼 파일에 짧은 파일 이름만 포함할 수도 있습니다. 이 경우 파일이 선호되는 파일 이름이 됩니다.
    • 속성 목록에 저장된 파일 이름 속성으로 인해 계층 파일 시스템을 통해 파일에 즉시 액세스할 수 없습니다.실제로 모든 파일 이름은 동일한 볼륨에 있는 적어도 하나의 다른 디렉토리에서 별도로 색인화되어야 합니다.거기에는 자체 MFT 레코드와 이 파일에 대한 MFT 레코드 번호를 참조하는 자체 보안 설명자 및 속성이 있어야 합니다.이를 통해 동일한 파일 또는 디렉토리를 동일한 볼륨의 여러 컨테이너에서 여러 번 "하드링크"할 수 있으며, 서로 다른 파일 이름을 사용할 수도 있습니다.
  • 일반 파일의 기본 데이터 스트림은 $DATA 형식이지만 익명의 이름을 가진 스트림이며, ADS는 유사하지만 이름이 지정되어야 합니다.
  • 반면, 디렉토리의 기본 데이터 스트림은 고유한 유형을 가지고 있지만 익명은 아닙니다. 즉, 색인 형식을 반영하는 속성 이름(NTFS 3+의 $I30")을 가지고 있습니다.

주어진 파일의 모든 속성은 Microsoft "OEM 지원 도구"의 일부로 자유롭게 배포되는 nfi.exe("NTFS 파일 섹터 정보 유틸리티")를 사용하여 표시할 수 있습니다.[95]

Windows 시스템 호출은 대체 데이터 스트림을 처리할 수 있습니다.[5]운영 체제, 유틸리티 및 원격 파일 시스템에 따라 파일 전송 시 데이터 스트림이 자동으로 분리될 수 있습니다.[5]파일을 복사하거나 이동하는 안전한 방법은 프로그램이 스트림을 열거하도록 허용하는 BackupRead 및 BackupWrite 시스템 호출을 사용하여 각 스트림을 대상 볼륨에 써야 하는지 확인하고 원하지 않는 스트림을 의도적으로 건너뛰는 것입니다.[5]

거주자 대 비거주자 속성

스토리지를 최적화하고 연관 값이 매우 작은 매우 일반적인 속성의 경우 I/O 오버헤드를 줄이기 위해 NTFS는 데이터가 포함된 클러스터를 나열하기 위해 MFT 레코드 공간을 사용하는 대신 속성 자체 내에 값을 두는 것을 선호합니다.이 경우 속성은 데이터를 직접 저장하지 않고 볼륨의 다른 곳에 저장된 실제 데이터를 가리키는 할당 맵(데이터 실행 형태)만 저장합니다.[96]속성 내에서 직접 값에 액세스할 수 있는 경우 "레지던트 데이터"(컴퓨터 포렌식 작업자에 의해)라고 합니다.적합한 데이터의 양은 파일의 특성에 크게 의존하지만, 파일 이름이 비길이이고 ACL이 없는 단일 스트림 파일에서는 700~800바이트가 일반적입니다.

  • 일부 특성(예: 기본 파일 이름, 기본 파일 특성)은 비거주자로 만들 수 없습니다.비거주자 속성의 경우 할당 맵이 MFT 레코드 내에 적합해야 합니다.
  • NTFS별 암호화, 희소 데이터 스트림 또는 압축 데이터 스트림은 상주시킬 수 없습니다.
  • 비거주자 속성에 대한 할당 맵의 형식은 희소 데이터 저장을 지원하는 기능에 따라 달라집니다.NTFS의 현재 구현에서는 비거주 데이터 스트림을 한 번 표시하고 스파스로 변환한 후에는 비거주 데이터로 다시 변경할 수 없으므로, 이 데이터를 완전히 잘라내지 않고 스파스 할당 맵을 완전히 폐기하지 않는 한 다시 거주 데이터가 될 수 없습니다.
  • 비거주자 속성이 너무 단편적이어서 유효한 할당 맵이 하나의 MFT 레코드 내에 모두 들어갈 수 없는 경우 NTFS는 속성을 여러 레코드에 저장합니다.그 중 첫 번째 것은 기본 레코드라고 하고 다른 것은 확장 레코드라고 합니다.NTFS는 특수 속성 $ATTRIVT_LIST를 생성하여 긴 속성의 다른 부분을 MFT 레코드에 매핑하는 정보를 저장합니다. 이는 할당 맵을 여러 레코드로 분할할 수 있음을 의미합니다.$ATTRIVT_LIST 자체도 비거주자일 수 있지만 자체 할당 맵은 하나의 MFT 레코드 내에 있어야 합니다.
  • 파일에 대한 속성(ADS, 확장 속성 또는 보안 설명자 포함)이 너무 많아 MFT 레코드 내에 모두 맞출 수 없는 경우 확장 레코드는 기본 MFT 레코드에 사용되는 형식과 동일한 형식을 사용하지만 하나의 MFT 레코드의 공간 제약 없이 다른 속성을 저장하는 데 사용될 수도 있습니다.

할당 맵은 압축 인코딩과 함께 데이터 실행 형태로 저장됩니다.각 데이터 런은 속성 값을 저장하는 연속된 클러스터 그룹을 나타냅니다.여러 GB 볼륨의 파일의 경우 각 항목을 5-7바이트로 인코딩할 수 있으며, 이는 1KB MFT 레코드가 이러한 데이터 실행을 약 100개 저장할 수 있음을 의미합니다.그러나 $ATTRIVT_LIST에도 크기 제한이 있으므로 NTFS 볼륨에 단일 파일 조각이 100만 개 이상 있는 것은 위험합니다. 따라서 일반적으로 10GB보다 큰 파일에 NTFS 압축을 사용하는 것은 좋지 않습니다.[97]

NTFS 파일 시스템 드라이버는 때때로 비거주자로 만들 수 있는 일부 속성의 데이터를 클러스터로 재배치하려고 시도하며, 우선 순위 및 선호 주문 규칙, 크기 제한에 따라 클러스터에 저장된 데이터를 MFT 레코드 내의 속성으로 다시 재배치하려고 시도합니다.

상주 파일이 클러스터("할당 단위")를 직접 차지하지 않으므로 NTFS 볼륨이 클러스터보다 더 많은 파일을 볼륨에 포함할 수 있습니다.예를 들어 74.5GB 파티션 NTFS 형식에 4KB 클러스터 19,543,064개가 포함됩니다.시스템 파일(64MB 로그 파일, 2,442,888바이트 비트맵 파일 및 약 25개의 고정 오버헤드 클러스터)을 빼면 19,526,158개의 클러스터에서 파일 및 인덱스를 사용할 수 없습니다.클러스터당 4개의 MFT 레코드가 있기 때문에 이론적으로 이 볼륨은 거의 4×19,526,158 = 78,104,632개의 상주 파일을 저장할 수 있습니다.

기회주의 잠금 장치

기회주의적 파일 잠금(oplock)을 통해 클라이언트는 성능을 향상시키고 네트워크 사용을 줄이기 위해 주어진 파일 또는 스트림에 대한 버퍼링 전략을 변경할 수 있습니다.[98]Oplock은 파일의 주어진 열린 스트림에 적용되며 다른 스트림의 Oplock에는 영향을 주지 않습니다.

잠금은 백그라운드에서 파일에 투명하게 액세스하는 데 사용할 수 있습니다.네트워크 클라이언트는 다른 프로세스가 데이터에 액세스하지 않는 경우 원격 서버의 파일에 정보를 쓰지 않을 수도 있고, 다른 프로세스가 데이터를 쓰지 않는 경우 미리 읽기 데이터를 버퍼링할 수도 있습니다.

윈도우는 네 가지 종류의 옵록을 지원합니다.

  • 레벨 2(또는 공유) oplock: 다수의 판독기, 기록기 없음(즉, 판독 캐싱).
  • 레벨 1(또는 독점) oplock: 임의 버퍼링(즉, 읽기 및 쓰기 캐싱)을 사용하는 독점 액세스.
  • Batch oplock (또한 배타적): 스트림은 서버에서 열리지만 클라이언트 컴퓨터에서는 닫힙니다 (즉, 읽기, 쓰기 및 캐싱 처리).
  • 필터 차단(전용): Windows 2000 이후로 다른 사용자가 동일한 스트림(즉, 읽기 및 쓰기 캐싱)에 액세스하려고 할 때 응용 프로그램 및 파일 시스템 필터가 "백아웃"될 수 있음

클라이언트별 잠금 키를 사용하여 Windows 7 및 Windows Server 2008 R2에서 기회주의 잠금 기능이 강화되었습니다.[99]

시간을

Windows NT와 그 하위 프로그램은 내부 타임스탬프를 UTC로 유지하고 표시 목적으로 적절한 변환을 수행합니다. 모든 NTFS 타임스탬프는 UTC에 있습니다.[citation needed]

역사적인 이유로 NTFS를 지원하지 않는 Windows 버전은 모두 내부적으로 시간을 로컬 존 시간으로 유지하므로 현재 Windows 버전에서 지원하는 NTFS를 제외한 모든 파일 시스템도 마찬가지입니다.즉, NTFS가 아닌 파티션과 NTFS가 아닌 파티션 사이에 파일을 복사하거나 이동할 때 OS는 즉시 타임스탬프를 변환해야 합니다.그러나 서머타임(DST)이 적용될 때 일부 파일이 이동되고 표준 시간이 적용될 때 다른 파일이 이동되는 경우 변환에 약간의 모호함이 있을 수 있습니다.그 결과, 특히 로컬 존 시간이 변경된 날짜 중 하나가 지난 직후에 사용자는 일부 파일에 1시간씩 잘못된 타임스탬프가 있다는 것을 확인할 수 있습니다.여러 관할 지역에서 DST를 구현하는 차이로 인해 12개월 동안 최대 4시간의 잠재적 타임스탬프 오류가 발생할 수 있습니다.[100]

참고 항목

메모들

  1. ^ a b c d e f g h i j 1바이트 = 8비트
    1KB = 1,024바이트
    1MB = 1,048,576바이트
    1GB = 1,073,741,824바이트
    1TB = 1,099,511,627,776바이트
    1 PB = 1,125,899,906,842,624바이트
    1 EB = 1,152,921,504,606,846,976바이트
  2. ^ Windows XP 이후로 이러한 파일의 목록을 보기가 매우 어렵습니다. 루트 디렉터리의 인덱스에는 파일이 존재하지만 Win32 인터페이스는 파일을 필터링합니다.NT 4.0에서 명령줄dir명령어는 루트 디렉터리에 메타 파일을 나열합니다./a지정했습니다.윈도우 2000에서는,dir /a작동을 멈췄지만,dir /a \$MFT일했다.

참고문헌

  1. ^ a b c Karresand, Martin; Axelsson, Stefan; Dyrkolbotn, Geir Olav (2019-07-01). "Using NTFS Cluster Allocation Behavior to Find the Location of User Data". Digital Investigation. 29: –51–S60. doi:10.1016/j.diin.2019.04.018. ISSN 1742-2876. S2CID 199004263.
  2. ^ a b "Glossary". [MS-EFSR]: Encrypting File System Remote (EFSRPC) Protocol. Microsoft. 14 November 2013.
  3. ^ "How NTFS Works". TechNet. Microsoft. 8 October 2009. Retrieved 2 December 2017.
  4. ^ "B*Trees - NTFS Directory Trees - Concept - NTFS Documentation". flatcap.org. Archived from the original on 2019-05-13. Retrieved 2019-05-13.
  5. ^ a b c d e f g "How NTFS Works". Windows Server 2003 Technical Reference. 2003-03-28. Retrieved 2011-09-12.
  6. ^ a b c d "Appendix A: Product Behavior". [MS-FSA]: File System Algorithms. Microsoft. 2018-09-12. Retrieved 2018-10-01. NTFS uses a default cluster size of 4 KB, a maximum cluster size of 64 KB on Windows 10 v1703 operating system and Windows Server 2016 and prior, and 2 MB on Windows 10 v1709 operating system and Windows Server 2019 and later, and a minimum cluster size of 512 bytes.
  7. ^ "Appendix A: Product Behavior". [MS-FSA]: File System Algorithms. Microsoft. 14 November 2013. Retrieved 2012-09-21.
  8. ^ a b Russon, Richard; Fledel, Yuval. "NTFS Documentation" (PDF). Archived (PDF) from the original on 2022-10-09. Retrieved 2011-06-26.
  9. ^ Rick Vanover (14 September 2011). "Windows Server 8 data deduplication". Archived from the original on 2016-07-18. Retrieved 2011-12-02.
  10. ^ "Cluster Size".
  11. ^ a b Custer, Helen (1994). Inside the Windows NT File System. Microsoft Press. ISBN 978-1-55615-660-1.
  12. ^ "NTFS3 — The Linux Kernel documentation". www.kernel.org. Retrieved 2021-12-02.
  13. ^ "ntfs-3g". www.freebsd.org. Retrieved 2021-12-02.
  14. ^ "How to Convert a Drive from FAT32 to NTFS without Data Loss". WindowsLoop. 11 July 2021. Retrieved 8 August 2021.
  15. ^ a b c cfsbloggers (July 14, 2006). "How restore points and other recovery features in Windows Vista are affected when dual-booting with Windows XP". The Filing Cabinet. Archived from the original on 2006-07-18. Retrieved 2007-03-21.
  16. ^ Kozierok, Charles (14 February 2018). "Overview and History of NTFS". The PC Guide. Retrieved May 30, 2019.
  17. ^ Custer, Helen (1994). Inside the Windows NT File System. Microsoft Press. p. vii. ISBN 978-1-55615-660-1.
  18. ^ "Recovering Windows NT After a Boot Failure on an NTFS Drive". Microsoft. November 1, 2006.
  19. ^ a b Russinovich, Mark (30 June 2006). "Inside Win2K NTFS, Part 1". MSDN. Microsoft. Retrieved 2008-04-18.
  20. ^ "What's New in Windows NT 4.0 Service Pack 4?". Microsoft.com. 12 January 1999. Archived from the original on 17 January 1999. Retrieved 17 August 2018.
  21. ^ "New Capabilities and Features of the NTFS 3.1 File System". Microsoft. 1 December 2007.
  22. ^ Loveall, John (2006). "Storage improvements in Windows Vista and Windows Server 2008" (PowerPoint). Microsoft. pp. 14–20. Retrieved 2007-09-04.
  23. ^ "Cluster Size".
  24. ^ "Booting from GPT". Rodsbooks.com. Retrieved 22 September 2018.
  25. ^ "NTFS vs FAT vs exFAT - NTFS.com". www.ntfs.com. Retrieved 2021-01-19.
  26. ^ "How to Convert FAT Disks to NTFS". Microsoft. 18 December 2017. Retrieved May 30, 2019.
  27. ^ "How to use Convert.exe to convert a partition to the NTFS file system". Microsoft Corporation. 2007-02-12. Retrieved 2010-12-26.
  28. ^ "FreeBSD 3.2 Release Notes". 17 May 1999. Retrieved 2020-06-15.
  29. ^ a b "mount_ntfs - OpenBSD manual pages". Retrieved 2020-06-15.
  30. ^ "Announcing NetBSD 1.5". 6 December 2000. Retrieved 2020-06-15.
  31. ^ "OpenBSD 4.9". Openbsd.com. Retrieved 22 September 2018.
  32. ^ a b "NTFS Credits and History". Linux-NTFS Project. Archived from the original on 2021-09-24. Retrieved 2021-09-24.
  33. ^ "Kernel development". lwn.net. 2 May 2002. Retrieved 2021-09-05.
  34. ^ "Release notes for v2.5.11". 29 April 2002. Retrieved 2021-09-05.
  35. ^ "2.6.15 changelog". Linux project. 3 January 2006. Retrieved 2021-09-05.
  36. ^ Anderson, Tim (2021-09-06). "GitHub merges 'useless garbage' says Linus Torvalds as new NTFS support added to Linux kernel 5.15". The Register. Retrieved 2021-09-07.
  37. ^ "OpenBSD adds fuse(4) support for adding file systems in userland". OpenBSD Journal. 2013-11-08. Retrieved 2013-11-08.
  38. ^ "NTFS-3G Stable Read/Write Driver". 2009-07-25.
  39. ^ "Tuxera NTFS for Mac". Tuxera. August 30, 2011. Retrieved September 20, 2011.
  40. ^ "Jan Kratochvil: Captive: The first free NTFS read/write filesystem for GNU/Linux". Retrieved 2020-06-15.
  41. ^ "About Tuxera". Retrieved 2020-06-15.
  42. ^ "10.6: Enable native NTFS read/write support". 1 October 2009. Archived from the original on 5 September 2021. Retrieved 5 September 2021.
  43. ^ "NTFS for Mac OS X, communication channel between Mac OS X and Windows". Paragon Software Group. Retrieved September 20, 2011.
  44. ^ "The Leader in Mass Data Storage Solutions Seagate US". Seagate.com. Archived from the original on February 10, 2011.
  45. ^ "NTFS plugin for NetDrive". ecsoft2.org. Retrieved 2020-09-09.
  46. ^ "NetDrive for OS/2". arcanoae.com. Retrieved 2020-09-09.
  47. ^ "Avira NTFS4DOS Personal". Archived from the original on June 19, 2010. Retrieved 2009-07-25.
  48. ^ "Download Avira NTFS4DOS Personal 1.9". Archived from the original on 10 November 2013. Retrieved 22 September 2018.
  49. ^ a b "How Security Descriptors and Access Control Lists Work". TechNet. Microsoft. Retrieved 4 September 2015.
  50. ^ Morello, John (February 2007). "Security Watch Deploying EFS: Part 1". Technet Magazine. Microsoft. Retrieved 2009-01-25.
  51. ^ "How EFS Works". Windows 2000 Resource Kit. Microsoft. 18 July 2012. Retrieved 25 February 2014.
  52. ^ "Windows 8 volume compatibility considerations with prior versions of Windows". Retrieved 2021-12-17.
  53. ^ "Change Journals". Microsoft Docs. 7 January 2021. Retrieved 2023-08-12.
  54. ^ "Creating, Modifying, and Deleting a Change Journal (Windows)". Microsoft Docs. 7 January 2021. Retrieved 2023-08-12.
  55. ^ "Chapter 29 – POSIX Compatibility". MS Windows NT Workstation 4.0 Resource Guide. Microsoft. 1995. Retrieved 21 October 2013.
  56. ^ "Hard Links and Junctions". MSDN. Microsoft. 12 October 2013. Retrieved 21 October 2013.
  57. ^ "MSDN – CreateHardLink function". Retrieved 14 January 2016.
  58. ^ Russinovich, Mark E.; Solomon, David A.; Ionescu, Alex (2009). "File Systems". Windows Internals (5th ed.). Microsoft Press. p. 921. ISBN 978-0-7356-2530-3. One component in Windows that uses multiple data streams is the Attachment Execution Service[...] depending on which zone the file was downloaded from [...] Windows Explorer might warn the user
  59. ^ Boyd, Christopher (26 October 2022). "Malformed signature trick can bypass Mark of the Web". Malwarebytes. Retrieved 2023-05-15.
  60. ^ DHB-MSFT (28 February 2023). "Macros from the internet are blocked by default in Office - Deploy Office". learn.microsoft.com. Retrieved 2023-05-15.
  61. ^ "Streams - Sysinternals". Microsoft Docs. 23 March 2021. Retrieved 12 August 2023.
  62. ^ "FileSystem Provider". Microsoft. 9 August 2012. Archived from the original on 23 January 2015. Retrieved 23 January 2015.
  63. ^ "Malware utilising Alternate Data Streams?". AusCERT Web Log. 21 August 2007. Archived from the original on 2011-02-23.
  64. ^ "File Compression and Decompression". MSDN Platform SDK: File Systems. Retrieved 2005-08-18.
  65. ^ "The Default Cluster Size for the NTFS and FAT File Systems". Microsoft. January 31, 2002. Retrieved 2012-01-10.
  66. ^ "How NTFS Works". 2003-03-28. Retrieved 2011-10-24.
  67. ^ Masiero, Manuel (2011-12-01). "Should You Compress Data On Your SSD?". Tom's Hardware. Bestofmedia Group. Retrieved 2013-04-05.
  68. ^ a b Middleton, Dennis. "Understanding NTFS Compression". Ntdebugging Blog. Microsoft. Archived from the original on 29 June 2011. Retrieved 2011-03-16.
  69. ^ "Shrinking the gap: carving NTFS-compressed files". Retrieved 2011-05-29.
  70. ^ "Disk Concepts and Troubleshooting". Microsoft. 11 September 2008. Retrieved 2012-03-26.
  71. ^ "[MS-XCA]: Xpress Compression Algorithm". 31 January 2023.
  72. ^ "wimlib: the open source Windows Imaging (WIM) library - Compression algorithm".
  73. ^ "Compact OS, single-instancing, and image optimization". Microsoft. Retrieved 1 October 2019.
  74. ^ a b c d Raymond Chen (18 June 2019). "What is WofCompressedData? Does WOF mean that Windows is a dog?". Microsoft DevBlogs.
  75. ^ Biggers, Eric (29 April 2019). "NTFS-3G plugin for reading "system compressed" files". GitHub. Retrieved 1 October 2019.
  76. ^ "Re: [ntfs-3g-devel] Experimental support for Windows 10 "System Compressed" files". SourceForge.net. Retrieved 1 October 2019.
  77. ^ "DISM Overview". 15 December 2021.
  78. ^ "Compact". 3 February 2023.
  79. ^ "Windows Image File Boot (WIMBoot) Overview". 10 March 2015.
  80. ^ "Sparse Files". MSDN. Microsoft. 12 October 2013. Retrieved 21 October 2013.
  81. ^ Kandoth, Suresh B. (4 March 2009). "Sparse File Errors: 1450 or 665 due to file fragmentation: Fixes and Workarounds". CSS SQL Server Engineers. Microsoft. Archived from the original on 21 October 2013. Retrieved 21 October 2013.
  82. ^ "Sparse Files and Disk Quotas". MSDN Library. Microsoft. 12 October 2013. Retrieved 21 October 2013.
  83. ^ "Transactional NTFS". MSDN. Microsoft. Archived from the original on 2007-02-21. Retrieved 2007-02-02.
  84. ^ "Transactional NTFS (TxF)". Microsoft Docs. Microsoft. 20 July 2022. Retrieved 12 August 2023.
  85. ^ "Unable to open content synced in a OneDrive folder on an external drive". Microsoft Support. Retrieved 2021-04-03.
  86. ^ André, Jean-Pierre (March 1, 2019). "NTFS-3G: Junction Points, Symbolic Links and Reparse Points". jp-andre.pagesperso-orange.fr.
  87. ^ "Chapter 18 – Choosing a File System". MS Windows NT Workstation 4.0 Resource Guide. Microsoft. 20 February 2014. Retrieved 25 February 2014.
  88. ^ "Naming Files, Paths, and Namespaces". MSDN. Microsoft. Naming Conventions. Retrieved 25 February 2014.
  89. ^ "NTFS. Partition Boot Sector". Ntfs.com. Retrieved 22 September 2018.
  90. ^ "Boot Sector". Technet.microsoft.com. September 11, 2008. Table 1.13 BPB and Extended BPB Fields on NTFS Volumes. Retrieved 22 September 2018.
  91. ^ "Master File Table". MSDN. July 2, 2012.
  92. ^ "Forensics: What is the MFT Mirror?". Where is Your Data?. 2009-06-05. Retrieved 2021-07-30.
  93. ^ "NTFS Master File Table (MFT)". Ntfs.com. Retrieved 22 September 2018.
  94. ^ Schwarz, Thomas. "COEN 252 Computer Forensics NTFS". Faculty of Organization and Informatics University of Zagreb. Archived from the original on 2021-02-27. Retrieved May 30, 2019.
  95. ^ a b "OEM Support Tools Phase 3 Service Release 2 Availability". Microsoft Corporation. 2007-02-21. Archived from the original on 2015-02-23. Retrieved 2010-06-16. Windows NT File System (NTFS) File Sector Information Utility ... A tool used to dump information about an NTFS volume
  96. ^ "The Four Stages of NTFS File Growth". Archived from the original on 23 September 2018. Retrieved 22 September 2018.
  97. ^ "A heavily fragmented file in an NTFS volume may not grow beyond a certain size". Archived from the original on 2021-05-06. Retrieved 2021-05-19.
  98. ^ "How Oplocks function in the Windows Environment: Overview". Archived from the original on 2010-08-23. Retrieved 2018-12-19.
  99. ^ "What's New in NTFS". Technet.microsoft.com. 2 July 2012. Retrieved 22 September 2018.
  100. ^ Gilligan, Jonathan (28 May 2001). "Beating the Daylight Saving Time bug and getting correct file modification times". The Code Project.

추가열람

외부 링크