RSS icon Home
  • 硬盤厤險記 - []

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/n-br-logs/255608370.html

    站在使用者的立場上,電腦故障還真並非件件事出有因。本人最近碰到的硬槃分區表問題就是一例:嘗試在一台運行持續正常(SMART參數正常,文件系統健康,操作系統工作正常,普通、標準的連接方式)的硬盤上進行分區表操作,用Windows 7自帶的磁盤管理工具對硬盤上一片原本曾經建立過文件系統但已經被清空的未分配空間執行分區建立操作,對主動防禦系統的警告做放行處理,片刻后擴展分區中的邏輯分區全部丟失,所有安裝的軟件、個人文件等等頃刻不翼而飛。

    硬槃分區表出錯,往往有很多直接原因,如誤操作、病毒破壞、安裝新系統或新軟件時被意外覆寫、硬盤遭遇供電故障或機械故障。但仔細回憶自己的操作過程,每一步都是最普通、最常規的步驟,甚至都沒有調用命令行。至於病毒,故障產生前剛剛集中處理過一囘,用配置過的防病毒軟件將硬盤外置完完整整掃描了一遍,重新投入使用后始終注意安全防範,並提高了保護級別,所以不可能是病毒破壞,至於新程序安裝,一個月内並未進行此類操作,也為檢測到任何安裝行爲,而物理故障也不可能,因爲一個月内並沒有發生斷路事故。簡言之,在常規的物理環境,安全的操作環境和正確的使用步驟下,所有的邏輯分區全部丟失。

    問題發生后,立即調用日常使用的磁盤恢復工具TestDisk 6.14掃描硬盤,試圖恢復分區信息,不料奇怪的是幾番掃描均只能發現兩個exFAT分區,在硬盤的末尾,前面的兩個NTFS分區不見蹤影。初步分析認爲可能是嘗試建立分區時,分區表信息更新不完整所致,但爲何只能找到後面的exFAT分區讓人費解。

    當時正值期末,沒有時間允許本人嘗試各種手段以求恢復分區,無奈只得將硬盤“束之高閣”,暫且將筆記本作爲日常設備充當臺式機角色,好歹順利過了期末。

    寒假伊始便著手另想辦法挽救分區,由於TestDisk曾幫祝本人成功恢復過若干台硬盤的分區信息,也成功恢復數個誤刪文件和文件夾,因此自己對TestDisk信任有加。這囘TestDisk找不到NTFS分區,也就順理成章地懷疑故障比較嚴重,需要去專業機構做恢復了。在這樣的背景下,先買了新硬盤,好做鏡像備份。不料手頭上圖形化界面硬盤工具裏用的最熟的Paragon Backup & Recovery的設計不太適合我這次計劃的目的,Ghost下的硬盤克隆經檢索后得知並非精確的從1扇區到最后一個扇區逐個訪問、複製,而是調用Symantec自行研發的一種克隆機制,於是嘗試給兩塊500G硬盤對拷時竟發生“目標驅動器容量太小”的錯誤。遂嘗試用HDDGuru網站提供的Raw Copy工具實現這一目的,操作過程中想起長久未擺弄WinPE,那裏應該有好傢伙,於是便在U槃上裝了最新的老毛桃WinPE備用,此外還想起幾個以前沒試過的硬盤測試工具,一併搜索下載試用。

    HDD Guru的Raw Copy工具雖然有50MB/s的限速,但成功實現了硬盤克隆。由於Raw Copy的作者Dmitry Postrigan同時是MHDD、Find and Mount兩款輕便強大的硬盤工具的作者和著名刑偵級數据恢復公司Atola(該公司旗下有Atola Insight軟硬件解決方案)的CEO,因此姑且相信Raw Copy硬盤克隆的精確性。

    完成克隆后遂在新硬盤上展開搜尋操作。由於剛用完Postrigan的Raw copy,所以首先嘗試用他的Find and Mount掃描硬盤。Find and Mount掃描速度很快,分析也很智能,會自動判斷最有可能的硬槃分區結構,並直觀的給出圖示,用Find and Mount成功找到了迷失的那兩個NTFS分區,並且經檢查文件系統可用,但exFAT分區卻不能被正確檢測,而Find and Mount免費版本並沒有給出詳細的柱面地址信息,所以需要考慮使用其它工具。

    於是我想起了WinPE。老毛桃的WinPE最新版本支持的硬件已經很新,B75的板子接上SATA硬盤在5.1 PE環境下經測試可以做到免驅SATA達速,又完美支持exFAT,所以決定在這個環境下掃描硬盤。這囘用的是DiskGen(ius),在國内(甚至國外,叫做Partition Guru)享有極高口碑的硬槃分區工具。DiskGenius 4.3和4.5版本下掃描結果一樣,但也只能正確發現NTFS分區,並沒有發現exFAT分區。此外和Find and Mount一樣,DiskGenius還誤報了幾個實際不存在的分區,疑似一些ISO鏡像和虛擬機磁盤文件。DiskGenius的免費版本能夠顯示詳細的硬槃分區參數信息,卻不支持編輯和寫入,所以也只能暫擱一邊。

    老毛桃WinPE還提供了ADDS,也就是Acronis Disk Director Suite,當然這樣名稱的軟件在免費發佈的PE環境裏當然是破解版的。ADDS 7.0的版本並沒有顯示出高於囯人的智慧,甚至將簡潔的界面搞成了複雜風格,雖然提供直接硬盤編輯,但界面設計複雜繁瑣,翻譯莫名其妙,也不支持exFAT,甚至碰到有exFAT分區的磁盤會自動退出,實在是一朵奇葩。WinPE在純DOS引導模式下也沒有給ADDS裝上USB鍵鼠驅動,只好棄之不用。

    有人看到這裡便會提出爲何不用Partition Magic和Disk Manager,殊不知那已經是近十年前的技術,GPT, exFAT和SATA不說,是否能完善支持高版本NTFS和大容量LBA參數都是個問題。除非面對的是一台XP系統電腦的硬盤,否則真沒什麽意義再嘗試使用這些工具。

    其實老毛桃WinPE還提供了一款名叫分區助手(Partition Assistant)的軟件。攷慮到再用TestDisk掃描一遍硬盤找兩個exFAT分區太費時,而繙看log文件也頗費功夫,於是決定先嘗試用這個成都傲梅出品的PA工具檢測,若同樣地費時費力不討好再回到TestDisk上。傲梅公司也是一家專注與數据恢復的IT公司,設有網站disctools.cn。打開PA,界面和ADDS以及Paragon Backup & Recovery有點相似,但選項相比則是有了大大的精簡,分類貌似也更加科學。PA支持分區召回,本人先試圖用快速掃描檢測丟失的分區,喜出望外的事情發生了,分區助手成功識別出了硬盤上所有被誤刪除的分區,而且還沒有任何誤報發生。列表中簡潔而清晰地顯示著那四個遺失的分區,外加那一片嘗試建立新分區導致問題后來又被清除的未分配空間對應的分區。但新的問題產生了,PA試圖重建exFAT分區結構時失敗,看似已經建立成功的分區表,刷新硬盤后只剩下了兩個NTFS分區,不過好在PA能顯示詳細的分區參數,所以可以記錄下每個分區的起訖柱面信息,然後輸到TestDisk裏面去手動恢復。

    於是在使用了數款硬盤維護和恢復工具后,這次來厤不明的硬盤故障終于以零經濟成本成功消除。事後本人反思了不同分區表工具的檢測結果,覺得比較有趣,在這裡一併與大家討論。

    TestDisk, Find and Mount, DiskGenius和Partition Assistant各自不同的掃描結果和掃描速度表明各自使用的算法不盡相同,這種不同表現在兩個層面上,一是掃描的範圍,二是分區的判斷標準。掃描範圍最全的應該是TestDisk,從頭到尾遍歷所有扇區,並直觀地將柱面號顯示在屏幕上,其次是DiskGenius,可以在指定的範圍内掃描所有扇區,並直觀的顯示掃描進度。Find and Mount會根據當前硬盤的分區、文件系統確定掃描範圍,並且在掃描過程中動態地分析當前結果決定下一步掃描哪些扇區。Partition Assistant雖然也可以按扇區掃描,但貌似在快速掃描模式下幾秒鐘便能找到比其他三款工具都完整的分區信息,相對而言掃描的應該是最少的。至於怎樣的特徵才能算作一個分區,TestDisk的鑑定標準似乎最嚴格,甚至是在Windows下使用完全正常的分區也被其認爲不是分區,因爲在首次TestDisk掃描中日誌文件中多処出現$MFT has invalid magic的告警信息,並且在設計上將分區恢復與文件恢復整合為一體、允許預覽待恢復分區中的文件也表明TestDisk認爲必須要同時有正確的分區信息和可靠的文件系統才能算作一個分區,只是這種標準未免太嚴格,以至於Testdisk漏掉了兩個NTFS分區。Find and Mount的標準更寬泛些,但是會自動檢驗當前的潛在分區是否符合分區邏輯,從而避免將明顯不可能的搜索結果納入列表——與極有可能是誤刪除分區重合的殘留分區、不符合LBA參數的分區等等,但Find and Mount似乎並不支持exFAT。DiskGenius誤報較多,推測可可能是簡化了對分區信息和文件系統結構的要求,但奇怪的是這種簡化卻並沒有促成exFAT分區的檢出,畢竟exFAT分區的標識也是NTFS的0x07,而且文件系統也是一個精簡版的NTFS。最有意思的是Partition Assistant,極快的掃描速度卻並沒有引來大量漏報,也沒有導致任何誤報,甚至表現得比其他三款軟件都出色,讓人詫異。但這也很有可能是Partition Assistant完全不檢查文件系統的緣故。

    需要指出的是,Find and Mount和DiskGenius無論做何種設定,都會按扇區逐個逐個掃描,而TestDisk和Partition Assistant在快速模式下似乎只檢測最有可能存有分區表信息的硬盤區域,如引導記錄、分區邊界、空白區域頭尾等地方,但TestDisk額外引入嚴格的文件系統校驗機制,所以被納入結果列表的對象數量少些。

    如果我們再兼顧幾款工具提供的附加功能,很容易總結出不同軟件的長處。四款工具都是穩定好用的恢復工具,因此當下也沒有必要比較各自的短處,只需看長處選用最適宜的一款工具即可,必要時配合其他工具使用。Partition Assistant的分區恢復功能簡約而強大,只需快速一掃便能獲得相對更全面的結果,如果系統沒有遭到攻擊,硬盤沒有大規模重寫,發生邏輯錯誤或物理損傷,不妨使用PA最快地找到所有可能的分區。Test Disk同樣提供快捷模式,但由於對文件系統的檢查較爲嚴格,因此也適用於剛剛進行過少量誤操作的健康硬盤的分區恢復。Disk Genius按扇區逐個掃描,並提供DOS版本,所以適用於存在有邏輯錯誤或物理損傷的硬盤,而Find and Mount則是允許裝載一個尚未正式恢復的分區,適用於需要排除邏輯錯誤的硬盤。Test Disk的深度掃描模式掃描每一塊扇區,並加以嚴格的文件系統篩查,適合一些複雜的但並非物理損傷的恢復情形。當然,如果已知硬盤發生了某种物理故障卻出於某种目的必須嘗試恢復數據,這四款工具因爲他們的設計原理並不能實現。

    需要提醒的是,本次硬盤李顯中所有本人嘗試的恢復工具中,只有TestDisk做到了對exFAT的全面支持:支持分區信息讀寫、文件系統讀取、誤刪除文件恢復。DiskGenius, Acronis, Partition Assistant和Find and Mount均未能良好支持exFAT,PA能識別出分區,但無法正確寫入exFAT分區信息,其餘三款均無法識別exFAT文件系統。

    在整個硬盤恢復過程中,本人還額外嘗試了幾款硬盤檢測工具,包括MHDD, Victoria,Sandra和HDD Scan,在這裡做一簡單介紹。Sandra由於是共享軟件並且主要客戶並非個人所以不推薦大家使用;HDD Scan是運行在Windows平臺下的硬盤表面測試工具,主要就是寫入和讀取的基準測試,與付費軟件HD Tune的Benchmark相似;MHDD是經典的命令行界面硬盤底層工具,在DOS下運行實現與硬件控制器的直接通信,除去掃描功能還支持P表和G表的操作,實現了坏區替換(remap),支持容量、LBA參數、機械參數的調整設定,支持SCSI設備,與PC3000配合能實現更強大的功能,但可惜原生不支持SATA數據通道;Victoria是MHDD的Windows翻版,目前尚在測試階段,提供更加友好的交互界面和更加丰富的行爲設定,但國際化程度低,並缺少documentation,還需要一定的開發。

    這次數据恢復歷經艱難險阻,是本人經歷過的最複雜的情況,首先是數據災難的成因至今無法明確,其次是長期以來一貫信賴的Testdisk未能檢出NTFS分區,然後是各款分區恢復工具均因某种原因不能成功恢復所有分區,最終只能PA和TestDisk並用手動輸入分區參數方才成功恢復了分區。本次硬盤歷險暴露出Windows系統的潛在隱患,一切條件正常、所有操作正確的前提下,同樣會發生嚴重故障。這促成了本人轉向Linux平臺的決心,相信在一兩年内,本人就會將Linux作爲日常工作生活的主要平臺。

    分享到: