
오늘, 나는 그것을 발견했다마스터 파일 테이블 자체가 파일입니다.. 하지만 해당 파일에는 경로가 없으므로 열거나 삭제하거나 수정할 수 없습니다. 그렇다면 그것이 파일이라면 파티션도 파일일까요? NTFS 파일을 정의하는 것은 무엇입니까?
답변1
MFT에 대한 경로는 \$Mft
- 미러는 입니다 \$MftMirr
. Windows에서는 실행 중 항목을 나열하거나 열거나 수정할 수 없지만 일부 도구(예: EnCase)에서 볼륨을 보면 표시됩니다.
NTFS 문서에서는 이를 "메타파일." 파일 이름은 파일 테이블에서 차지하는 위치(예: $Mft
디스크의 파일 번호 1)보다 Windows에 덜 중요합니다. 이는 Windows가 메타파일의 내용 없이는 이름으로 파일을 찾을 수 없기 때문에 의미가 있습니다. NTFS API에는 파일 번호로만 파일에 액세스하는 방법이 있을 수 있습니다(Linux에서 이름 대신 "inode" 번호로 파일을 여는 것과 비슷함).
답변2
하지만 해당 파일에는 경로가 없으므로 열거나 삭제하거나 수정할 수 없습니다.
ReadFile()을 호출하여 파일 이름을 지정할 수 있습니다.$MFT. 영형
NTFS 파일을 정의하는 것은 무엇입니까?
기술적으로는 비트 스트림입니다. 따라서 부트 섹터를 포함한 디스크의 모든 것은파일. 파티션은 실제로 파일이 아닙니다. 실제로는 파티션 자체를 여는 것이 아니라 파티션에 있는 파일을 여는 것입니다.
여기서는 Microsoft의 말을 인용하겠습니다.
시스템 부트스트랩 코드 및 디렉터리를 포함한 모든 파일 시스템 데이터는 NTFS 파일 시스템에 의해 파일에 저장됩니다.
http://msdn.microsoft.com/en-us/library/windows/desktop/aa364056(v=vs.85).aspx
답변3
아래는 저널링 등으로 NTFS를 확장한 매우 단순한 모습입니다.
파티션볼륨에 사용할 디스크 영역을 정의하는 테이블의 항목입니다. 그들은 살아있는 데이터 구조입니다밖의파일 시스템이며 BIOS 및 OS에서 디스크에 항목이 저장되는 방식을 구성하는 데 사용됩니다.
NTFS 볼륨NTFS 파일 시스템의 핵심에 마스터 파일 테이블을 포함합니다. 이는 운영 체제가 저장소를 구조화하고 볼륨에 포함된 파일에 대한 메타데이터를 저장하기 위해 열고 사용하는 파일입니다. 디스크의 각 파일에는 마스터 파일 테이블에 레코드 항목이 있으며 충분히 작은 경우 MFT 내에 완전히 존재합니다.
더 큰 파일은 파일 레코드 항목이 가리키는 범위입니다.
디렉토리는 파일 레코드 항목에 대한 색인 정보를 포함하는 파일이며 충분히 작은 경우 MFT 내에 완전히 존재합니다.
작은 파일이 MFT에 완전히 존재할 수 있고 볼륨에 많은 파일과 디렉터리가 있을 수 있다는 사실로 인해 MFT는 저장 공간을 늘리기 위해 조각화될 수도 있습니다(특정 사전 설정된 영역으로 제한되는 FAT와는 달리).