
Pendahuluan: Apa Itu NTFS?
NTFS (New Technology File System) adalah sistem file proprietary yang dikembangkan oleh Microsoft dan digunakan secara luas pada sistem operasi Windows modern. NTFS adalah sistem file hierarkis, yang berarti ia menyimpan data dalam struktur pohon bertingkat, dengan file dan folder yang diorganisasikan ke dalam direktori. Hetman Software
Salah satu keunggulan paling menonjol dari NTFS dibandingkan sistem file lainnya adalah fleksibilitas dalam penyimpanan data. Berbeda dengan kebanyakan sistem file lain, NTFS tidak memiliki struktur tetap yang terikat pada alamat fisik tertentu di HDD. Tidak seperti FAT, NTFS tidak memiliki area khusus yang didedikasikan untuk struktur sistem, tabel file, atau data. Dalam NTFS, seluruh sistem file dianggap sebagai area data, sehingga file apapun dapat disimpan di bagian manapun dari volume. Hetman Software
Struktur sistem file NTFS terdiri dari Master File Table (MFT) yang berisi informasi tentang setiap file dan folder di disk, sebuah Log File yang mencatat perubahan yang dilakukan pada disk, serta Root Directory yang merupakan direktori tingkat teratas dari disk. Hetman Software
Bagian 1: Master File Table ($MFT)
Pengertian MFT
Bahkan metadata pun disimpan sebagai sekumpulan file dalam NTFS. Master File Table (MFT) adalah indeks dari setiap file yang ada di volume. Untuk setiap file, MFT menyimpan sekumpulan catatan yang disebut atribut, dan setiap atribut menyimpan jenis informasi yang berbeda. Deskripsi setiap file dikemas ke dalam FILE records. Flatcap
MFT memastikan pengambilan file yang efisien dengan mengindeks detail lengkap untuk setiap file yang tersimpan dalam volume NTFS. MFT mengorganisasikan file records dengan pengidentifikasi akses cepat, memungkinkan sistem untuk menemukan dan menyatukan kembali fragmen-fragmen file dengan cepat. Lenovo
Fungsi MFT dalam Manajemen File
MFT berperan sentral dalam manajemen metadata, karena ia mencatat semua informasi penting tentang file dan direktori. Informasi ini mencakup kepemilikan file, izin akses, cap waktu (timestamps), dan atribut detail. Dengan memiliki metadata yang mudah diakses, NTFS dapat menjalankan tugas-tugas seperti verifikasi akses, pelacakan audit, dan pengindeksan yang efisien. Lenovo
MFT menangani file berukuran besar dengan memecahnya menjadi fragmen-fragmen kecil dan menggunakan pointer untuk melacak lokasinya. Alih-alih memerlukan penyimpanan yang berdekatan, NTFS memungkinkan fragmen-fragmen tersebar di seluruh disk. MFT menyimpan peta fragmen-fragmen ini, menghubungkannya untuk rekonstruksi yang mulus saat file diakses. Lenovo
Cadangan MFT (MFT Mirror)
Jika record pertama MFT rusak, NTFS membaca record kedua untuk menemukan file MFT mirror, yang record pertamanya identik dengan record pertama MFT. Lokasi segmen data untuk MFT dan file MFT mirror dicatat dalam boot sector. NTFS
MFT memiliki ruang yang dicadangkan untuk ekspansi di masa mendatang. MFT records 12 hingga 15 ditandai sebagai sedang digunakan tetapi kosong. MFT records 16 hingga 23 ditandai sebagai tidak digunakan dan tidak pernah digunakan. Di bawah Windows, MFT tidak dapat menyusut saat sistem sedang berjalan. Flatcap
Bagian 2: File Record — Struktur Catatan File
Pengertian File Record
File Record adalah komponen inti dari MFT. Setiap file atau direktori di volume NTFS diwakili oleh setidaknya satu File Record di dalam $MFT. Untuk file yang menggunakan lebih dari satu File Record, record pertama disebut Basic File Record (Record File Dasar), sedangkan sisanya disebut Extended File Record (Record File Diperluas).
MFT dalam NTFS diorganisasikan sebagai struktur berbasis record, di mana setiap file dan direktori direpresentasikan oleh record berukuran tetap sebesar 1024 byte. Setiap MFT record dimulai dengan File Record Header yang menempati 42 byte pertama, yang mencakup elemen-elemen seperti link count (menunjukkan jumlah direktori yang merujuk ke file), status alokasi, dan flag yang menentukan apakah entri tersebut untuk file atau direktori dan apakah sedang digunakan atau sudah dihapus. ScienceDirect
Sebuah FILE Record dibangun dari sebuah header, sejumlah atribut dengan panjang variabel, dan sebuah penanda akhir (end marker) bernilai 0xFFFFFFFF. Flatcap
Format Header File Record
Berikut adalah tabel lengkap format header File Record dalam NTFS:
| Nama Field | Offset | Ukuran | Keterangan |
| FR_Sign | 0 | 4 byte | Tanda tangan record; nilai: ‘FILE’ |
| FR_USOff | 4 | 2 byte | Offset nomor urutan pembaruan (M), relatif terhadap kepala file record |
| FR_USNSz | 6 | 2 byte | Jumlah nomor urutan pembaruan ditambah 1 (N) |
| FR_LSN | 8 | 8 byte | Nomor urutan log file; nilainya berubah setiap kali record dimodifikasi |
| FR_SN | 0x10 | 2 byte | Nomor urutan pembaruan ulang (bertambah satu setiap dihapus) |
| FR_LnkCnt | 0x12 | 2 byte | Jumlah referensi isi record file ini; nilai ini hanya digunakan untuk dokumentasi dasar |
| FR_USAOff | 0x14 | 2 byte | Offset data atribut pertama |
| FR_Flags | 0x16 | 2 byte | Tanda/Flag; nilai yang mungkin: 0x0001 = record sedang digunakan, 0x0002 = file katalog/direktori |
| FR_Size | 0x18 | 4 byte | Ukuran record saat ini |
| FR_AllocSz | 0x1C | 4 byte | Ukuran ruang yang dialokasikan untuk record saat ini |
| FR_BaseFR | 0x20 | 8 byte | Indeks basic file record dari record saat ini. Jika record saat ini adalah basic file record, nilainya 0. Jika tidak, indeks menunjuk ke basic file record. Catatan: 6 byte bawah = nomor record MFT, 2 byte atas = nomor urutan record MFT |
| FR_NxtAttrId | 0x28 | 2 byte | ID atribut berikutnya. ID yang akan diberikan pada atribut yang ditambahkan berikutnya ke file record; nilainya bertambah setiap kali atribut ditambahkan; nilai dikosongkan saat record digunakan ulang; nilai pertama selalu 0 |
| FR_Resvd | 0x2A | 2 byte | Dicadangkan (ditambahkan pada XP, versi 3.1+) |
| FR_NumOfFR | 0x2C | 4 byte | Nomor record MFT (ditambahkan pada XP, versi 3.1+) |
| FR_USN | M | 2 byte | Nomor ID urutan. Nilainya dicatat setiap kali file record dimodifikasi; bertambah 1 setiap modifikasi (termasuk operasi hapus). Nilai ini tidak boleh 0 |
| FR_USA | M+2 | (N-1) × 2 | Ruang yang ditempati oleh nilai urutan |
Bagian 3: Update Sequence Number (USN)
Penjelasan Konsep USN
Update Sequence Number (USN) adalah teknologi yang dikembangkan Microsoft untuk menjamin keandalan data yang dicatat dalam volume NTFS. Dalam volume NTFS, semua jenis catatan data (FR, IR) disejajarkan dengan ukuran sektor (512 byte). Ketika melindungi data yang sedang dicatat, sebuah nilai pemeriksaan ditulis pada dua byte terakhir dari setiap blok 512-byte dalam record, untuk memastikan bahwa semua data telah ditulis dengan benar ke disk. mrtlab
Cara Kerja USN
Nilai checksum (nilai pemeriksa) disalin ke dalam header record ke dalam blok data yang disebut USA (Update Sequence Array). Saat sistem membaca data record dari disk ke memori, sistem akan memeriksa apakah nilai checksum di setiap header record sama dengan nomor urutan. Jika sama, data di posisi verifikasi dipulihkan menggunakan nilai USA. Jika tidak sama, ini menandakan bahwa record tidak dimodifikasi dengan benar — kemungkinan akibat gangguan daya atau kerusakan disk.
Setiap kali data record ditulis, nomor urutan akan bertambah. Jika nomor urutan mencapai nilai 0, nilainya digabungkan dengan 1 (tidak pernah bernilai 0 saat aktif).
Bagian 4: Virtual Cluster Number (VCN) dan Logical Cluster Number (LCN)
Virtual Cluster Number (VCN)
Setiap data non-residen dalam sebuah data stream memiliki nomor urutan cluster tertentu. Nomor urutan ini disebut Virtual Cluster Number (VCN). VCN 0 merujuk pada cluster pertama dari data stream tersebut. VCN digunakan untuk mengidentifikasi posisi data dalam konteks sebuah file secara logis.
Logical Cluster Number (LCN)
Setiap volume memiliki nomor cluster tertentu yang disebut Logical Cluster Number (LCN). LCN 0 merujuk pada cluster pertama volume tersebut (boot sector). LCN digunakan untuk mengidentifikasi posisi fisik cluster di dalam volume secara keseluruhan.
Bagian 5: Deskripsi Data Stream
Pengertian Data Stream
Interval yang disimpan dalam cluster disebut atribut data stream. Setiap stream dideskripsikan menggunakan nomor cluster awal dan ukurannya. Nomor cluster awal dari stream tertentu merupakan nilai offset bertanda (signed) relatif terhadap stream sebelumnya.
Bagian 6: Contoh Deskripsi Stream
Contoh 1: Stream Normal (Non-Compressed)
Berikut adalah contoh deskripsi empat stream file normal:
Stream 1: SD_Desc = 21 (offset 2 byte, ukuran 1 byte)
- SD_Size = 0x20 cluster
- SD_Off = 0x5ED
- Offset = 0x5ED, Panjang = 0x20
Stream 2: SD_Desc = 22 (offset 2 byte, ukuran 2 byte)
- SD_Size = 0x748 cluster
- SD_Off = 0x2248
- Offset = 0x2835 (0x2248 + 0x5ED), Panjang = 0x748
Stream 3: SD_Desc = 21 (offset 2 byte, ukuran 1 byte)
- SD_Size = 0x28 cluster
- SD_Off = 0xDBC8
- Offset = 0x3FD (0x2835 + 0xFFFFDBC8), Panjang = 0x28
Stream 4: SD_Desc = 0 → Penanda akhir deskripsi
Ringkasan lokasi penyimpanan:
- 0x20 cluster disimpan mulai dari nomor cluster 0x5ED
- 0x748 cluster disimpan mulai dari nomor cluster 0x2853
- 0x28 cluster disimpan mulai dari nomor cluster 0x3FD
Contoh 2: Stream Terkompresi (Compressed Stream)
Untuk file terkompresi atau file sparse, format deskripsi stream sedikit berbeda. Stream dengan offset 0 byte (SD_Desc bit tinggi = 0) menandakan cluster yang tidak dialokasikan atau sparse (ruang kosong virtual).
Stream 1: SD_Desc = 11 → Offset = 0x40, Panjang = 0x08 Stream 2: SD_Desc = 01 → Sparse (8 cluster tidak dialokasikan) Stream 3: SD_Desc = 11 → Offset = 0x48 (0x40+0x08), Panjang = 0x10 Stream 4: SD_Desc = 11 → Offset = 0x58 (0x48+0x10), Panjang = 0x0C Stream 5: SD_Desc = 01 → Sparse (4 cluster tidak dialokasikan) Stream 6: SD_Desc = 0 → Penanda akhir stream
Ringkasan:
- 0x08 cluster disimpan mulai dari cluster nomor 0x40
- 0x08 cluster sparse (ruang tidak dialokasikan)
- 0x10 cluster disimpan mulai dari cluster nomor 0x48
- 0x0C cluster disimpan mulai dari cluster nomor 0x58
- 0x04 cluster sparse (ruang tidak dialokasikan)
Bagian 7: Mengapa NTFS Penting untuk Pemulihan Data?
Memahami struktur internal NTFS sangat krusial bagi para teknisi pemulihan data. Master file table mengalokasikan sejumlah ruang tertentu untuk setiap file record. Atribut-atribut sebuah file ditulis ke ruang yang dialokasikan dalam MFT. File dan direktori kecil (biasanya 512 byte atau lebih kecil) dapat sepenuhnya terkandung dalam master file table record. Desain ini membuat akses file menjadi sangat cepat. NTFS
Ketika terjadi kerusakan sistem file — misalnya akibat virus, mati listrik mendadak, atau bad sector — pemulihan data pada volume NTFS bergantung sepenuhnya pada kemampuan membaca dan menafsirkan struktur MFT secara manual. Dengan memahami offset, ukuran, dan fungsi setiap field dalam File Record Header, seorang teknisi dapat:
- Mengidentifikasi file yang masih ada vs. yang sudah dihapus (melalui field FR_Flags)
- Melacak lokasi fisik data di disk (melalui VCN dan LCN)
- Memverifikasi integritas data menggunakan mekanisme USN
- Merekonstruksi struktur direktori meski sebagian MFT rusak
Penutup
Spesifikasi sistem file NTFS merupakan fondasi penting yang harus dipahami oleh setiap teknisi pemulihan data maupun administrator sistem Windows. Dengan memahami cara kerja MFT, File Record Header, Update Sequence Number, Virtual Cluster Number, dan Data Stream, proses analisis dan pemulihan data dari volume NTFS yang rusak dapat dilakukan secara lebih terarah dan efektif.
Daftar Sumber / Referensi
- MRT Lab — NTFS Standard One: File System Specification https://us.mrtlab.com/filesystem/NTFS-standard-one.html
- Lenovo — Master File Table (MFT) in NTFS: Structure, Functions & File Management https://www.lenovo.com/us/en/glossary/mft/
- Hetman Software — Exploring File Handling in the NTFS System https://hetmanrecovery.com/recovery_news/ntfs-file-system-structure.htm
- ScienceDirect — Master File Table — An Overview https://www.sciencedirect.com/topics/computer-science/master-file-table
- NTFS.com — NTFS Master File Table (MFT) http://ntfs.com/ntfs-mft.htm
- FlatCap — Linux NTFS Documentation — File Record Concept https://flatcap.github.io/linux-ntfs/ntfs/concepts/file_record.html
- FlatCap — Linux NTFS Documentation — $MFT (File Index) https://flatcap.github.io/linux-ntfs/ntfs/files/mft.html
- Richard Russon & Yuval Fledel — NTFS Documentation (PDF) https://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

