說明:
mbr :master boot record (
主引導記錄)
dbr :dos boot record ( 引導扇區)
fat :file allocation table (
檔案分配表)
硬體:本文sd
卡為kingston 4gb
,fat32格式,簇大小
4kb,每扇區
512位元組。
如果你熟悉硬碟結構跳過本節。下圖是硬碟的結構,如果你只是為了學習sd
卡fat32
檔案系統的話,這裡你只需要注意硬碟排序結構:主引導記錄(
mbr)—引導扇區—資料—引導扇區—資料。
mbr(main boot record 主引導記錄區)放置在硬碟實體地址0
的地方。總共512位元組的主引導扇區中,mbr只占用了其中的446個位元組,另外64個位元組交給了 dpt(disk partition table硬碟分割槽表),最後兩個位元組「55,aa」是分割槽的結束標誌。dpt由4個分割槽表組成,每個16位元組。下圖中以以硬碟的mbr圖,粉紅色為硬碟分割槽表。
對於我們來說,更關注硬碟分割槽表表中紅色區域:下圖為硬碟分割槽表詳細說明 。如果要對sd卡、u盤等分多個區,dpt的內容就表示各個區的偏移位址和大小。
起始位址
位元組數描述
0x1be
1可引導標誌,0x00
不可引導,
0x80
可引導
0x1bf~0x1c1
3分割槽起始chs
位址(chs=磁頭、柱面、扇區),起始位址
0x1c2
1分割槽型別
0x1c3~0x1c5
3分割槽結束chs位址
0x1c6 4
從磁碟開始到該分割槽開始的偏移量(
分割槽起始lba
位址little-endian
順序)0x1ca 4
總扇區數(little-endian
順序)
sd卡沒有分割槽,預設就是乙個分割槽。首先用winhex
檔案開啟
sd所在的碟符,顯示如下圖:
圖4
① 非分割槽空間(紅線所示): 起始扇區0
,我認為這個分割槽就是硬碟上的
mbr所在區域,
開啟後如下圖所示,
也可以稱為
sd卡的
mbr區域。
圖5根據表1
知道:
紅線區域(00002000
)為下個分割槽的扇區位址,即第8192
扇區,見圖3分割槽
1的起始扇區。
藍線區域(00760c00
)為sd
卡總的扇區個數,我們可以計算一下:
0x760c00 *512(每扇區位元組)
= 3960995840 (位元組),與實際大小基本一樣。
② 分割槽1(藍線所示):起始扇區8192.
③ 剩餘扇區 : 才疏學淺,我不知道幹嘛的,呵呵
由此可知sd卡檔案系統並不是處在整個
sd卡最開始的地方,它處在
mbr所處的保留區之後,於是我們可以對使用
fat32
檔案系統的
sd卡整體布局給出如下圖示。
圖6
FAT32檔案系統
windows95 osr2和windows 98開始支援fat32檔案系統,它是對早期dos的fat16檔案系統的增強,由於檔案系統的核心 檔案分配表fat由16位擴充為32位,所以稱為fat32檔案系統。在一邏輯盤 硬碟的一分割槽 超過 512 兆位元組時使用這種格式,會更高效地儲存資料,減少硬...
解析Fat32檔案系統
1.第一分區的起始扇區 2.第乙個檔案檔案配置表 fat 的位置 3.資料區域的位置 4.檔案 file1.txt 所在的簇 1 首先,用hxd開啟所要解析的fat32的檔案 2 選擇所要分析的檔案,開啟後,在起始的sector0,也就是0扇區我們就會看到該系統的主引導,在結束標誌的55aa之前的6...
NTFS與FAT32檔案系統
磁碟 包括行動硬碟 u盤 軟盤等 在格式化時都必須指定檔案系統,目前常用的檔案系統有ntfs和fat32。一 ntfs 1 概述 ntfs,即nt檔案系統。是微軟在windows nt作業系統上使用的一種檔案系統。ntfs不斷在改進,現在主流的版本是v3.1,來自windows xp。由於windo...