
Pendahuluan
Flash drive USB (sering disebut USB flashdisk atau thumb drive) adalah salah satu media penyimpanan yang paling banyak digunakan di seluruh dunia. Di balik kemudahannya yang tampak sederhana — colok, simpan, cabut — tersimpan sebuah struktur data yang sangat terorganisir dan kompleks. Struktur inilah yang memungkinkan sistem operasi mengetahui di mana letak setiap file, berapa ukurannya, kapan dibuat, dan bagaimana cara membacanya kembali.
Data dalam USB dapat dibagi menjadi 5 bagian berdasarkan fitur dan fungsinya yang berbeda-beda, yaitu: area MBR, area DBR, area FAT, area FDT, dan area DATA. mrtlab
Memahami kelima area ini bukan hanya penting bagi pengembang sistem atau teknisi forensik digital, tetapi juga sangat krusial bagi siapa pun yang ingin memulihkan data dari flashdisk yang rusak atau tidak terbaca. Artikel ini menjelaskan setiap area tersebut secara mendalam, dilengkapi dengan struktur data, formula kalkulasi, dan konteks teknis yang relevan.
Gambaran Umum: Lima Area Utama Sistem File USB
Sebelum masuk ke detail masing-masing area, berikut gambaran besar bagaimana kelima area tersebut tersusun secara berurutan di dalam media penyimpanan:
┌─────────────────────────────────────────────────────────┐
│ MBR Area │ DBR Area │ FAT Area │ FDT Area │ DATA │
│ (Sektor 0) │ │ (FAT1+FAT2)│ │ Area │
└─────────────────────────────────────────────────────────┘
| Area | Nama Lengkap | Fungsi Utama |
| MBR | Master Boot Record | Tabel partisi & kode boot awal |
| DBR | DOS Boot Record | Parameter sistem file & kode boot OS |
| FAT | File Allocation Table | Peta penggunaan cluster di seluruh disk |
| FDT | File Directory Table | Direktori & metadata semua file |
| DATA | Data Area | Isi/konten file yang sebenarnya |
Bagian 1: Area MBR (Master Boot Record)
Pengertian dan Lokasi
Nomor sektor absolut MBR adalah: MBR_LBA = 0x00000000, yaitu master boot record yang setara dengan posisi hard drive di silinder 0, track 0, sektor 1. mrtlab
MBR selalu berada di sektor pertama (sektor 0) dari media penyimpanan. Ini adalah titik awal yang pertama kali dibaca oleh BIOS atau UEFI saat sistem dinyalakan atau saat media baru terhubung.
Struktur Internal MBR
Dalam total 512 byte sektor boot utama, MBR hanya menempati 446 byte (offset 0 hingga 0x1BD). Sebanyak 64 byte (offset 0x1BE hingga 0x1FD) dialokasikan untuk DPT (Disk Partition Table/Tabel Partisi Disk). Dua byte terakhir “55 AA” (offset 0x1FE hingga 0x1FF) menandai akhir partisi. mrtlab
Ringkasnya, komposisi 512 byte MBR adalah:
| Offset | Ukuran | Isi |
| 0x000 | 446 byte | Kode boot (Boot Code) |
| 0x1BE | 64 byte | Tabel Partisi (4 entri × 16 byte) |
| 0x1FE | 2 byte | Tanda Akhir: 0x55AA |
Struktur Tabel Partisi (Partition Table)
Tabel partisi berisi 4 entri, masing-masing mendeskripsikan satu partisi. Setiap entri memiliki struktur sebagai berikut:
c
typedef struct {
uchar BootFlag; // Tanda aktif: 0x80 = partisi aktif/bootable
CHS StartCHS; // Silinder, head, sektor awal partisi
uchar SystemID; // Tipe sistem file partisi
CHS EndCHS; // Silinder, head, sektor akhir partisi
ulong RelativeSectors; // Nomor sektor relatif awal partisi
ulong TotalSectors; // Total jumlah sektor dalam partisi
} PartitionTable;
Kode Tipe Sistem File (System ID) yang Umum
| Kode | Tipe Sistem File |
| 0x01 | FAT12 |
| 0x04 | FAT16 (< 32MB) |
| 0x06 | FAT16 Besar (BigFAT16) |
| 0x0B | FAT32 |
| 0x07 | NTFS |
| 0x0C | FAT32 dengan LBA |
| 0x82 | Linux Swap |
| 0x83 | Linux Native (ext2/ext3/ext4) |
Contoh Nyata Pembacaan Tabel Partisi
Berikut contoh data tabel partisi: 80 01 01 00 0B FC FE BF 3F 00 00 00 7E 86 BB 00
- 80 adalah tanda aktif partisi, artinya sistem dapat boot dari partisi ini.
- 01 01 00 menunjukkan head awal partisi nomor 01, sektor awal nomor 01, nomor silinder awal adalah 00.
- 0B berarti tipe sistem partisi adalah FAT32.
- FE BF FC menunjukkan head akhir partisi nomor 254, sektor akhir partisi nomor 63, nomor silinder akhir partisi 764.
- 3F 00 00 00 menunjukkan nomor sektor relatif sektor pertama adalah 63.
- 7E 86 BB 00 mewakili total jumlah sektor sebesar 12.289.622. mrtlab
Bagian 2: Area DBR (DOS Boot Record / System Boot Record)
Pengertian dan Lokasi
Nomor sektor absolut DBR adalah: DBR_LBA = MBR.PT[0].RelativeSectors. DBR setara dengan posisi hard disk di silinder 0, track 1, sektor 1 (512 byte). Ini adalah sektor pertama yang dapat diakses langsung oleh sistem operasi, yang mencakup program boot dan satu catatan parameter partisi yang disebut BPB (Bios Parameter Block). mrtlab
Fungsi Utama DBR
Tugas utama program boot adalah ketika MBR mentransfer kontrol sistem kepadanya, untuk menentukan apakah dua file pertama dengan direktori partisi adalah file boot sistem operasi. BPB mencatat sektor awal partisi, sektor akhir partisi, format penyimpanan file, deskriptor media hard disk, ukuran direktori root, jumlah FAT, dan ukuran unit alokasi. mrtlab
Struktur DBR (BPB — BIOS Parameter Block)
c
typedef struct {
uchar bJmpBoot[3]; // Ofs 0x00: Instruksi lompat (khas: 0xEB, 0x3E, 0x90)
char bOEMName[8]; // Ofs 0x03: Nama OEM (khas: “MSWIN4.1”)
uint BPB_wBytesPerSec; // Ofs 0x0B: Jumlah byte per sektor
uchar BPB_bSecPerClus; // Ofs 0x0D: Jumlah sektor per cluster
uint BPB_wReservedSec; // Ofs 0x0E: Sektor cadangan (dari DBR ke FAT)
uchar BPB_bNumFATs; // Ofs 0x10: Jumlah tabel FAT
uint BPB_wRootEntry; // Ofs 0x11: Jumlah entri direktori root
uint BPB_wTotalSec; // Ofs 0x13: Total sektor partisi (< 32MB)
uchar BPB_bMedia; // Ofs 0x15: Deskriptor media (USB: 0xF8)
uint BPB_wSecPerFAT; // Ofs 0x16: Jumlah sektor per FAT
uint BPB_wSecPerTrk; // Ofs 0x18: Jumlah sektor per track
uint BPB_wHeads; // Ofs 0x1A: Jumlah head
ulong BPB_dHiddSec; // Ofs 0x1C: Sektor tersembunyi (MBR ke DBR)
ulong BPB_dBigTotalSec; // Ofs 0x20: Total sektor partisi (>= 32MB)
uchar bDrvNum; // Ofs 0x24: 0x00 = floppy, 0x80 = hard disk
uchar bReserved1; // Ofs 0x25: Cadangan
uchar bBootSig; // Ofs 0x26: Tanda boot diperluas: 0x29
uchar bVolID[4]; // Ofs 0x27: Nomor seri disk
char bVolLab[11]; // Ofs 0x2B: Label volume
char FileSysType[8]; // Ofs 0x36: Tipe sistem file (“FAT16 “)
uchar ExecutableCode[448];// Ofs 0x3E: Kode boot
uint EndingFlag; // Ofs 0x1FE: Tanda akhir: 0xAA55
} DBR_tag;
Penjelasan Field Penting DBR
| Field | Keterangan Teknis |
| BPB_bMedia | Untuk USB flashdisk umumnya menggunakan nilai 0xF8 yang menandakan media removable |
| BPB_bSecPerClus | Ukuran cluster dalam satuan sektor; semakin besar kapasitas disk, semakin besar cluster yang digunakan |
| BPB_wReservedSec | Jumlah sektor cadangan antara DBR dan FAT pertama |
| BPB_bNumFATs | Umumnya bernilai 2, artinya ada dua salinan tabel FAT untuk redundansi |
| EndingFlag | Selalu bernilai 0xAA55 sebagai tanda akhir boot sector yang valid |
Formula Kalkulasi Penting dari DBR
Formula boot record DOS:
- Tabel alokasi file = jumlah sektor cadangan
- Direktori root = jumlah sektor cadangan + (sektor per FAT × jumlah FAT)
- Area data = nomor sektor logis root + (32 × jumlah entri direktori root) / jumlah byte per sektor
- Nomor sektor absolut = nomor sektor logis + sektor tersembunyi
- Nomor Sektor = (nomor sektor absolut % jumlah sektor per track) + 1
- Nomor head = (nomor sektor absolut / jumlah sektor per track) % jumlah head
- Nomor track = (nomor sektor absolut / jumlah sektor per track) / jumlah head mrtlab
Bagian 3: Area FAT (File Allocation Table)
Pengertian dan Lokasi
Nomor sektor absolut FAT adalah: FAT_LBA = DBR_LBA + BPB_wReservedSec. File Allocation Table adalah bagian utama dari struktur organisasi file DOS. Kita tahu bahwa DOS menggunakan cluster sebagai unit alokasi dasar. File Allocation Table adalah refleksi dari penggunaan semua cluster di hard disk; dengan memeriksa tabel alokasi file, penggunaan cluster apapun dapat diketahui. mrtlab
Apa Itu Cluster dan Mengapa Penting?
Volume yang diformat dengan sistem file FAT dialokasikan dalam cluster. Ukuran cluster default ditentukan oleh ukuran volume. Untuk sistem file FAT, nomor cluster harus muat dalam 16 bit dan harus merupakan pangkat dua. File Recovery
Cluster adalah unit terkecil yang dapat dialokasikan oleh sistem file FAT. Satu file dapat menempati satu atau lebih cluster, tergantung ukurannya.
Perbedaan FAT12, FAT16, dan FAT32
FAT adalah sistem file yang sangat sederhana — tidak lebih dari sebuah linked list tunggal dari cluster dalam tabel besar. FAT12 dirancang untuk floppy disk dan dapat mengelola ukuran maksimum 16 megabyte karena menggunakan 12 bit untuk mengalamatkan cluster. FAT16 dirancang untuk hard disk awal dan dapat menangani maksimum 64K cluster. OSDev Wiki
FAT12 mendukung ukuran volume hingga 32 MB. FAT16 mendukung ukuran volume hingga 4 GB. FAT32 mendukung ukuran volume hingga 16 TB. Sistem file FAT32 umum digunakan pada flash drive karena dukungannya untuk berbagai sistem operasi. Namun, salah satu kelemahannya adalah hanya dapat menyimpan file hingga 4GB. Clever Files
Tabel Nilai FAT dan Artinya
Struktur makna FAT: Entri pertama dalam tabel FAT umumnya adalah FF8H atau FFF8H. mrtlab
| Nilai FAT | FAT12 | FAT16 | Arti |
| 0x000 / 0x0000 | 000H | 0000H | Cluster bebas (tidak dipakai) |
| 0xFF0–0xFF6 | FF0H–FF6H | FFF0H–FFF6H | Cluster cadangan |
| 0xFF7 | FF7H | FFF7H | Bad cluster (cluster rusak) |
| 0xFF8–0xFFF | FF8H–FFFH | FFF8H–FFFFH | Akhir rantai cluster (end of chain) |
| Nilai lain | xxxH | xxxxH | Nomor cluster berikutnya dalam rantai |
Konsep Rantai Cluster (Cluster Chain)
Pointer ke node kepala dari linked list disimpan dalam direktori, pointer-pointer berikutnya disimpan dalam FAT. Setiap entri FAT merepresentasikan sebuah cluster. Untuk membedakan antara cluster yang terpakai dan cluster yang bebas, cluster dinomori mulai dari tiga. Entri FAT bernilai nol merepresentasikan cluster yang bebas. Angelfire
Cara kerja rantai cluster:
- Direktori file menyimpan nomor cluster pertama file tersebut.
- FAT di cluster tersebut menyimpan nomor cluster berikutnya.
- Proses ini berlanjut hingga ditemukan nilai end-of-chain (akhir rantai).
- Seluruh urutan inilah yang disebut Cluster Chain (rantai cluster).
Ilustrasi sederhana:
Direktori → Cluster 5 → FAT[5]=8 → FAT[8]=12 → FAT[12]=FFF8 (akhir)
Artinya: File ini tersimpan di cluster 5, lalu 8, lalu 12 (selesai).
Formula Konversi Nomor Cluster ↔ Sektor Logis
Untuk FAT16, nomor cluster × 2 adalah alamat offset; ambil word dari FAT pada posisi tersebut untuk mendapatkan domain dari FAT.
- Nomor sektor logis = nomor sektor logis awal area data + (nomor cluster − 2) × jumlah sektor per cluster
- Nomor cluster = (nomor sektor logis − nomor sektor logis awal area data) / jumlah sektor per cluster + 2 mrtlab
Mengapa Ada Dua Salinan FAT?
Hampir semua sistem file FAT menyimpan dua salinan FAT (FAT1 dan FAT2) secara berurutan. Salinan kedua berfungsi sebagai cadangan — jika FAT pertama rusak akibat gangguan daya atau bad sector, sistem dapat memulihkan informasi dari FAT kedua. Ini adalah mekanisme redundansi bawaan yang sudah ada sejak era DOS.
Bagian 4: Area FDT (File Directory Table)
Pengertian dan Lokasi
Nomor sektor absolut FDT adalah: FDT_LBA = FAT_LBA + BPB_bNumFATs × BPB_wSecPerFAT. File Directory Table adalah bagian penting lain dari struktur organisasi file DOS. Direktori file dibagi menjadi dua kategori: direktori root dan subdirektori. Direktori root dapat memiliki beberapa subdirektori, dan subdirektori pun dapat memiliki subdirektori di dalamnya, membentuk struktur direktori file berbentuk “pohon”. mrtlab
Mengapa FDT Sangat Penting?
Hanya ketika tabel FAT dan FDT bekerja sama, manajemen file di seluruh disk dapat disatukan dan lokasi tepat file yang dihapus dapat ditentukan secara akurat. MiniTool
Struktur Directory Entry (32 Byte per File)
Setiap file atau folder dalam sistem FAT dideskripsikan oleh satu entri direktori berukuran tepat 32 byte:
c
typedef struct {
char FileName[8]; // Ofs 0x00: Nama file (8 karakter)
char ExtName[3]; // Ofs 0x08: Ekstensi file (3 karakter)
uchar attribute; // Ofs 0x0B: Atribut file
char reserved[10]; // Ofs 0x0C: Cadangan (digunakan Windows untuk nama panjang)
uint time; // Ofs 0x16: Waktu pembuatan/modifikasi
uint date; // Ofs 0x18: Tanggal pembuatan/modifikasi
uint StartClus; // Ofs 0x1A: Nomor cluster awal file
ulong FileLength; // Ofs 0x1C: Panjang/ukuran file (byte)
} DIR_tag;
Entri direktori berukuran 32 byte dan berisi nama file atau direktori, ukurannya dalam byte, ekstentnya yang dimulai (atau cluster awal), serta atribut atau metadata file lainnya (cap waktu dibuat, terakhir diakses, dan terakhir ditulis). Tidak ada konten data yang ada dalam entri direktori; sebaliknya, konten data disimpan dalam unit alokasi data yang disebut cluster. oreilly
Byte Pertama Nama File — Maknanya Sangat Penting!
Byte pertama di area nama file dalam entri direktori juga memiliki arti khusus:
- 0x00 — entri ini belum pernah digunakan (tidak ada file setelah ini)
- 0x05 — karakter pertama sesungguhnya adalah 0xE5
- 0xE5 — file ini telah dihapus mrtlab
Inilah mengapa pemulihan data dari flashdisk FAT sering berhasil: ketika file dihapus, sistem hanya mengubah byte pertama nama file menjadi 0xE5 — datanya sendiri di area DATA belum dihapus! Selama area cluster tersebut belum ditimpa oleh file baru, data masih dapat dipulihkan.
Tidak peduli apakah file dihapus oleh pengguna secara sengaja atau tidak, karakter pertama file ini dalam FDT akan diubah menjadi “E5”, yang menandakan penghapusan. Selama kondisi file baru belum disimpan ke tempat di mana file yang dihapus berada, Anda dapat memulihkan file yang dihapus dari drive FAT32 dengan memodifikasi lokasi yang sesuai dan mencari tanda penghapusan E5. MiniTool
Atribut File — Setiap Bit Punya Makna
Byte atribut file (offset 0x0B) mendefinisikan sifat-sifat file:
| Bit | Nama Atribut | Nilai | Keterangan |
| Bit 0 | Read-Only | 0x01 | File hanya bisa dibaca |
| Bit 1 | Hidden | 0x02 | File disembunyikan |
| Bit 2 | System | 0x04 | File sistem |
| Bit 3 | Volume Label | 0x08 | Label volume |
| Bit 4 | Subdirectory | 0x10 | Ini adalah folder/subdirektori |
| Bit 5 | Archive | 0x20 | File arsip (sudah diubah sejak backup terakhir) |
| Bit 6–7 | Reserved | — | Dicadangkan |
Nilai tipikal untuk file biasa adalah 0x20 (Archive), sedangkan folder biasa memiliki atribut 0x10 (Subdirectory).
Format Waktu dan Tanggal dalam FDT
Cara penyimpanan waktu dan tanggal dalam FDT:
- Waktu (Time): time = Jam × 2048 + Menit × 32 + (Detik ÷ 2)
- Tanggal (Date): date = (Tahun − 1980) × 512 + Bulan × 32 + Hari mrtlab
Perlu diperhatikan bahwa resolusi waktu pada FAT hanya sampai 2 detik (bukan 1 detik). Ini adalah keterbatasan bawaan format FAT yang sudah ada sejak era DOS.
Nama File Panjang (Long File Name / LFN)
Windows 9x dan NT mendukung nama file panjang, dan keduanya terdaftar dalam direktori seperti ini: setiap file dengan nama panjang memiliki entri nama panjang yang terdaftar sebelum entri nama pendek file tersebut dalam urutan terbalik, dan nama panjang ditulis dalam format UNICODE. Untuk mencegah ditampilkannya entri ini di versi MS-DOS lama, entri nama file panjang disetel memiliki atribut “L” yang berarti “label”. Angelfire
Bagian 5: Area DATA (Area Data)
Pengertian dan Lokasi
Nomor sektor absolut area data: DATA_LBA = FDT_LBA + (32 × BPB_wRootEntry) / BPB_wBytesPerSec mrtlab
Area DATA adalah wilayah terbesar dalam sistem file FAT — biasanya mencakup lebih dari 90% kapasitas total media penyimpanan. Di sinilah konten aktual semua file (dokumen, foto, video, musik, dll.) tersimpan secara fisik.
Karakteristik Area DATA
Area data dimulai tepat setelah area direktori root (FDT) berakhir. Beberapa poin penting:
- Data disimpan dalam unit cluster, bukan sektor individual.
- Satu file bisa menempati satu cluster (jika kecil) atau banyak cluster yang tersebar (jika besar).
- Cluster 1 dan 2 dicadangkan — data pengguna dimulai dari cluster 3 ke atas.
- Jika satu file berukuran lebih kecil dari satu cluster, sisa ruang cluster tersebut tetap terbuang (disebut slack space).
Hubungan antara Cluster dan Sektor Fisik
Rumus konversi nomor cluster ke nomor sektor logis:
Nomor Sektor Logis = (Nomor Cluster − 2) × Sektor Per Cluster + Nomor Sektor Logis Awal Area Data
Dan sebaliknya, untuk menghitung nomor cluster dari sektor logis:
Nomor Cluster = (Nomor Sektor Logis − Nomor Sektor Logis Awal Area Data) / Sektor Per Cluster + 2
Bagian 6: Perbandingan FAT12, FAT16, dan FAT32 pada USB
| Aspek | FAT12 | FAT16 | FAT32 |
| Dikembangkan | 1977 | 1987 | 1996 |
| Bit per entri FAT | 12 bit | 16 bit | 28 bit efektif (32 bit) |
| Maks kapasitas volume | 32 MB | 4 GB | 16 TB |
| Maks ukuran file | 32 MB | 4 GB | 4 GB |
| Digunakan pada USB | Floppy lama | USB kecil | USB modern |
| Kompatibilitas | Sangat luas | Luas | Sangat luas |
| Cluster size | 512 B – 4 KB | 512 B – 32 KB | 512 B – 32 KB |
Bagian 7: Relevansi dengan Pemulihan Data USB
Memahami struktur sistem file USB sangat krusial dalam proses pemulihan data. Berikut skenario umum dan cara kerja pemulihannya:
Skenario 1: File Terhapus Tidak Sengaja
Ketika file dihapus, hanya byte pertama nama file di FDT yang diubah menjadi 0xE5, dan entri di FAT dikosongkan. Data di area DATA masih utuh. Pemulihan dilakukan dengan menemukan entri 0xE5 di FDT, membaca nomor cluster awal, lalu mengikuti sisa rantai cluster berdasarkan ukuran file yang masih tercatat.
Skenario 2: FAT Rusak
Jika tabel FAT rusak (akibat virus, mati listrik tiba-tiba, atau bad sector), OS tidak dapat melacak di mana setiap file tersimpan. Namun karena ada dua salinan FAT, pemulihan bisa dilakukan dari salinan FAT kedua. Jika keduanya rusak, teknisi dapat merekonstruksi rantai cluster secara manual berdasarkan pola data di area DATA.
Skenario 3: DBR Rusak
Perangkat lunak pemulihan partisi dapat memulihkan MBR, DBR, tabel FAT yang diformat dari drive yang diformat dan memulihkan file yang diformat dengan struktur file aslinya. Jika DBR rusak, parameter BPB yang hilang harus direkonstruksi — ukuran cluster, jumlah FAT, posisi awal area data, dan lain-lain — sebelum pemulihan data bisa dimulai. Eassos
Skenario 4: USB Tidak Terbaca / “Please Format”
Ini biasanya disebabkan oleh kerusakan MBR atau DBR. Sistem operasi tidak dapat membaca parameter sistem file sehingga meminta format ulang. Jangan langsung format! Data masih ada di area DATA. Gunakan alat pemulihan data profesional untuk merekonstruksi struktur yang rusak.
Penutup
Sistem file USB yang berbasis FAT sesungguhnya adalah sebuah mekanisme yang elegan — sederhana namun efektif, dan telah bertahan selama puluhan tahun. Lima area utamanya (MBR, DBR, FAT, FDT, dan DATA) bekerja saling bergantung satu sama lain membentuk sebuah sistem manajemen file yang lengkap.
Bagi teknisi pemulihan data, pemahaman mendalam tentang kelima area ini adalah kunci keberhasilan. Dengan mengetahui di mana MBR berada, bagaimana DBR menyimpan parameter sistem file, bagaimana FAT melacak rantai cluster, bagaimana FDT menyimpan metadata file, dan di mana data sebenarnya tersimpan — pemulihan data dari USB yang rusak sekalipun menjadi mungkin dilakukan secara sistematis dan terarah.
Peringatan: Pemulihan data memiliki risiko tertentu. Non-profesional disarankan berhati-hati untuk menghindari kerusakan sekunder.
Daftar Referensi / Sumber
- MRT Lab — USB File System (Halaman 1 & 2) https://us.mrtlab.com/filesystem/U-FileSystem.html https://us.mrtlab.com/filesystem/U-FileSystem_1.html
- OSDev Wiki — FAT File System — Technical Reference https://wiki.osdev.org/FAT
- File-Recovery.com — FAT12, FAT16, FAT32: File System Structure https://www.file-recovery.com/recovery-understanding-file-system-fat.htm
- MiniTool — FAT32 File Recovery — How File Deletion Works in FAT https://www.minitool.com/data-recovery/fat32-data-recovery.html
- O’Reilly / EnCase Study Guide — FAT Basics: Directory Entry Structure https://www.oreilly.com/library/view/ence-encase-computer/9781118058985/c02-anchor-3.html
- Eassos — Hard Disk Data Recovery Guide — FAT Structure https://www.eassos.com/how-to/hard-disk-data-recovery-knowledge-t00004.php
- Eassos Blog — Formatted FAT32 Partition Recovery https://www.eassos.com/blog/formatted-fat32-partition-recovery/
- Averstak — FAT Directory Structure — Technical Documentation https://averstak.tripod.com/fatdox/dir.htm
- Angelfire / Robbie Mosaic — FAT and the Directory Structure https://www.angelfire.com/wizard/robbiemosaic/interests/ewindows/msdos_functional/fat.htm
- CS NYU / c-jump — The FAT File System: Boot Sector, FAT Table, Root Directory https://cs.nyu.edu/~gottlieb/courses/os202/kholodov-fat.html
- Clever Files — FAT Data Recovery: FAT12, FAT16, FAT32 Overview https://www.cleverfiles.com/howto/fat-recovery.html
- win.tue.nl — The FAT Filesystem — Technical Deep Dive https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html

