Windows(또는 NTFS)는 가짜 크기의 자리 표시자 파일을 지원합니까?

Windows(또는 NTFS)는 가짜 크기의 자리 표시자 파일을 지원합니까?

Photoshop을 시작할 때마다 캐시가 있는 하드 드라이브에 즉시 2GB 임시 파일이 생성됩니다. 플래터 드라이브이므로 일반적으로 2GB의 데이터를 쓸 때 발생하는 하드 드라이브 소음이 전혀 들리지 않습니다. 나중에 일부 데이터를 실제로 캐시해야 하는 경우를 대비해 공간을 예약하기 위해 "가짜" 크기의 빈 자리 표시자 파일을 만드는 것이 가능합니까?

답변1

NTFS 볼륨에서 이 작업을 수행할 수 있는 방법에는 두 가지가 있습니다.

그만큼SetEndOfFile기능, NTFS 파일 시스템에서 파일용 디스크 공간을 예약하지만 해당 공간을 아무것도 채우지 않습니다. NTFS 장부 업데이트로 인해 약간의 디스크 활동이 있을 수 있습니다. 프로그램이 이전에 기록된 마지막 바이트를 지나서 파일에 어떤 작업을 수행하면 NTFS는 마지막으로 기록된(마지막 "유효한") 바이트와 요청된 바이트 사이의 실행을 낙서합니다.보안 문제) 유효한 데이터 포인터를 업데이트합니다.

그럼 거기에스파스 파일. 로 확장된 일반 파일과 달리 SetEndOfFileNTFS는 유효한 데이터가 있는 마지막 바이트가 아닌 실제 데이터가 있는 섹터를 추적합니다. 아무것도 기록되지 않은 장기간의 0은 물리적 디스크에 저장되지 않습니다.

fsutil sparse queryflag파일 경로를 통해 파일이 희박한지 여부를 확인할 수 있습니다 . 희박하지 않은 경우 프로그램은 첫 번째 접근 방식을 사용합니다.

추가 자료:단일 바이트 쓰기에 시간이 오래 걸리는 이유는 무엇입니까?

답변2

예, 이것을 "스파스 파일"이라고 합니다.

NTFS와 ReFS는 이를 지원하지만 FAT32와 ExFAT는 지원하지 않습니다.

프로그램은 디스크에 공간이 있어야 하는 파일의 바이트 범위를 OS에 명시적으로 알려줄 수 있습니다(기본적으로 이것이 전부입니다). 할당되지 않은 다른 부분은 프로그램에서 읽을 경우 값이 0인 많은 바이트를 포함하는 것처럼 처리됩니다.

파일 속성 대화 상자에는 "가짜" 파일인 "일반" 파일 크기와 할당된 부분인 디스크에서 사용되는 크기(전체 HDD 블록을 얻기 위한 일부 바이트 포함)가 표시됩니다.

또한 참조하십시오https://en.wikipedia.org/wiki/Sparse_file

답변3

내장 도구fsutil을 사용하면 0으로 가득 찬 비희소 파일을 빠르게 만들 수 있습니다 fsutil file createNew <filename> <bytes>. 디스크 공간을 차지하지만 0 블록에 쓸 필요는 없습니다(NTFS 또는 이와 유사한 것을 사용한다고 가정).

다음은 10GB 파일을 생성하는 예입니다. 하드 디스크 여유 공간은 10GB 감소하지만 작업은 매우 빠르게 수행됩니다.

C:\>fsutil file createNew dummy 10737418240
File C:\dummy is created

C:\>fsutil sparse queryFlag dummy
This file is NOT set as sparse

관련 정보