Re: [問題] 怎麼知道壞軌壞在哪個檔案上?或壞檔

作者: bearq258 (bearQ)   2014-09-19 11:34:34
※ 引述《oidioi11 (平靜)》之銘言?
請問幾個問題,
: 平常怎麼知道壞軌壞在哪個檔案上?
: 或者是,不一定是壞軌,怎麼知道哪個檔案已經壞掉了?和原來不一樣了?
: 如果有大量檔案,通常用什麼軟體檢查呢?
: 還是說,這種也是備份的時候才可以知道?
: 可是有看過文章,有人備份三四地,但都是已經壞掉的檔,備了好幾份,這樣很心酸吧
: 請問普通的因應法是什麼?謝謝了
→ KawasumiMai : 這種情況複製不出來,因為讀取會有錯誤 09/18 23:37
→ KawasumiMai : 能夠讀取出來但檔案不連續的是檔案毀損,可能是下載 09/18 23:38
→ KawasumiMai : 或解壓不完全,用馬路來比喻就是馬路上一塊白漆跟 09/18 23:38
→ KawasumiMai : 一個坑洞的差別,後者才是壞軌 09/18 23:38
→ KawasumiMai : 通常防止壞檔就是檢查MD5或CRC之類的東西,但假設中 09/18 23:39
→ KawasumiMai : 毒之類的也是修改檔案,並且可能被同步到兩三地去 09/18 23:40
→ KawasumiMai : 這應該是無解的事 09/18 23:40
→ KawasumiMai : 要檢查的話會需要原始狀態的CRC,因為修改過計算出 09/18 23:40
→ KawasumiMai : 的CRC和原本的不會一樣 09/18 23:40
其實這個部分算是計算機概論的範圍,有興趣可以翻閱相關書籍
PC工作原理中有分為 硬體、BIOS、OS 三個領域。
OS部分是消費者一般使用只能檔案讀取與搬動、檢查檔案等
BIOS管理 就是對硬體面的控制。
硬體面屬與廠商設計FW部分
先解釋檔案讀取會經過哪些動作
1.傳送檔案名稱與資料夾位置給OS,
2.OS 換找出檔案所在的磁區與長度.
3.硬體 讀取相對應的軌道磁區與長度
所謂CRC/ECC處理是在讀取才會發生計算的動作
處理是在讀取才會發生計算的動作 ,OS會控制BIOS 讀取相對應的軌道,
舉例軟碟讀取第一面第五軌第3個磁區為512BYTEs ,
BIOS、OS控制 FD軟碟機讀取相對應軌道但實際讀取會讀到 address+512bytes+ECC+end
http://en.wikipedia.org/wiki/Advanced_Format#mediaviewer/File:Afdia1.jpg
BIOS會進行計算CRC的行為。並回報該磁區是否可正常讀出資料正確的交握。
如果讀取失敗BIOS會下令重讀retry
但是這個動作只有在軟碟,
IDE與SATA 硬碟時代就不需CRC BIOS管理只管理資料交握,只會傳回讀取失敗與成功的指
令。
這樣CPU不需要花時間進行計算CRC的行為
ATA IDE硬碟時代硬碟有自己的SMART管理機制,會自己解決壞軌與缺陷管理。主機
板的BIOS只要給予命令即可。
硬碟自己有CPU+RAM不需要額外的計算輔助。
http://en.wikipedia.org/wiki/Advanced_Format#512e
硬碟的資料為了避免壞軌產生資料破壞,
作法改成資料放置的方式
A 512 byte B 512 byte 產生一個C XOR 運算
萬一A 或B 或C 任何一個磁區有故障,只要能得到 任何兩個區 就可修補回來
這個就是廠商資料保護技術,避免硬碟產生壞軌導致資料受損,當然資料有問題是會進行
retry 動作
所以某些老化硬碟的動作效率慢就是在重新計算讀取動作會測試達256次或512次。
導致時間延遲
但是每一個廠商在後面資料校正與保護方式都會進行專利保護與優化作業
所以企業級與普通級硬碟的碟片數量與密度都不同。
這裡提供以上的觀念讓大家分享。
有興趣者可以研究BIOS INT13 的功能

Links booklink

Contact Us: admin [ a t ] ucptt.com