KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[幻覺主題] 簡單易懂的數據恢復原理

[ 5082 查看 / 7 回复 ]

寫在前面

在KFC的同學中有很多人都是大硬盤的愛好者,而且都有很多各種各樣的收藏存放在硬盤當中。
那麼當有一天你突然發現你存放的音樂/動畫/遊戲消失了的時候,你們會如何做呢?
你的所作所為,對你找回你的數據有什麽影響呢?

在這裡我會簡單科普一下數據恢復的一些基本原理,讓各位同學理解計算機是如何管理文件的,爲什麽能做數據恢復,什麽情況下你的數據完全救不回來了等等問題。

這篇文章目前是基於機械式硬盤來寫的,固態硬盤的存儲原理不太一樣。
這篇文章主要針對的是Windows的FAT/NTFS,ExtX/UFS/HFS+等可以參考。

我的知識和技術有很多不到位的地方,請多多包涵。


爲什麽能做數據恢復?
這是一個很寬泛的問題,但是弄懂了原理就能明白很多事情。

數據丟失其實是一個很複雜的情況,它可能有很多方面的原因,從誤刪除這樣的文件管理層面到硬盤固件損壞這樣的硬件層面。
瞭解原因是進行數據恢復的第一步。

我把數據丟失的原因分為2類:
A 文件系統層面 簡單的說你的硬盤物理上來說完全沒有問題,如果你不要數據的話就是一個好盤
B 硬件層面 你的硬盤的電路板/磁頭/盤片出問題了

當然,如果要問有沒有A+B這樣的情況,我覺得也不是沒有啦。比如你不小心格式化以後手一抖又把盤摔了什麽的,不過這樣的話一般神仙也救不回來的(笑
那麼接下來我們分別討論下A/B2種情況爲什麽能做恢復。

A的情形 文件系統層面
a 數據刪除的情況
簡單的說,一個文件可以分成“實體”部份和“索引”部份。“實體”是一個文件的實際內容,“索引”則主要是用來給操作系統定位文件所使用的。爲了效率上的原因,操作系統進行刪除操作的時候,一般都是對刪除文件的索引內容做一個標記,以告訴操作系統,這個文件所佔用的空間現在可以使用,可以寫入新的信息。因為“實體”部份還完好的存在著,所以能夠進行數據恢復。

但是請記住,這裡有幾個要點:

1 請不要再進行寫操作。
不同的操作系統有著不同的分配策略,但是它對所有標記是空閒的空間都是一視同仁的。操作系統不會因為這個部份有數據(刪除文件的實體)而另外一個部份沒有(是00f)而優先向后一種里先寫。
所以 當你不小心刪除一個文件而特別想要恢復它的時候,請記住,不要再對這個分區進行寫操作了,因為再次寫入可能會破壞文件的“實體”部份。

2 數據分佈可能是分散而不是連續的。
文件系統最小的管理單位叫簇,你可以將整個硬盤中的空間想像成一條線,而簇就是其中最小的一段,無數的簇組成了成個空間。
那麼,有一種可能的情況是這樣的。
[1-X-100][101-Y-150][空閒]  --開始時的情況
假如我有X,Y2個文件,然後我將X文件刪除
[1-空閒-100][101-Y-150][空閒]  --刪除后的情況
然後我有寫入了一個需要180大小的文件Z
[1-Z-100][101-Y-150][151-Z-180] --Z寫入的情況
這樣Z文件就被分成2段了

因為現在數據恢復的局限性(特別是在FAT32格式下),恢復的時候很可能Z只能恢復出1-100這部份。
所以請記住,數據恢復不是萬能的。

b 格式化的情況
這個情況比較複雜,但是因為格式化實際寫入的數據量較小,所以很多文件的“實體”部份都未被破壞。同時格式化前分區的備份DBR、FAT表、MFT等信息可能還存在,進行完整恢復的可能性較大。

但要記住,格式化如果改變了分區的原有結構,會對數據恢復帶來很大的不確定性。
比如本來是 [A 10GB][B 30GB]
格式化成 [A 5GB][B 10GB][C25GB]
新分區A B與原來的分區有交錯,運氣好的話可能丟失的文件很少,但不能一直靠運氣不是么。
所以請記住,在格式化以前請備份重要的數據。

c 分區表和DBR丟失的情況
分區表是用來記錄硬盤如何分區的,分區表丟失的表現是硬盤未初始化。
如果只是分區表丟失,是可以通過硬盤上的DBR等信息進行恢復的。

DBR是用來記錄分區格式化的情況和FAT表、MFT位置,DBR丟失的表現形式是硬盤未格式化。
DBR丟失可以通過查找FAT表或者MFT的位置進行手工填寫恢復,如果FAT和MFT還在的話,恢復的幾率很高。

請記住,如果你的硬盤突然變成未初始化/未格式化,請不要著急對它進行初始化/格式化。

B的情形 硬件層面
硬件層面的表現形式很多,而且不同部位的損壞有可能造成相同的表現,所以不太好一概而論是什麽問題。
硬件損壞比較頭疼,維修的話需要一定的運氣和強大的備件庫的支持。
我只簡單介紹一下什麽情況能修好。

a 電路板的問題
電路板是控制硬盤的機械部份、與主板進行通訊的主要部份。把它想成計算機中的電子部份和硬盤中的機械部份溝通的橋樑就對了。
電路板損壞有很多可能,整板損壞、某一個芯片損壞、等等。
要維修的話一般都是用相同型號批次的電路板去替換。聽起來很簡單但有幾個注意點:
1 雖然硬盤看起來是一樣的,但看上去一樣的電路板換上去可能就是不兼容。
2 雖然bios看起來都是一樣的,但版本號不一樣可能就是不兼容。
3 如果兼容了,因為每個硬盤的體質也不太一樣,裏面的P-list、G-list、偏移量什麽的也是不一樣的,簡單的說還是不兼容。
所以不一定能修好。

b 盤體的問題

b-1 電機的問題
電機是用來控制盤片和磁頭運動的動力來源。一個硬盤里有2個電機。
壞了也許可以找個相同型號的換,但不一定能修好。

b-2 盤片的問題
盤片是直接存儲數據的載體,一般是鋁合金或者玻璃的(IBM哭了)。
硬盤的盤片和光盤不一樣,存儲的原理也不太一樣。不要想著能有直接讀取盤片的技術。
盤片非常精細,劃傷了的話基本等於沒救了。

b-3 磁頭的問題
磁頭用來讀取盤片上的信息,把它想像成古老的唱片機上的唱針就對了,只不過磁頭是離盤片很近但還有些距離懸空讀取而已。
磁頭有時候可能會卡住,也許稍微撥一撥就好了。
如果整個頭都壞了的話,也許換一個相同型號的能修好。
壞的磁頭很容易劃傷盤片,那樣就沒救了。

硬盤硬件損壞是比較難修好的,主要是備件的匹配度。
當然如果是運行中摔了這樣非常容易劃傷盤片的故障,我覺得修好的概率不比中500萬來的大……

c 壽命問題
硬盤是有壽命的,但壽命的長短是隨機的。經常有人說他用了10年的硬盤一樣用的很high,也有人買到就中招。
你永遠也不會知道你的硬盤什麽時候掛掉,不過有幾種情況應該引起你的注意,你的硬盤很可能要掛點了。

c-1 壞道
壞道其實就是磁盤上不太容易讀的部份,它分為邏輯壞道和物理壞道2種。邏輯壞道可以通過系統自帶的工具直接修復,而物理壞道是修不好的。處理物理壞道的方式是對壞道的部份進行屏蔽,將它的位置寫入p-list或者g-list中。
你可以通過讀取S.M.A.R.T信息中的05、C5等部份來查看壞道信息。
S.M.A.R.T是每個硬盤都有的一種自我檢測的機制,你可以使用hdture等工具查詢smart信息。
物理壞道是很普遍的,一般硬盤出廠時就屏蔽了當時偵測到的壞道,同時在標稱的容量以外還保留了一些空餘部份。當硬盤檢測到壞道後,會自動屏蔽壞道并將空餘部份啟用來保證容量。
當你打開某個文件感覺特別慢,或者經常出錯的時候,可以掃描下硬盤有沒有壞道的產生。
壞道非常嚴重的話系統可能無法識別硬盤。

針對壞道有基於硬件基礎的增強讀取能力的工具可以強行讀取,不過如果壞的太厲害的話工具只能靠多次讀取取多數值的方法來確定數據,所以也不是能100%讀取成功的。

c-2 聲音
好盤和快要壞的盤的聲音是不太一樣的。
如果你的硬盤經常發出各種奇怪的聲音,請注意備份你的數據。


如何提高數據的安全性?
誰也不希望自己辛辛苦苦保存下來的數據突然灰飛煙滅,我個人覺得以下幾個是比較可行的方法。

A 備份
備份是個很簡單但是也非常有用的方法,但有些地方我覺得要注意下。
1 刻盤雖然很方便,但是盤片劃傷也是很難救回來的。
2 刻錄盤的染料也是有壽命的。
3 一個經常在通電使用的硬盤掛掉的可能性不比一個不通電的硬盤高,這裏面有個叫做運氣的變量在起作用。
4 USB閃存盤也是有壽命的,閃存的讀寫次數是有上限的。
5 網絡存儲其實是一個很好的辦法。

B 基於多硬盤的RAID
個人用比較合適的RAID是raid5,磁盤利用率相對較高,速度也可以接受。
不過raid中有一個硬盤壞了重組的話花的時間也挺長的。
最后编辑Wittenfeld 最后编辑于 2011-05-18 23:36:27
9

评分次数

    本主题由 版主 kameu03 于 2011/5/18 18:37:22 执行 设置高亮 操作
    分享 转发
    Elissia Schalesin von Fahrenheit
    1942.10 法國 雷恩

    黨衛隊旅隊長兼武装黨衛軍少将

    B集團軍群
    武裝黨衛隊「帝國」裝甲擲彈兵師
    第三「德意志」裝甲擲彈兵團團長

    獲得榮譽

    二級鐵十字勛章
    一級鐵十字勛章
    金質德意志十字勋章
    騎士十字勋章 
    黨衛隊全國領袖榮譽賜劍
    東線冬季戰役紀念章
    銀質步兵突擊章
    德意志美少女團榮譽勛帶
    TOP

    其實.......我總覺得這些技術帖按版規來說是發在土豆星......orz
    因為思兼有事這幾天潛水
    我跟另一位茶廳版主談一下 oTL

    ==========================
    討論結果,認定公主具有教育意義的帖子
    保留在茶廳
    該不會是為了幫助這帖而寫出教程吧.....XD  http://www.keyfc.net/bbs/showtopic-45239.aspx
    水羊不可一日無牡丹!!!
    你今天膜拜牡丹神了沒??
    TOP

    這帖作為教學文的性質留在茶餐厅,雖然是技術含量比較高的文章,但用詞經過簡化以面向一般讀者。依照我的理解,不適合發在茶餐廳裡的技術文,是從一開始就用高深的措詞,而沒有作出足夠的解釋。讓一般讀者不能夠參與,從而導致主題本身的人氣低下,或因各種誤解而製造麻煩。

    歡迎像樓主這樣認真花費精力寫的文章,不論是心情文章、教學文、還是討論帖,讓大家有興趣參與,甚至從中獲得樂趣及知識,都應當鼓勵。
    最后编辑kameu03 最后编辑于 2011-05-18 17:41:20
    TOP

    ╮(╯▽╰)╭
    掛掉的那塊盤就不要了╮(╯▽╰)╭
    準備向Prz學習全都刻藍光╮(╯▽╰)╭

    多謝指導,準備自行修復硬盤試試看

    不過染料有壽命的話Lightscribe應該會長一些吧?

    RAID的確安全,不過沒有Full-tower一般都沒有架的空間吧……
    1

    评分次数

      TOP

      经常在服务器上折腾Raid的资深操作员表示自从96年第一块硬盘(某腾的大脚)坏掉后人生的某座右铭就改为了“除女朋友外,任何事都要做备份!”

      以至于现在的习惯不管什么钥匙一拿到手就去复制一把.............
      模范好人活雷锋爱女儿胜过爱老婆女儿汐的爸爸喜欢给老婆换装富有、阳光、和谐的程序员领导心中的金牛座工作模范为家庭抛弃二次元的 服务器魔王Bce
      L.B四个月,最喜欢看小女生跳皮筋。Orz
      L.B五个月,最喜欢的玩具是键盘。 Orz
      L.B六个月,哄睡觉的方式是抱着不停的上下楼梯。 Orz
      L.B七个月,开始招猫逗狗撵鸽子。 Orz
      L.B八个月,四颗门牙咬咪咪。 Orz
      L.B九个月,啊呜啊哇啊呜啊不啊呀啊爸。 Orz

      Laputa Chen (1984-2012) 我们一定会在量子的海洋中再会的。
      TOP

      無月桑辛苦/w\
      現在硬盤白菜價於是買了一堆的硬盤,以前也格式化然後恢復過全盤數據(・´ェ`・)
      嘛,現在的態度就是不求天長地久只求曾經擁有(ry
      twitter/fanfou @kamisunagawa
      TOP

      所以這貼還是在說明備份的必要嗎── (拖走……)
      現在我日常用的文件都有幾個複本
      手機上一份、平版上一份、然後desktop上一份
      更新過的文件用dropbox進行同步就好了
      1

      评分次数

        My treasure box
        蔚藍色的珍珠,將它們一顆顆放進寶箱裡
        TOP

        看到這貼有問題想請教一下.....如果是電源發生問題...
        把不適當的插頭插到硬盤上再運行結果出了一點煙...還有一股燒焦的味道...那大概是壞什麼?(電路板的問題?)
        還有修回來有可能嗎?價格大概要多少?
        1

        评分次数

          TOP