Flash Extractor
© Soft-Center
About     Shop     Downloads     Manual     Library     Forum     Services     Contacts
How To Rebuild FAT32 Boot Record   Search  Register  Log in
This topic is locked: you cannot edit posts or make replies.
Author Message
jeremyb



Joined: 09 Dec 2008
Posts: 1051
Location: RecoverMyFlashDrive.com Fairfield, CT, USA

PostPosted: Fri Aug 14, 2009 9:08    Post subject: How To Rebuild FAT32 Boot Record
Reply with quote

In some cases the block containing the FAT boot record may be damaged, if one of the FAT tables is present you can manually enter the FAT boot record values into Image Explorer or Flash Explorer to retrieve the data.

First create a bogus FAT32 (or FAT16) entry. MBR->Properties
Then goto FAT32->Properties

FAT1 & FAT2:
Locate a working copy of the FAT table and put its address in FAT1 and FAT2
tip: search for f8ffff/h/512/0

Example FAT Table
Code:
F8FFFFFFFFFFFFFFFFFFFF0F00000000
00000000000000000000000000000000
00000000000000000000000000000000


Claster_Size:
Values are powers of two (ie: 32, 64, 128, etc), to find the value use check_dirs. The correct value will have the same offset for all Diff’s. An incorrect value will have different values for all Diffs.

Claster_Size: 32 = BAD
Code:
Dir 0x00600000  Must be 0x008fc000  Diff- 0x002fc000  Cluster 0x000043 
Dir 0x00608000  Must be 0x00900000  Diff- 0x002f8000  Cluster 0x000044 
Dir 0x00610000  Must be 0x00904000  Diff- 0x002f4000  Cluster 0x000045


Claster_Size: 64 = GOOD
Code:
Dir 0x00600000  Must be 0x00a08000  Diff- 0x00408000  Cluster 0x000043 
Dir 0x00608000  Must be 0x00a10000  Diff- 0x00408000  Cluster 0x000044 
Dir 0x00610000  Must be 0x00a18000  Diff- 0x00408000  Cluster 0x000045


Claster_0:
To find the value set Claster_0 to 0x0 and run check_dirs. The Diff value is Claster_0.

Code:
Dir 0x00600000  Must be 0x00218000  Diff+ 0x003e8000  Cluster 0x000043 
Dir 0x00608000  Must be 0x00220000  Diff+ 0x003e8000  Cluster 0x000044 
Dir 0x00610000  Must be 0x00228000  Diff+ 0x003e8000  Cluster 0x000045


Clasters
To find the number of clusters in the image use the following:
(size of image - Claster_0) / 512 / Claster_Size

Root Claster
Cluster containing the root directory.

FAT32: The default value is 0x2, Start from Claster_0 and look for the next sector containing data or a directory table. Subtract that value from Claster_0,divide by 512, then divide by Claster_Size
Code:
Claster_0 = 0x3E8000
Root Directory = 0x3f8000
0x3f8000 - 0x3E8000 / 512 / 64 = 0x2


FAT16:
RussellC



Joined: 07 Apr 2009
Posts: 185
Location: Austin, TX USA

PostPosted: Fri Aug 14, 2009 22:32    Post subject:
Reply with quote

This just helped me recover a flash that I thought was corrupted. Thank you for the info. Great stuff.
Display posts from previous:   
This topic is locked: you cannot edit posts or make replies. All times are GMT + 4 Hours
Page 1 of 1

 

Last added
Monolith Micro SD_76   98 3c 99 a3   1x4 AU6989NHL-2   98 d7 98 b2   1x1 SM3281L-AB   45 3c 98 b3   1x1   v5 Monolith USB 68   ec 1e 98 bf   1x1 SM3265P-AC   45 3e 98 03   1x1 SM3281N-AB   45 48 9a b3   2x2 Monolith Micro SD_75   32 2c c3 08   1x1 Monolith Micro SD_74   45 3e 98 b3   1x4   Ref AU6989SNHL-2   45 de 98 92   1x1 SM3261L-AB   45 de 98 92   1x1
News
01.02.2024 Save FE key
23.09.2022 The End
11.11.2021 Legs for NR
16.08.2021 Sector Number Slow
15.07.2021 New drivers
© Soft-Center ltd.