2012-07-15 82 views
2

從文件系統的角度來看,當驅動器處於空閒狀態或正在讀取但不寫入數據時,數據可能會丟失?假設您可以確認沒有用戶或操作系統操作正在寫入磁盤,在空閒或讀取過程中是否存在任何微妙的文件系統操作,這些操作在中斷時可能導致數據損壞(即斷電,數據電纜拔出)?不寫入磁盤時,有可能丟失數據嗎?

回答

0

哦,「這一切都取決於」 ......

簡短的回答是肯定的,可能會出現腐敗。最簡單的情況是您擁有16Mb緩存的硬盤。程序寫入「控制器」,數據在設備緩存中結束。你的程序認爲沒關係。您然後失去力量。 >一些<系統有足夠的電容容量讓這些數據運行,但你仍然可以獲得部分寫入。

根據我的經驗,這些延遲寫入期間的功率損耗也可能由於ECC更新不完全而導致媒體錯誤。一旦重新啓動,硬件可能會檢測到這一點,並聲明該磁盤區域(扇區/磁道)是壞的,並從備用磁盤重新映射它。

某些操作系統將更新文件上次訪問時間戳,因爲文件大於<這意味着當用戶正在進行純粹的只讀活動時,寫入操作仍然在磁盤上進行。

+0

關於最後訪問時間戳的好處。 Windows的「thumbs.db」和OSX的「.DS_Store」文件是後臺OS寫入操作的其他示例。爲了爭辯,如果我們假設這些操作都沒有進行,那麼對控制器的「延遲寫入」是純粹讀取磁盤驅動器的結果嗎?驅動器緩存在磁盤讀取期間被寫入以充當緩衝區是有意義的,但是您意味着什麼時候電源丟失,ECC仍然可能將這些部分寫入解釋爲損壞的扇區?它不應該知道爲驅動器輸入寫入的緩存與輸出之間的區別 – CauselessEffect 2012-12-10 18:00:28

相關問題