檔案救援的原理 – 進階篇 2021/9

目錄

資料救援 ー 進階技術&原理

資料救援的中文簡體、英文、日文正式名稱是『数据恢复』『DataRecovery』『『データ復旧』。

正確的含義是『自故障或是正常硬碟 HDD、記憶卡 Flash memory、固態硬碟 SSDNAS磁碟陣列 RAID…..』等資料儲存設備搶救『遺失的資料』的專業技術。

作者寫此篇『資料救援』基本技術,盡量簡淺易懂,但如枯燥無味,還請包涵。

『資料救援』的技術不是『修理』,硬碟、SSD 故障時因內有重要資料,使用者是希望將『重要資料救出來』而不是要將『硬碟、SSD 修復正常』。硬碟、SSD 售價便宜再購買即可,如資料無備份,資料就這一份,只有設法自故障硬碟、SSD內搶救出來,沒有其他方法了。

硬碟、SSD、NAS、RAID 救援為什麼不是用『修理』方法?

  • 硬碟最常見的故障狀況:磁片『壞軌 Bad Sector』現象,然而磁片就是儲存資料的元件,雖然磁片有磨損,但資料還在磁片上,當然不可能將磁片更換掉。資料救援的技術就是要設法將磁片上『未磨損』的區塊內資料一一搶救出來,就像用唱針去讀『一張到處磨損的唱片』,又要搶救資料又要擔心磁片愈磨愈嚴重,那是很高的技術,充滿高風險,不是『修理』技術可處理。
  • SSD故障時:因 SSD內有 2、4、8…顆記憶晶片,資料就是平均分散儲存在各晶片內,一支檔案被分段 ¼、 ¼、 ¼、 ¼ 儲存……..,只要任何一顆晶片燒毀,就算其它晶片正常,救出的檔案還缺 ¼ ,還是不完整無法使用。所以 SSD 故障時要搶救資料,絕不可能將原記憶晶片拆除更換。

這就是『資料救援』完全無法以『修理』方式處理原因,『資料救援』是『高科技』,工程師培養不易,就像培養『醫生』一樣辛苦。

『資料救援』是很冷門行業,多數人從沒發生過硬碟、SSD 突然故障資料遺失的不幸事件,但這科技時代不可能不使用電腦、手機….資訊設備,而硬碟、SSD 是消耗品,使用久了最終一定會故障,萬一資料無備份,真的很傷腦筋,這時『資料救援』就是唯一有機會搶救資料的技術。

硬碟 HDD』『固態硬碟 SSD』是屬於最底層的儲存設備,所有資料就是儲存在『硬碟、SSD』內,不論是 NASRAID 內部還是需安裝多台硬碟 or SSD,而 NAS、RAID 所有資料就是『平均、分散』儲存至各台硬碟 or SSD,因NAS、RAID 本身只是一台『虛擬架構』設備,當 NAS、RAID 故障需搶救資料時,還是需自硬碟、SSD 內搶救,不見得需用到原 NAS、RAID 主機。

所以談『資料救援』必須先介紹最普遍、使用量最大的『硬碟』『SSD』的科技和儲存原理。

硬碟、SSD 是磁性的儲存設備(Magnetic storage),磁性是『二進位 Binary』的儲存原理,硬碟磁片表面濺鍍一層極薄的磁性薄膜,( SSD 不同)分佈了數量龐大的基本的儲存單位(暫稱『磁芯』),其磁性狀態只有  “+ or ー”,”0 or 1” 2種, 而硬碟、SSD是如何將一個一個的字元(Byte)儲存?

PS:Keyboard 上的每一個字元 A,B,C,D….a,b,c,d….1,2,3,4,5….!@#$%…. = 1byte,一個中文字需用  2byte。

  • 1bit =  “+ or ー”,”0 or 1” =1磁芯(簡稱)
  • 1byte = 8bit = 8磁芯(一個中文字 = 2 byte)
  • 1KB = 1,024byte x 8bit = 8,192磁芯
  • 1MB = 1,024 x1,024 = 1,048,576 byte x8bit = 8,388,608 磁芯
  • 1GB = 1,024 x1,024x 1,024 = 1,073,741,824 byte x 8bit = 8,589,934,592 磁芯
  • 1TB = 1,024 x1,024x 1,024 x1,024= 1,099,511,627,776 byte x 8bit = 8,796,093,022,208 磁芯(共 8兆….)

也就說一台手掌大的 2.5” 1TB 硬碟內部磁片表面共有 8,796,093,022,208 磁芯,可見精密度非常高,而硬碟讀寫磁頭還是硬碟磁頭漂浮在磁片表面快速來回讀寫,硬碟磁頭 Flying high 只有幾 nm(約髮徑的 1/500 ) ,輕微的碰撞磁頭就會擦傷磁片表面,這也就是硬碟非常怕碰撞原因。但 SSD 因內部都是『晶片』並無精密機件,所以較耐碰撞。

然而硬碟、SSD 都是消耗品,使用數年一定會耗損,而且故障前多數是事先毫無徵兆,常令使用者來不及備份資料,所以才會有『資料救援』的技術。

資料救援的故障種類分 3種:

不論是 PC、NB、NAS、RAID….內部一定都要安裝硬碟 or SSD,因為所有的資料就是儲存在硬碟 HDD、SSD。萬一 PC、NB、NAS、RAID 故障,需要資料救援時,其實就是自硬碟、SSD內將資料搶救出來,所以討論資料救援時,一定是討論最重要的硬碟、SSD。以下內容都是以硬碟、SSD 的相關問題。

Logical Damage(邏輯故障、資料、檔案系統的虛擬架構受損)未遭覆寫的資料,都有機會救回。

Physical Damage(零件實體受損)磁片未磨損的區域,資料有機會搶救。

Firmware Error(控制程式模組受損)資料救回機會高。

檔案救援

Logical damage 的故障狀況:

  • 硬碟、SSD 可被抓到(BIOS Detect HDD、SSD)
  • 硬碟、SSD 還可正常讀寫
  • 硬碟運轉正常

但只是『資料讀不到、資料遺失….』,都是檔案本身問題。常見原因:

  • 誤刪除資料,Delete Partition、files、folders….
  • 誤格式化,Format
  • 誤覆寫,OverWrite
  • 病毒破壞
  • 檔案系統架構受損

Logical Damage 的硬碟、SSD 實體零件還是正常的,還可正常讀寫,只是全部 or 部分資料讀不到 or 遺失,這種狀況的資料較易救援。重點如下:

  • 資料事實上還存在硬碟、SSD內,只要無被覆寫,資料都有機會救出。
  • 因為硬碟、SSD 此時還可讀寫,所以絕對勿再做任何『寫入』需維持『防寫 Read only』狀態。
  • 資料一旦遭覆寫,其所使用的磁芯原極性狀態即改變(原是“+”被改“ー”),而一支 1Mb 檔案共有 8,388,608磁芯已被改變極性,絕不可能『還原』,這也是『磁性儲存』可以重複讀寫的好處,但缺點是一旦遭『改變』即無法還原。

重點:硬碟、SSD 內只要未遭覆寫的範圍,原資料就還存在,資料就有機會救出。但已遭覆寫的範圍資料已不存在無法救出。

『已刪除檔案』還救的回來嗎?:

不論是 Windows、Mac OS、Linux…其刪除 Delete Partition、file、folder…都只是將最前方處做一『已刪除記號』,令 Windows、Mac、Linux…忽略、跳過不讀取,並無真正將所有資料清除『Full 00000000』。如還未遭覆寫,都還有機會救回資料,所以絕對勿再寫入新資料。
Windows 此用意即是擔心使用者萬一發生『誤刪除』時還有機會自行『回復資料』。您應該有發現 Windows 的每一分割區 (Partition) 都有一『垃圾桶 recycle folder』,它的功能是,當使用者刪除 File、Folder時,Windows 是先將其原路徑(Path) 改成指向垃圾桶Folder,內部的所有檔案並無搬移或清空,都還存在原區域,所以您應該會發現寫入一支 100MB 檔案需數分鐘,但刪除同一檔案時卻只是『瞬間』,刪除資料夾時也是相同情況,資料夾內也許有幾百 MB、GB 但刪除卻非常快速,才幾秒鐘不可能來得及『搬移』『清空』幾百 MB、GB資料,足可證明資料還存在,如使用 16進位工具 ( Hex Tool)即可看到『資料』。

『硬碟、SSD 刪除分割區 Partition』 資料可搶救嗎?

一個 Partition 容量都是數百 MB、GB…但刪除分割區卻非常快速,可以證實這麼短時間不可能清除幾百MB、GB資料。事實上刪除分割區只是將 Partition Table 其中一小區域( 100多 Byte) 清除,Data Area 都未改變。刪除分割區的狀況救出的資料是最漂亮的最完整,幾乎可 100% 救回,且檔案可正常使用。

『硬碟、SSD 格式化 Format』 資料可救回嗎?

『快速格式化』的時間絕對不可能清空資料,『完整格式化』雖然時間長但卻只是檢查有無『壞軌 Bed Sector』並無 『Full 00000000』,但格式化 Format 因為是命令 Windows 要將此分割區格式化後重新使用寫入使用,就像還原成『新硬碟、新分割區』,所以 Windows、Mac、Linux….會將『檔案管理系統區』清空後再重建新『檔案管理系統區』就是原 FAT32、MFT、Root…..都會被『清空 Full 00000000』,而 FAT、MFT、Root…就像書本的『目錄』一樣重要,紀錄了每一支檔案的儲存位置、佔用區塊、容量….更何況硬碟、SSD儲存原理還有一種較特殊狀況,當硬碟內已刪除檔案所騰出的區塊,是容許再被使用(寫入新檔案),如已刪除檔案只有 1.2MB,所以會騰出 1.2MB 可用區塊,接下來如有一支 2MB新檔案要寫入時,除了寫入這 1.2MB區塊還需另佔用其它區塊,這時這一支檔案就發生『碎片現象 Defrag』2MB的檔案是被分開儲存….. 事實上碎片現象是高達數百不同區塊,碎片現象越嚴重,磁頭就需來回忙碌讀取,而當需救援時,所救出的檔案效果就差,很多檔案雖然救出來但卻不正常無法,最常見就是:

  • 檔案開啟後都是『亂碼』
  • 照片開啟後,上半身正常但下半身是亂碼……(有無可能上半身是亂碼下半身正常?不可能….因為每一支檔案都有檔頭 file head,而檔頭就是儲存上半身區塊,無檔頭就……講下來很進階,屬更高深 File System 技術,會離題太遠)

本公司超過 30年搶救資料經驗,已遭格式化的硬碟、SSD 救出來的檔案效果好不好?真的是看『碎片現象 Defrag』程度。但多數硬碟、SSD 都有檔案『碎片現象』,不可能完全沒有 Defrag,除非剛使用不久的分割區。

如何降低硬碟、SSD『碎片現象 Defrag』? 讓資料救援效果更佳

  • Copy or Backup Tool ー 先接上一台 USB 空白硬碟,建立分割區再格式化後,用 File manage 先選重要、常用的 Folder,再複製至空白硬碟。您會發現這時是一支一支檔案『讀  → 寫』,因為是先將一支檔案完整讀出後暫放『記憶體區』,再寫至另一台空白硬碟,第一支檔案一定是寫在新分割區最前面,且是寫入連續區塊,不會分散寫入,無『碎片現象』。當第一支檔案寫完成後,才會再讀取第 2支檔案再存至空白硬碟……依此類推。此種 Copy 運作原理,一定是一支一支檔案依序寫入,非常漂亮、整齊,當去讀這台新硬碟檔案時,因無碎片現象 Defrag,硬碟磁頭不必來回到處讀取,磁頭不會很忙碌。不論原來檔案碎片現象多嚴重,因磁頭會去將檔案所有區塊 Block 都讀取後再將該檔案依序寫入空白硬碟內的區塊 Block,所以第一檔案一定是佔用新 Partition 的最前面的 1,2,3,4,5….Block。這原理可以形容『先準備一間坪數相同 or 更大空屋再將家具一件一件搬進去放在最理想位置』。

仿間出現多種號稱 Recovery Tool,當然都是由熟悉 NTFS、HFS、Ext3,4….檔案架構的工程師所設計的工具程式,不論哪種廠牌其原理大致相同:

  • 執行 Recovery Scan 時,可選『整台硬碟』 or 『分割區』,如分割區已不存在,當然只可選『整台硬碟』。
  • 掃描 Scan 的原理,其實是自硬碟實體第一個 Block 開始掃描直到硬碟最終的 Block,如 1TB 硬碟就是 Scan 1TB 空間,非常耗時,而只要發現到任何『檔頭 File head』不論是 doc, xls, jpg…所有常見的檔案類型都會被發現,當找到擋頭時會去讀取檔頭一些『資訊』最重要是 File name、檔案容量….當得知檔案容量後即可計算出共佔用多少 Blocks?如原 FAT or MFT….還存在即可列出此檔案所有 Blocks 所在的位置,照順序一一取出組合成原檔案架構,這支檔案救出後就會是『正常』的。但如原 FAT、MFT….已遭破壞,Recovery Tool 就算已計算出檔案容量共佔多少 Block,但卻無法得知這檔案所有 Block 所在正確位置,只好當成此檔案的所有 Blocks 是『連續存放』無碎片現象,將後面連續的 Blocks 取出當成此檔案的 Blocks 使用,所以一定會有一些 Blocks不是此檔案原有的,甚至 Blocks『順序有誤』,這支檔案救出後,應該只有檔頭正確,後面 Blocks 都有誤。

如硬碟、SSD 發生 Logical Damage 問題,當然可以自行使用資料救援軟體 Reocvery Tool 嘗試看看,但思考以下幾點:

  • 使用者對資料救援軟體 Recovery Tool 操作又不熟練,會不會有誤動作,愈做愈糟?
  • 硬碟、SSD 碎片現象 Degrage 輕微時,救援軟體 Reocvery Tool 效果佳,反之效果差,但事前並不可能知道碎片程度。多數硬碟、SSD 使用愈久,愈常刪除、新增檔案…..碎片現象就愈嚴重, Recovery Tool 救出的效果一定差,除非是剛使用的硬碟,檔案都是剛 copy 進去。
  • 萬一硬碟又有『壞軌』時,則磁片因高達 7,200/rpm 旋轉,一定會加重『磨損』
  • 救援軟體 Scan 出來的檔案,一定要存至其它空白硬碟,絕不可寫回原硬碟,那就是『覆寫』。
  • 救援軟體 Recovery Tool 用免費版,功能有限制,應該無法『儲存』,一定需先購買正式版。如要花幾萬元購買正版,還不如交給專業資料救援公司,他們經驗豐富,會避開風險,手上也有好幾套 Recovery Tool 交叉使用。

萬一 救出檔案效果差時,一定要改求助真正懂如何用人工修補 NTFS、HFS、ext4,5..的專業工程師。 但如何判斷『高手』那真的要自已先做功課,以免將硬碟交給『外行人』處理風險更高。

上述講解一些有關 Logical Damage 的原理,各位就知道如要『資料救援』的條件就必須很熟悉 Windwos、Mac、Linux…的檔案架構原理(File manager),否則只會愈弄愈糟。資料救援軟體並非萬靈丹,畢竟它只是『工具程式」。

Physical Damage 狀況:

  • 硬碟、SSD已抓不到(Can’t Detect HDD)
  • 無法讀寫
  • 運轉不正常
  • 壞軌
  • 異聲

資料還可救回嗎?

上述是屬硬碟、SSD『嚴重受損』程度,自已絕對無法處理,故障硬碟一定要進『無塵室』拆開檢查才可搶救資料。硬碟製造時是在類似台積電等級的高潔淨無塵室內,硬碟內部非常怕污染,絕對不可任意拆解,任何一點塵埃都不容許,所以硬碟上蓋才會貼『封條警告』。

硬碟為什麼需進無塵室拆解?因為非常精密…..因篇幅過大,有興趣請閱覽….

Physical Damage 是屬於『重症』,只能委託專業資料救援公司搶救,接下來最重要工作是如何判斷哪一家真正『專業』?最簡單的判斷方法,親自去看過廠商再決定:

  • 規模
  • 有建構『原廠等級無塵室』?
  • 已故障硬碟勿快遞,易碰撞。親自送去安全。順便可親自查看對方『規模?』『是否有原廠等級無塵室?』

硬碟資料就是因無備份,現在突然故障已很後悔,如今要搶救已故障的硬碟資料,千萬勿草率隨便在網路上 Google 就快遞送去,不但風險高又易摔壞,一定要親自送去順便查看對方規模才安心。

 

Firmware Error 的狀況:

Firmware 是硬碟、SSD 的『原廠控制程式』是燒錄在晶片上,因為是控制硬碟、SSD 啟動和所有功能運作的程式,所以非常重要,就像主機板上的『BIOS』,手機、數位相機….也一定都有 Firmawre Contorller。
萬一 Firmware error 通常會出現非常多的故障、異常現象:

  • 硬碟、SSD 無法啟動
  • 硬碟、SSD 抓不到
  • 硬碟運轉異常
  • 硬碟、SSD 無法讀寫
  • 硬碟、SSD 運作遲鈍

資料還可搶救嗎?

然而因為硬碟、SSD 的 Firmware 是『原廠設計的控制程式』等於是硬碟、SSD 的大腦,萬一 Firmware error 等於『腦死』,雖然硬碟、SSD 零件都還是正常,但已無法啟動、運作、或運作異常就像個『植物人』。為了『保護』Firmware 不遭外力更改、破壞, 原廠一定都是將 Firmware 作層層『保護』外力無法侵入,且 Firmware 對原廠都屬『最高機密』,管制非常嚴格,只有 Firmware 相關工程師才有權限,也才有原廠相關 Firmware Tools,其他工作人員不見得有權限,因為 Firmware 的程式碼內有太多原廠重要機密技術,如外洩將是『大災難』。

PS:手機購賣後自行安裝的 APP 和 Firmware 無關。

進一步形容:當手機故障時,原廠檢查發現內部機件如都正常時,剩下可能就是 Firmware error。這時原廠都是執行『回復原廠預設值』 Firmware Reset、Update 後就恢復正常,這就證明是 Firmware error 的問題,但手機內“照片、資料….可能都會消失,因這是用『 Firmawre 重新安裝』最簡單方法來解決故障,使手機『回復正常』。

注意:手機『『回復原廠預設值』的程序並無任何『 Firmware 修補動作』,而是直接重新安裝一份『全新的 Firmware』等於是一支全新未使用的手機狀態,回復至當初新購時原狀,所以事先都會再三警告『回復原廠預設值,手機內資料會消失,您確定嗎?』

但硬碟、SSD 如發生 Firmware error 時,因為硬碟、SSD內還有重要資料存在,絕不可能重新安裝 Firmware,而是需改用『修補 Firmware』的技術。程序如下:

  • 需先備各硬碟、SSD 原廠『Firmware Tool』但管制嚴格不易取得。
  • 硬碟、SSD 改為『原廠維修模式』 。
  • 執行『 Firmware 檢查』,找出受損 Module。
  • 多次比對檢查,確認後才進行『修補』,這關非常危險,生手常誤判,修補錯誤導致硬碟、SSD受損更加嚴重。Firmware 工程師都有過這痛苦經驗,所以生手都需拿不重要的硬碟、SSD 練習,直到熟練才准修補客戶硬碟、SSD。  

PS 1:硬碟的 Firmware Tools 是用極冷門的 ATA、SCSI Command 撰寫,外界相當陌生,不易使用。
PS 2:網路有流傳『俄羅斯 PC3000』,當初應該是俄羅斯曾取得硬碟原廠的 Firmware Tool後再改寫成 PC3000 販售,是專門『修補硬碟、SSD Firmware 工具』,但功能上還是比不上原廠的正式 Tools。

結論:
發生 Firmware error 時一般人不可能有能力修復。首先不可能取得原廠 Firmware Toosl,就算網路下載 PC3000,也不知如何下手,且 Firmware 非常複雜,生手極易操作錯誤,風險太高,不建議自行嘗試。

資料救援是高科技

『資料救援』是高科技業,並非修理業,除了需具備的技術都非常冷門且艱深,還需投資建構『硬碟原廠等級無塵室』和精密先進儀器設備,不但要有技術還有資金,事實上亞洲有此能力和規模真的極少數,但因『資料救援』是很冷門行業,一般人都沒接觸過,無知識去做正確判斷,都是當遇到硬碟突然故障,才急著隨便網路上找資料救援公司,真的要小心,這也是本人將一些『資料救援』基本技術公開寫出來,希望多少可以幫助不幸遇到硬碟故障需救援的人,有基本知識去評估哪一家『資料救援』才是真正專業?。
將自已重要的故障硬碟交給外人搶救資料,真的就像找醫生看病,勿『病急亂投醫』。

本頁面的文字須先經得作者本人同意授權,才得允許在創用CC 姓名標示-相同方式分享 3.0協議GNU自由文檔許可證下修改和再使用,並須加註文章來源出處&作者名。

返回頂端