RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 
 46  2/4  <  1  2  3  4  > 


 
主題: [資訊電機] [問題]請問有詳細介紹FAT儲存格式的書籍嗎?   字型大小:||| 
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#16 : 2005-12-8 02:13 PM     只看本作者 引言回覆

找了很幾個程式
終於找到了
VAIOSoft Recovery Manager
這軟體可以把隨身碟的磁區內容做備份
也可以把格式化成初始狀態
不過奇怪的是
原廠格式化後的剩餘空間是30.2MB
而用這程式格式化之後變化30.3MB
或許應該要說FDISK的規化和原廠不一樣
也就是說只要不要超過該儲存媒體的最大上限都可以自行規化MBR

現在的疑問還是在沒有MBR的情況下
要如何抓取記憶卡有多少cylinder head sector ?
或是總共的LBA Capacity ?
要如何做格式化成FAT32呢 ?

[saltire 在 2005-12-8 04:16 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
AGC
論壇音樂賢者
等級: 15等級: 15等級: 15等級: 15等級: 15
沒戲唱了

今日心情

 . 積分: 1239
 . 精華: 3
 . 文章: 2138
 . 收花: 9714 支
 . 送花: 462 支
 . 比例: 0.05
 . 在線: 1855 小時
 . 瀏覽: 3600 頁
 . 註冊: 8188
 . 失蹤: 0
 . U.S.S. AGC
#17 : 2005-12-8 10:02 PM     只看本作者 引言回覆

記憶卡只是RAM等組成的,因該沒有磁柱,磁頭等的原設資料,我猜大概與 RAMDISK的規劃方式同吧???
不然就先了解記憶卡的硬體結構,看有沒有類似PC上RAM絛上有一小8PIN IC(那叫什麼... PDS??),可能資料就記在那個EEPROM上。
去"雷兒"吧,那裡人氣比較多。



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#18 : 2005-12-12 11:49 AM     只看本作者 引言回覆

剛剛大概看了一下
CompactFlash Specification Revision 3.0

Information Technology - AT Attachment with Packet Interface - 6 (ATA/ATAPI-6)

IDENTIFY DEVICE Command code 都是 ECh
不過呢
CF有定義CHS數量和容量
numbers of cylinders
numbers of heads
Current sectors per track
capacity in sectors

反倒是ATA沒有定義CHS有多少
真奇怪
到底BIOS是怎麼知道硬碟有多大有多少CHS呢?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8216
 . 失蹤: 5568
#19 : 2005-12-13 03:43 AM     只看本作者 引言回覆

你問的問題好多, 大概是處理HDD 的新手, 呵
問題其實不難, 但是, 回答起來可能長長一大串,
有些東西, 還是善用google 比較快
因為要敲長長一大串的答案, 也是挺難的 @_@

1. 只要是硬碟, 就會有Identify 資料可讀取, Identify 裡面會記錄磁碟的容量問題
    想要知道Identify 的相關欄位, 請找HDD 廠商的網站, 然後隨便找一個HDD 的datasheet 抓下來
    裡面會詳細介紹:
   A. Identify 欄位名稱/大小/含意
    B. 完整的ATA command set 說明
   C. 現在應該已經沒有人使用Identify 裡面的CHS 了,
       都是使用Total Number of User Addressable Sectors的欄位
    PS: 如果你會需要處理容量超過128G(K=1024), 記得找超過128G 的HDD datasheet
         因為超過128G 以上容量, 需要ATA6 command set
   PS: 超過128G 的HDD, 有時Identify會有其他欄位描述硬碟容量
2. CF 卡其實也是IDE 界面, 所以, 可以把他完全視為HDD
3. memory device 可以有MBR 也可以沒有MBR
    也就是, 程式處理記憶卡時, 要有習慣偵測sector 0 的內容是Boot or MBR
4. FAT12/FAT16/FAT32 詳細資料, MS 的MSDN 網站上可以找到
    FAT12/FAT16 兩個很像, 只是FAT size 不同而已
    FAT32 比較複雜一點點, 多了幾個系統描述的sector需要處理, 但是跟FAT12/16 還是主架構相同
5. Format HDD/CF 程式碼, 可以去網路上找, 應該找得到
6. FAT12/FAT16/FAT32 容量問題, 我記得MSDN 網站的資料上有說明限制各有哪些
    不過, 其實自己算也可以算出來
7. 測試自己寫FAT32 有沒有出錯, 要用98 進行磁碟掃描, XP 掃描都會一律告訴你正確, 但是其實可能你已經漏掉某些系統描述的sector update 行為而不自知
8. Partition Magic format FAT32 時, 他會算錯磁碟容量, 大約少掉一個cluster size, 所以, 如果你自己format 出來比Partition Magic 大一點點, 不要認為自己錯

處理HDD/CF我的經驗是:
1. 一定要花時間弄懂Identify 裡面的欄位用途, 很多時候你會需要它
2. 把ATA command 弄清楚
3. 把FAT12/16/32 資料格式弄清楚
4. 把timing 弄清楚, 呵, 這個常常是真正害死人的兇手
    尤其剛開始, 通常使用PIO 模式, PIO2/3/4 的timing 都不一樣
    當然, 如果你用的uP 很low end, 速度跟龜一樣, 就不用擔心太多timing 問題
    不然, 只要沒仔細啃timing 問題, 就會發生挑卡, 挑硬碟...

其餘的, 大概都不再構成問題, 而上述資料, 就是找HDD datasheet & 去MSDN 網站找FAT 說明

如果你很習慣啃別人程式, 而且可以快速看懂&從中擷取你需要的程式片段
那你可以去找FreeDOS 這個網站, 它是一套DOS 相容的Open Source 系統
從裡面, 你可以看見FAT12/16/32 是如何處理的
不過.... 裡面的程式很大一套, 你要習慣看別人的程式, 才有辦法快速弄懂它在幹嘛
不然, 可能花費的時間會比你啃資料說明還要久
從該網站, 當然也一定可以找到format 程式囉, 呵

Acute.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#20 : 2005-12-14 11:49 PM     只看本作者 引言回覆

其實我是要用在遷入式系統的!
所以需要很多基本的觀念才行!
目前是買回來的創見CF卡256MB相容性出問題了!
不知為啥Initialize Device時就出現錯誤!
SANDISK的32MB卻沒問題!
但32MB又不能使用FAT32!
唉~~~OTL



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8216
 . 失蹤: 5568
#21 : 2005-12-15 06:25 AM     只看本作者 引言回覆

最大可能性, 就是我說的, timing 錯誤囉
ATA command 對軟體而言, 是永遠一樣的, 而且, 其實就是那幾個command 而已
但是, 硬體的timing 只要不正確, 就會挑硬體

Acute.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#22 : 2005-12-15 09:59 AM     只看本作者 引言回覆

有個疑惑是
既然不是用CHS來運作的話
假設我已經知道該HD或CF卡的最大容量
CHS是多少並不知道!
而我想要設計自動FDISK HD或CF卡!
並且也格式化成FAT32!
假設最大容量都不超過30GB

先寫入MBR的PARTITION Table
然後再從Absolute First Sector 寫入FAT32的Boot Sector and BPB Structure

如果只知道最大容量是多少就可以規化了是嗎?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8216
 . 失蹤: 5568
#23 : 2005-12-17 12:11 PM     只看本作者 引言回覆

一般HDD 只要知道total sectors, 就可以格式化沒錯
至於FAT32 32G or 64G 限制, 那是Windows 自己設的限制
250G HDD 自己寫format 程式, 也是可以format 成FAT32 阿, 呵

Boot 習慣上落在Cylinder 的整數位置上, 也就是CHS 裡面的S 的整數倍
對HDD 而言, 這個數值是固定的63, 有些記憶卡可能是31
有沒有按照這個舊傳統放置Boot 只會影響還在使用CHS 方式驅動HDD 的老系統

Format FAT32 的程序大概就是:
1. 寫MBR (LBA 0)
2. 寫Boot (LBA 63)
3. 寫Backup Boot Sector & System Info. Sector
    (LBA 63+x, 沒有規定位置, Boot 內要設pointer)
4. FAT1/FAT2 全部清除, 寫入Root 位置
5. 產生Root
FAT12/FAT16 少掉步驟三 & Root 位置, Root Size 固定, 其餘都一樣了

Acute.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
toto
銀驢友〔初級〕
等級: 12等級: 12等級: 12


 . 積分: 475
 . 精華: 2
 . 文章: 3023
 . 收花: 1858 支
 . 送花: 1122 支
 . 比例: 0.6
 . 在線: 1134 小時
 . 瀏覽: 5333 頁
 . 註冊: 7040
 . 失蹤: 2028
#24 : 2005-12-17 12:16 PM     只看本作者 引言回覆


引用:
Acute寫到:
一般HDD 只要知道total sectors, 就可以格式化沒錯
至於FAT32 32G or 64G 限制, 那是Windows 自己設的限制
250G HDD 自己寫format 程式, 也是可以format 成FAT32 阿, 呵

Boot 習慣上落在Cylinder 的整數位置上, 也就是CHS 裡面的S 的整數倍
對HDD 而言, 這個數值是固定的63, 有些記憶卡可能是31
有沒有按照這個舊傳統放置Boot 只會影響還在使用CHS 方式驅動HDD 的老系統

Format FAT32 的程序大概就是:
1. 寫MBR (LBA 0)
2. 寫Boot (LBA 63)
3. 寫Backup Boot Sector & System Info. Sector
    (LBA 63+x, 沒有規定位置, Boot 內要設pointer)
4. FAT1/FAT2 全部清除, 寫入Root 位置
5. 產生Root
FAT12/FAT16 少掉步驟三 & Root 位置, Root Size 固定, 其餘都一樣了

Acute.


想不到阿Q也這麼厲害呀...




[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#25 : 2005-12-18 08:08 PM     只看本作者 引言回覆

設計流程我大概知道了

可是我還是不解
只知道最大容量
那要如何設計FAT32的BOOT SECTOR的PBP資料呢?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8216
 . 失蹤: 5568
#26 : 2005-12-22 06:55 PM     只看本作者 引言回覆

你是說, 類似sectors per cluster ?
那是軟體決定的阿, 跟硬體一點關係都沒有

Acute.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#27 : 2005-12-23 10:04 AM     只看本作者 引言回覆

那就是說
我在寫FDISK時可以隨便設定嗎?
如果是這樣那還要PBP做啥?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
Acute
論壇第一大毒王
等級: 18等級: 18等級: 18等級: 18等級: 18
論壇第一小神童

 . 積分: 3281
 . 精華: 8
 . 文章: 11574
 . 收花: 14037 支
 . 送花: 3260 支
 . 比例: 0.23
 . 在線: 323 小時
 . 瀏覽: 2250 頁
 . 註冊: 8216
 . 失蹤: 5568
#28 : 2005-12-23 06:28 PM     只看本作者 引言回覆


引用:
saltire寫到:
那就是說
我在寫FDISK時可以隨便設定嗎?
如果是這樣那還要PBP做啥?

如果你弄出的硬碟只有你用, 當然不寫也行
不然, 別人的程式如何知道你弄成啥樣子呢?

Acute.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#29 : 2005-12-27 05:49 PM     只看本作者 引言回覆

在設計FAT32的BOOT SECTOR時
BPB_FATSz16設為0
那BPB_FATSz32該如何設計呢?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記
saltire
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
御姊萌妹美少女推倒委員長

今日心情

 . 積分: 728
 . 精華: 3
 . 文章: 4461
 . 收花: 4240 支
 . 送花: 28757 支
 . 比例: 6.78
 . 在線: 2170 小時
 . 瀏覽: 34517 頁
 . 註冊: 8209
 . 失蹤: 389
 . 宇宙殖民地
#30 : 2005-12-29 02:03 PM     只看本作者 引言回覆

假設我的硬碟是Hitachi 30GB
Identify_Device_Information為
Cylinder=3FFFh(16383)
Head=10h(16)
Sector_per_track=3Fh(63)
Capacity_CHS=FBFC10h(16514064)
Capacity_LBA=037E3E40h(58605120)

而我現在要設計成會自動FDISK成一個FAT32磁碟槽

~MBR~
BootIndicator:80
StartHead:01
StartSectorCylinder:0100
SystemID:0C or OB
EndHead:??
EndSectCylinder:????
AbsoluteFirstSect:????????(3F或20???)
Nbsect:????????

~BootSector~
BS_jmpBoot:EB3C90
BS_OEMName:MSDOS5.0
BPB_BytsPerSec:0002(512byte)
BPB_SecPerClus:??(1~128)
BPB_RsvdSecCnt:2000(32)
BPB_NumFATs:02
BPB_RootEntCnt:0000
BPB_TotSec16:0000
BPB_Media:F8
BPB_FATSz16:0000
BPB_SecPerTrk:3F00
BPB_NumHeads:FF00
BPB_HiddSec:20000000
BPB_TotSec32:同MBR.Nbsect
BPB_FATSz32:????????
BPB_ExtFlags:0000
BPB_FSVer:0000
BPB_RootClus:02000000
BPB_FSInfo:0100
BPB_BkBootSec:0600
BPB_Reserved:000000000000000000000000
BS_DrvNum:80
BS_Reserved1:00
BS_BootSig:29
BS_VolID:????????
BS_VolLab:NO NAME
BS_FilSysType:FAT32

想請教以上??的欄位要如何計算出來呢?



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  新增/修改 爬文標記

 46  2/4  <  1  2  3  4  > 
   



 



所在時區為 GMT+8, 現在時間是 2024-11-22 12:24 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.027385 second(s), 6 queries , Qzip disabled