軟盤與FAT12檔案系統的組織格式

2021-05-26 05:03:41 字數 1356 閱讀 6005

根據《orange's》第4章理解。

軟盤的檔案組織格式為fat12,組織單位由大到小分為分割槽、簇(乙個或多個扇區)和扇區(磁碟上的最小資料單元)。

對於1.44m的軟盤有2面(磁頭號為0和1),每面有80個磁軌(0-79),每個磁軌有18個扇區(1-18),每個扇區有512位元組,共有1474569位元組(2880個扇區)。

為了便於理解,認為軟盤的扇區號為0-2879,其中偶數和奇數扇區分別位於磁頭號0和1面上,位置相間。

引導扇區(即軟盤的第0個扇區)上有個bpb資料結構,大小為62位元組,除去末2位元組0xaa55,引導扇區還有448位元組可用來存放引導**、資料和其他填充字元。

以軟盤作為啟動盤時,如果引導扇區有效,則引導**會被bios載入到0000:7c00處,然後cpu跳轉到0000:7c00處執行。

bpb資訊中比較重要的:根目錄區的目錄條目數bpb_rootentcnt。

fat12的組織格式為引導扇區0、fat1表(1-9扇區)、fat2表(10-18扇區)、根目錄區(長度非固定,由bpb資訊中的目錄條目數bpb_rootentcnt決定,每個目錄條目占用32位元組)、資料區(長度非固定)。

目錄條目的內容中包括檔名、檔案屬性、最後一次寫入時間、最後一次寫入日期、此條目對應的開始簇號dir_fstclus和檔案大小dir_filesize。其中開始簇號dir_fstclus和檔案大小dir_filesize比較重要,決定檔案資料存放在哪。

fat表占用9個扇區共9x512個位元組,每12位為乙個簇,則最多可表示3072個簇。在軟盤中乙個簇對應乙個扇區,fat錶可表示的範圍3072已經大於實際的扇區數2880了。另外,12位可表示的範圍為4096,也大於實際的扇區數2880了。

fat1和fat2通常相同。

檔案資料內容的查詢:根據目錄條目中的dir_fstclus,從fat表中取出乙個對應的12位數——fat項,該數如果是0xfff則表示後面沒有資料了,否則表示該簇也被占用,如此依次可找到所有占用的簇。根據這些簇所對應的扇區,就可知道資料存放在什麼位置了。

注意的是,資料區的第乙個簇號為2,對應的扇區編號如此計算:

資料區開始扇區號 = 根目錄區開始扇區號 + 根目錄區占用的扇區數

其中,根目錄區占用的扇區數rootdirsectors如此計算:

rootdirsectors = [(bpb_rootentcnt x 32) + (bpb_bytespersec -1)]/bpb_bytespersec

根據orange's中的定義,資料區第乙個簇對應的扇區號為19 + 14 = 33,所以有

扇區號 = 33 + 簇號 - 2

對應的在軟盤中的物理位置=扇區號x512位元組。

根據磁頭號、柱面號和起始扇區號,利用bios中斷int 13h,可一次性讀n個扇區內容到指定記憶體中。

FAT12檔案系統總結

一 fat12 檔案系統 12位檔案分配表 檔案系統 邏輯層,不關心物理的儲存位置,將資料快抽象成線性的可隨機訪問的,從0開始的陣列 二 層次 扇區 最小單元,512位元組 引導扇區 0扇區 bpb biso paremeter block 簇 資料區儲存檔案資料的基本單位,包含乙個或多個扇區,2的...

檔案系統 FAT12

fat12是dos時代使用的檔案系統,適用於軟盤等小容量儲存介質。其特點 小容量,最大為4.1mb 以簇為單位,最大簇數4084 每個fat表項佔12bits,所以稱之為fat12 每個扇區預設512位元組 根據容量不同,每個簇有1至4個扇區。fat表2 如果存在 是fat表1的備份。根目錄最多包涵...

FAT12檔案系統之資料儲存方式詳解

fat12檔案系統之資料儲存方式詳解 位址是 同時,也編寫了乙個簡單的引導程式來驗證了這個引導扇區的資料結構,詳情 位址是 下面我們來詳細了解一下fat檔案分配表 根目錄 使用者資料的資料結構,只有通過詳細分析這些資料結構,才能自由的訪問fat12格式的磁碟檔案。我們先來看看檔案分配表的資料格式,檔...