在NTFS文件系統(tǒng)下,所有的數(shù)據(jù)都以“文件“的形式存放在磁盤上,包括NTFS用來記錄普通文件信息的“原數(shù)據(jù)“(metadata),每個文件都在一個特殊的$MFT(Master File Table)文件中至少有一個“文件記錄”(File Record),每個file record的大小是固定的1024字節(jié)。
那么如何知道某個文件所在$MFT中的位置呢?這個就是由一個file reference來給出的。 附件中的程序,可以輸出一個普通文件(包括目錄)所在$MFT中的索引(MFT index number),以及$MFT的這個位置被重用的次數(shù)(MFT sequence number)。在同一個NTFS分區(qū)下,這兩個32bit整數(shù)合起來(LONGLONG) 就構(gòu)成了文件的唯一標(biāo)示,在Win32中通常稱為File Id,而在NTFS的術(shù)語就是File Reference. 當(dāng)一個文件被刪除時,他在$MFT中的file record被標(biāo)為可用,因此如果有新的文件創(chuàng)建, NTFS就會重用這個位置的file record并且將這個file record的MFT sequence number加1 (當(dāng)然MFT index number)還是不變的。
雖然一個file record被標(biāo)為可用,但這1024字節(jié)只能作為$MFT中的一個file record來使用所以NTFS并不把它作為一個可分配的空間,這樣當(dāng)一個NTFS分區(qū)中文件的個數(shù)很多,而這些文件又被刪除后,磁盤空間并沒有顯著的增加。(*) Windows自帶的磁盤整理工具并不reclaim這部分空間, 而一些3rd-party磁盤整理工具可以“釋放”這些$MFT中未使用的file record,但是一個file record只占用1024字節(jié),估計(jì)效果不會太明顯。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。