微軟已經宣布WINDOWS XP操作系統即將在今年的4月份退出市場,而作為未來主力軍WINDOWS 8操作系統,目前在市場也大展拳腳。NTFS是隨著Windows NT操作系統而產生的,全稱為“NT File System”,中文意為NT文件系統,如今已是windows類操作系統中的主力分區格式了,WINDOWS 8操作系統普遍應用NTFS作為文件系統。它的優點是安全性和穩定性極其出色,在使用中不易產生文件碎片,NTFS分區對用戶權限作出了非常嚴格的限制,每個用戶都只能按著系統賦予的權限進行操作,任何試圖越權的操作都將被系統禁止,同時它還提供了容錯結構日志,可以將用戶的操作全部記錄下來,從而保護了系統的安全。本文主要論述的就是NTFS在系統崩潰或磁盤出現故障后,如何借助NTFS文件系結構,安全的恢復文件系統數據。
NTFS是一個具備錯誤預警的文件系統。由于NTFS對關鍵文件系統的系統信息采用了冗余存儲,故而當磁盤上的某個扇區損壞時,NTFS仍可以訪問卷上的關鍵數據。NTFS分區的最開始的16個扇區是分區引導扇區,用以保存分區引導代碼,接下來是主文件表(MFT),如果MFT所在的磁盤扇區出現損壞,NTFS文件系統會將MFT轉移到到硬盤的其他扇區,這樣就保證了NTFS文件系統和Windows操作系統的正常運行。比之先前的FAT16和FAT32文件系統的FAT(文件分配表),FAT只能固定在分區引導扇區的后面,一旦該扇區,整個文件系統就會癱瘓,NTFS文件系統顯然要先進的多了。不過這種移動MFT的做法卻也并非十全十美,如果分區引導代碼中指向MFT的部分出現錯誤,那么NTFS文件系統便會不知道到哪里尋找MFT ,從而會報告“磁盤沒有格式化”這樣的錯誤信息。為了避免這樣的問題發生,分區引導代碼中會包含一段校驗程序,專門負責偵錯。
NTFS文件系統通過基于事務處理模式的日志記錄技術(transaction logging and recovery techniques),成功保證了NTFS卷的一致性,實現了文件系統的可恢復性。在 FAT 或 HPFS 上執行 CHKDSK 時,系統會檢查目錄、分配和文件表中指針的一致性;但是在 NTFS 下,系統會維護針對這些組件的事務日志,因此,CHKDSK 只需將事務回滾到上一個提交點就可以恢復文件系統中的一致性。事務日志方法需要的系統開銷是很小的。NTFS并不是直接在日志文件中存取記錄,而是通過LFS來讀寫。LFS提供了包括打開,寫入,向前,向后,更新等操作來幫助NTFS處理日志文件。
我們把每一個具體的對NTFS卷文件的I/O操作看作一個事務,每個事務都是一個原子操作。這樣,任何復雜的操作都可以分解成很多個事務。系統面對的就是許許多多的不同的事務。當一個事務開始后,它要么被順利的完成,要么當遇到某些意外而出錯時能回滾到上一個提交點,這時候NTFS卷處于該事務開始前的狀態。很多原因都可以導致事務操作失敗,如磁盤壞道、內存不足、設備連接錯誤等等。
為了確保每個事務都能順利的完成或出錯回滾到上一狀態,對于每個事務NTFS文件系統都會執行以下步驟:
(1) 把此次事務中的子操作記錄到已緩存在內存的日志文件里;
(2) 把實際的子操作數據記錄到內存中;
(3) 在緩存于內存的日志文件里把此次事務標記為已提交;
(4) 把日志寫入磁盤;
(5) 把數據寫入磁盤。
事實上,對于步驟 (4) 和步驟 (5) ,NTFS并不是即時寫入磁盤的,而是采用了延遲寫(lazy-write)技術,選擇在之后一個適當的時機用最佳方式把很多數據批處理到磁盤上。使用延遲寫技術大大減少了磁盤操作的頻率,從而極大地改善了系統的性能,但是在系統崩潰時有可能導致磁盤的不一致性,有一定風險。在我們自己編寫的應用程序中可以通過設定FILE_FLAG_WRITE_THROUGH讓系統不通過緩存而講數據直接寫入磁盤中——這時候系統其實仍然會緩存寫操作只是沒有延遲寫入磁盤而已。
NTFS文件系統保證了緩存的日志先于事務中更改的數據存入磁盤。當文件系統更新緩存后,NTFS通過記錄在緩存的日志里被標記為已完成的事務來提交這些事務。當緩存的日志刷新到磁盤上時,所有標記為提交的事務都要保證已經被完成了,即使系統可能會在把這些事務對數據的實際變動都存入磁盤之前崩潰掉。
當系統發生錯誤時,NTFS文件系統的日志中有足夠的信息去完成或中斷任何出問題的事務。執行恢復操作的時候,NTFS文件系統重做日志里每一個標記為提交的事務;然后文件系統在日志中查找那些在上一次系統崩潰時沒有提交的事務,把日志中這些沒有提交的事務的子操作統統撤銷掉。因為NTFS文件系統在任何數據變動寫入硬盤之前已經把這些變動的日志先寫入了硬盤,所以NTFS擁有那些在恢復過程中需要回滾的子操作的所有的有效信息。
但是實際上,NTFS用這種事務日志技術來恢復數據也并不是那么保險的。而且,因為系統是通過日志來恢復的,恢復的過程對文件系統的所有數據都有可能造成影響——除非用戶在存取數據的時候使用了FILE_FLAG_WRITE_THROUGH標志。如果用戶程序沒有使用FILE_FLAG_WRITE_THROUGH存取數據,那么在系統崩潰后用戶數據很有可能會丟失。有可能系統只恢復出很陳舊的數據,或者恢復出不可意料的錯誤數據,或者無法恢復任何數據。
硬盤故障的修復
NTFS文件系統利用cluster remapping技術來減小磁盤的壞扇區對NTFS卷的影響。NTFS可以對硬盤上的邏輯錯誤和物理錯誤進行自動偵測和修復,但在FAT16和FAT32時代,我們需要借助 Scandisk這個程序來標記磁盤上的壞扇區,但當發現錯誤時,數據往往已經被寫在了壞的扇區上了,損失已經造成。
NTFS 文件系統則不然,每次讀寫時,它都會檢查扇區正確與否。當讀取時發現錯誤,NTFS會報告這個錯誤;當向磁盤寫文件時發現錯誤, NTFS將會十分智能地 換一個完好位置存儲數據,操作不會受到任何影響。在這兩種情況下,NTFS都會在壞扇區上作標記,以防今后被使用。這種工作模式可以使磁盤錯誤可以較早地被發現,避免災難性的事故發生。
在 FAT 或 HPFS 下,只要位于文件系統的特殊體中的一個扇區失效,簡單扇區失效(single sector failure)就會發生。 NTFS 在兩方面阻止這種情況的發生:第一,不在磁盤上使用特殊數據體且跟蹤并保護磁盤上的所有對象。第二,在 NTFS 下,會保存有多份(數量是由卷的大小決定的)主文件表。
在系統的可靠性與可恢復性方面,NTFS文件系統比以往的FAT32文件系統體現了極大的優勢。自從Windows2000開始,微軟開始推薦大家使用NTFS的磁盤格式,其后推出的XP更是要配合這種磁盤格式才能發揮其最大的性能優勢。而且實際上隨著海量硬盤的發展,使用NTFS的分區格式將越來越必要;在新一代的windows系統中,FAT系統也勢必會被NTFS逐漸取代。NTFS的安全性、可靠性與高效性即使與ext3、reiserfs等優秀文件系統相比也毫不遜色,相信如果將來微軟能開放更多NTFS技術細節的話,NTFS必將得到更廣泛的應用,必將在文件系統世界里大放異彩。
華軍深圳數據恢復中心建議,用戶在給硬盤重新分區格式化時,如果操作系統是WINDOWS系列的,NTFS文件系統將是最佳選擇對象。硬盤有價,數據無價,請及時做好重要數據備份!
大家都知道, 自從谷歌撤出北京辦事處后, 國內訪問谷歌中國的網站時, 網站就會自動連接...
如今局域網已經相當普及了,如果有人不慎在局域網中刪除了硬盤中的文件,通過一般的軟件...
對于海員們來說,沒有什么事情能好過晴空萬里、海風新鮮和海水清澈了。不幸的是,海上總...
今天筆者向大家講解,系統注冊表損壞了,該怎么修復呢?這是個很常見的問題!
錯誤操作導致高級格式化分區后的數據恢復在 DOS 時代有一個非常不錯工具稱為 UnFormat...
1)負載共享的RAID控制器 負載共享的控制器使用經過配置的I/O路徑,由每個主機I/O控制器...
今天筆者向大家介紹一下,RAID數據丟失恢復,怎樣操作才是穩妥的。