5/25/2015

[電腦/資料救援]外接硬碟爛掉事件簿

  來紀錄一下最近幹的蠢事。

  大約兩個禮拜以前,我的1TB外接硬碟開始出問題,讀取速度很明顯降低非常多,雖然還不到有異音的程度,但可以明顯感覺到這傢伙快不行了。
  看了一下外殼上貼的標籤,寫著98年11月21日,到今年都已經邁入第六年,也是時候該換了。


  還想著過幾天比較有空要去買個新的傢伙,隔天就發現硬碟中某些資料夾消失,再隔天發現有些資料夾打不開,結果還沒來得及進貨,原本這顆就打不開了。
  發現的時候我的心臟稍微涼了一下,畢竟所有資料--不管是各種載來的非法【嗶】本【嗶】片【嗶】文【嗶】圖【嗶】遊戲還是我還沒完成的文章、繪圖、作業原始檔可都在這裏面,總計大小約850GB左右,完全沒有備份非常糟糕的資料保存習慣
  但涼過以後,不曉得是哪條神經接錯線,我沒去找人幫忙而是決定開始自救。

  當時心中的想法大約是:啊反正爛掉就算了乾脆一切歸零重來吧。
  我也不曉得為啥會這樣想,不過依照往例來看,大概是因為大腦發現再這樣下去我的精神會受到打擊,於是直接對這件事進行了切割,讓我能冷靜處理問題吧。
  好吧那不是重點,重點是我開始拿著那將近1T的資料來進行實驗,在沒有複本的狀況下。
  首先當然要去Google找別人的實例來嘗試了,只能說相關案例真是多不勝數,大家的習慣都好糟糕啊呵呵。
  果然我並不孤單。

  下面列的是這次嘗試的方法。

市面上的檔案救援程式
FinalData
MiniTool Partition Wizard
Portable HDClone Pro
Portable R-Studio

電腦內建檔案修復程式
chkdsk.exe

  基本上在列的程式全部都被我試過一輪了。
  其實對一顆已經操勞過度的外接硬碟這樣胡攪蠻幹只會加快資料說再見的速度而已,請不要這麼做。
  因為我對硬體實在不了解,再加上感覺起來並不是外接殼的問題(真的只是感覺,沒有任何理由),就沒去嘗試針對硬體的救援方法。
  (應該也不會是電源的問題,因為這個外接硬碟是需要插電的那種時代的產物

  第一回合,由於chkdsk是電腦本身內建的公用程式,秉持著可以不下載程式就不要下載程式的想法,一開始試的就是它了。
  於是我開始愉快地對那顆可憐的硬碟進行毀滅性修復,看著cmd彷彿永無止盡地跑著進度,我突然覺得自己就像在用吸管插入冰沙裡面試圖把裡面的碎冰塊排整齊一樣。
  就這樣跑了一兩天(自從開始檔案以後,排程根本是以天為單位在進行的),發現chksdk修復動作卡在第四階段不動,又過了一晚上還是沒動靜,我就把它給ctrl+c了。

  看來此路有點塞不太好走呢……是時候try其他程式了,都不行再回頭看吧。於是就去找了其他程式來準備逐一用在那顆硬碟上。

  第二回合一開始是找FinalData和R-Studio。
  這一類的程式基本使用步驟大都是先把硬碟掃過修復一遍,使用者再把資料拷貝出來。
  大致確認過使用方法後,我再度很愉快地打算開始用非法的程式掃描那顆越來越可憐的硬碟。
  問題立刻就冒出來了。
  開頭也說過,那顆硬碟的讀取速度已經變得非常慢,甚至到後來根本慢到只要打開我的電腦,檔案總管就會整個當掉的程度,導致不管開哪個程式,都會在準備階段就卡住。
  首先嘗試的是R-Studio和FinalData,但連開始程式指定位置都會當個半死,這該怎麼辦呢?
  當就讓他當唄。那是努力運轉的證明嘛。當時我是這麼想的,於是我就跑去睡覺了,打算讓它們跑個一晚上試試。
  事實上自從硬碟出問題以後,我久違地過了一個禮拜的正常作息生活。
  隔天神清氣爽起床後發現噢程式開啟成功了,突然有點小小的成就感,昨晚先去睡果然是正確的選擇。
  然後就開始進行一個掃瞄的動作,先使用R-Studio,程式的進度條有在跑,很好很好。
  很好……個毛線,底下的時間預估顯示要跑個十八天才會結束,這是說我的電腦十八天不能關機休息的意思嗎?硬碟不會轉到燒掉吧?
  雖然當時是這麼想的,但我還是意思意思讓它試了兩天左右,進程約漲了3%,我突然聽到腦中有哪條神經斷掉的聲音。
  於是不意外地直接停止掃描,順便把電腦關了讓它和硬碟都休息一下。

  然後我就想,一定要先掃描修復才能挖資料嗎?為啥不能直接拷貝整個硬碟?
  所以就又找來HDClone,根據介紹這傢伙是可以強制備份硬碟的,試試看吧。
  第三回合START!
  當然,HDClone也是在準備階段卡住,不過我已經很習慣直接去睡覺不理它了,隔天早上也不意外看到它準備好了。
  早上開始拷貝,上完整天的課,晚上回來發現電腦已經因為不知名的錯誤而重新啟動,然後用來備份的硬碟也跟著沒辦法開啟。
  這真的有SHOCK到我,舊硬碟爛掉就算了,林老師新的那顆外接硬碟別出事啊!

  用現有程式檢查新硬碟,檔案貌似有成功拷進去,硬碟本身也可以被電腦讀到,只是沒辦法開啟而已。
  瀏覽了一下複製的檔案,我猜可能是複製到不該複製的東西導致它打不開(這個也只是猜測,硬碟裡面有些檔案我沒看過),因為不太想繼續冒險,就跑去帶了另一顆新的硬碟回來,想說至少先確保既有資料的安全再說。
  反正本來就有考慮買兩個,現在也不用考慮了。
  這次的備份非常順利,畢竟東西都已經在新的硬碟裡了,我只要篩選掉不需要的檔案就可以,不會像讀取舊硬碟一樣當得亂七八糟、連接也若有似無不知道到底能不能開得起來。

  檔案全都搬到新硬碟二號以後,初步估算大約有90%容量的資料成功救回,但那是以容量為單位來看。
  如果是以檔案為單位來算搞不好只有六成救回來了,大多是影像檔和程式檔,佔的容量也比較大,而壓縮檔(同人本)和文字檔有不少是格式已經損毀的,就算開起來也只是亂碼。
  其中我自己的繪圖原始檔倒是沒事,但小說的筆記和未完成的篇章就沒這麼幸運了,嗚呼哀哉。
  不過就結果來看,這樣亂搞還能找回大半的東西,老實說我已經算滿意了,至於爛掉的檔案就再說吧。

  回頭檢視這次的狀況,感覺應該先用HDClone把東西挖出來,省時間以外也不用懷疑在掃描和修復過程中有沒有把什麼檔案給絞碎了,等現有的資料備份完後也能安心凌虐修復舊硬碟的檔案。
  至於現在嘛……反正資料都妥善挪到新硬碟二號了,一號不是打不開嗎?
  那就格式化吧。硬碟本身也沒壞,資料也不用顧慮,格式化是個便捷的手段。
  而且格式化以後也確實能開啟了,多好用。
  然後那顆舊硬碟,我正在用Partition Wizard對它進行不知道第幾次掃描+修復(其實這個程式也是用chkdsk就是了),看會掃出什麼東西。
  之後有可能會嘗試物理上的……肢解嘗試,大概吧。

  不曉得它什麼時候能正式安眠(合掌)








  下面是cmd的部分指令整理,筆記用。



chkdsk:修復、檢查磁碟

chkdsk [volume[[path]filename]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:size]]

volume 磁碟機代號(+冒號),掛接點或磁碟區名稱。
filename 只適用於FAT/FAT32:指定要進行分散程度檢查的檔案。
/f 修復磁碟錯誤。
/v FAT/FAT32模式:顯示磁碟上每個檔案的完整路徑及名稱。
NTFS模式:如果有清除的訊息,也一併顯示。
/r 找出損壞的磁區並復原可讀取的資訊(含/f)
/l:size 只適用於NTFS:將紀錄檔大小變更為指定的kb數值。
如果沒有指定大小,就顯示目前的大小。
/x 如果必須的話,強制先解下磁碟區。
所有在磁碟區上開啟的控制代碼都會失效(含/f)
/i 只適用於NTFS:不檢查索引項目。
/c 只適用於NTFS:跳過資料夾結構的循環檢查。



範例

chkdsk h: /f /r /x



資料來源

[ cmd ] Chkdsk 修復磁碟錯誤好用的指令





robocopy:大量檔案備份、複製

/a 只複製設定成保存屬性的檔案,不改變屬性設定。
/m 只複製設定成保存屬性的檔案,清除保存屬性。
/k 複製檔案屬性。通常Xcopy會重設唯讀屬性。

/c發生錯誤時也繼續複製。
/g允許加密檔案複製到不支援加密的目的地。
/h複製隱藏檔和系統檔。
/i目的如果不存在,且複製一個以上的檔案時,就假設指定的目的一定是目錄。
/n用所產生的短檔名進行複製。
/p在建立每個目的檔案時提示。
/r覆蓋唯獨檔。
/u只複製已存在目的位置的檔案。
/v驗證每個新檔案。
/w複製前提醒使用者按鍵繼續。
/y不提醒使用者確認是否覆蓋已存在的檔案。
/-y提醒使用者確認是否覆蓋已存在的檔案。
/z在可重新開始的模式中複製網路檔案。

/o複製檔案所有權及ACL資訊。
/x複製檔案審查設定(含/o)

/f複製時顯示來源及目的檔案的全部檔名。
/l顯示要複製的檔案。
/q複製時不顯示檔名。

/e複製所有子資料夾(子目錄),包含空資料夾。
/s複製所有子資料夾(子目錄),排除空資料夾。
/t建立目錄結構,不複製其中的檔案,不包括空目錄及子目錄。
/t /e建立包括空目錄及子目錄的目錄結構,不複製其中的檔案。

/d:m-d-y複製在指定日期當天或之後發生變更的檔案。
若沒有給定日期,只複製來源檔案日期比目的檔案日期為新的檔案。
/dcopy:t保留所有檔案和資料夾的時間戳記。
/eta顯示預計完成時間。
/exclude:file1[+file2][+file3]
指定檔案清單字串,每個字串應該在檔案中的不同行。
如果有字串對應到要進行複製的檔案絕對路徑的任何部分,這個檔案會被排除複製。
例如,指定字串\obj\或.obj,會排除所有在obj目錄下或副檔名為.obj的檔案複製。
/mir等於/e加/purge。
/mt:n以n個執行序執行多執行序複製,1≦n≦128。
/ndl畫面上不會列出備份目錄的明細。
/nfl畫面上不會列出備份檔案的明細。
/njh畫面上不會列出工作標頭。
/purge如果目的端有來源不存在的檔案或目錄,則刪除目的端檔案。
/r:nn=失敗複本的重複次數。
/unicode畫面上的進度資訊以unicode顯示(不影響檔案複製)
/xa:sh跳過屬性為s(系統)和h(隱藏)的檔案。
/xj跳過NTFS junction檔案。
/xo如果已有相同的檔案,且時間相同或較舊則跳過。



範例

robocopy h:\ i:\ /mir /mt:100
說明:將h:\的內容複製到i:\,但相同的內容略過,mt為通道數量



資料來源

Windows 7 秘密指令,複製大量檔案超快速
Windows 7 備份 robocopy(差異性備份)
用Xcopy來備份 part.II 指令大集合實戰篇
Windows Vista / 7 檔案複製、移動、同步指令:robocopy





Windows藍屏錯誤對照表0~999

0 0x00000000 作業完成。
1 0x00000001 不正確的函數。
2 0x00000002 系統找不到指定的檔案。
3 0x00000003 系統找不到指定的路徑。
4 0x00000004 系統無法開啟檔案。
5 0x00000005 拒絕存取。
6 0x00000006 無效的代碼。
7 0x00000007 儲存體控制區塊已毀。
8 0x00000008 儲存體空間不足,無法處理這個指令。
9 0x00000009 儲存體控制區塊地址無效。
10 0x0000000A 環境不正確。
11 0x0000000B 嘗試加載一個格式錯誤的程序。
12 0x0000000C 存取碼錯誤。
13 0x0000000D 資料錯誤。
14 0x0000000E 儲存體空間不夠,無法完成這項作業。
15 0x0000000F 系統找不到指定的磁盤驅動器。
16 0x00000010 無法移除目錄。
16 0x00000010 無法移除目錄。
17 0x00000011 系統無法將檔案移到 其它的磁盤驅動器。
18 0x00000012 沒有任何檔案。
19 0x00000013 儲存媒體為寫保護狀態。
20 0x00000014 系統找不到指定的裝置。
21 0x00000015 裝置尚未就緒。
22 0x00000016 裝置無法識別指令。
23 0x00000017 資料錯誤 (cyclic redundancy check)
24 0x00000018 程序發出一個長度錯誤的指令。
25 0x00000019 磁盤驅動器在磁盤找不到 持定的扇區或磁道。
26 0x0000001A 指定的磁盤或磁盤無法存取。
27 0x0000001B 磁盤驅動器找不到要求的扇區。
28 0x0000001C 打印機沒有紙。
29 0x0000001D 系統無法將資料寫入指定的磁盤驅動器。
30 0x0000001E 系統無法讀取指定的裝置。
31 0x0000001F 連接到系統的某個裝置沒有作用。
32 0x00000020 The process cannot access the file because it is being used by another process.
33 0x00000021 檔案的一部份被鎖定, 現在無法存取。
34 0x00000022 磁盤驅動器的磁盤不正確。請將 %2 (Volume Serial Number: %3) 插入磁盤機%1。
36 0x00000024 開啟的分享檔案數量太多。
38 0x00000026 到達檔案結尾。
39 0x00000027 磁盤已滿。
50 0x00000032 不支持這種網絡要求。
51 0x00000033 遠程計算機無法使用。
52 0x00000034 網絡名稱重複。
53 0x00000035 網絡路徑找不到。
54 0x00000036 網絡忙碌中。
55 0x00000037 The specified network resource or device is no longer available.
56 0x00000038 The network BIOS command limit has been reached.
57 0x00000039 網絡配接卡發生問題。
58 0x0000003A 指定的服務器無法執行要求的作業。
59 0x0000003B 網絡發生意外錯誤。
60 0x0000003C 遠程配接卡不兼容。
61 0x0000003D 打印機隊列已滿。
62 0x0000003E 服務器的空間無法儲存等候打印的檔案。
63 0x0000003F 等候打印的檔案已經刪除。
64 0x00000040 指定的網絡名稱無法使用。
65 0x00000041 拒絕存取網絡。
65 0x00000041 拒絕存取網絡。
66 0x00000042 網絡資源類型錯誤。
67 0x00000043 網絡名稱找不到。
68 0x00000044 超過區域計算機網絡配接卡的名稱限制。
69 0x00000045 超過網絡 BIOS 作業階段的限制。
70 0x00000046 遠程服務器已經暫停或者正在起始中。
71 0x00000047 由於聯機數目已達上限,此時無法再聯機到這台遠程計算機。
72 0x00000048 指定的打印機或磁盤裝置已經暫停作用。
80 0x00000050 檔案已經存在。
82 0x00000052 無法建立目錄或檔案。
83 0x00000053 INT 24 失敗。
84 0x00000054 處理這項要求的儲存體無法使用。
85 0x00000055 近端裝置名稱已經在使用中。
86 0x00000056 指定的網絡密碼錯誤。
87 0x00000057 參數錯誤。
88 0x00000058 網絡發生資料寫入錯誤。
89 0x00000059 此時系統無法執行其它行程。
100 0x00000064 無法建立其它的系統 semaphore。
101 0x00000065 屬於其它行程專用的 semaphore.
102 0x00000066 semaphore 已經設定,而且無法關閉。
103 0x00000067 無法指定 semaphore 。
104 0x00000068 在岔斷時間無法要求專用的 semaphore 。
104 0x00000068 在岔斷時間無法要求專用的 semaphore 。
105 0x00000069 此 semaphore 先前的擁有權已經結束。
106 0x0000006A 請將磁盤插入 %1。
107 0x0000006B 因為代用的磁盤尚未插入,所以程序已經停止。
108 0x0000006C 磁盤正在使用中或被鎖定。
109 0x0000006D Pipe 已經中止。
110 0x0000006E 系統無法開啟指定的 裝置或檔案。
111 0x0000006F 文檔名太長。
112 0x00000070 磁盤空間不足。
113 0x00000071 沒有可用的內部檔案標識符。
114 0x00000072 目標內部檔案標識符不正確。
117 0x00000075 由應用程序所執行的 IOCTL 呼叫不正確。
118 0x00000076 寫入驗證參數值不正確。
119 0x00000077 系統不支持所要求的指令。
120 0x00000078 此項功能僅在 Win32 模式有效。
121 0x00000079 semaphore 超過逾時期間。
122 0x0000007A 傳到系統呼叫的資料區域太小。
123 0x0000007B 文件名、目錄名稱或儲存體卷標語法錯誤。
124 0x0000007C 系統呼叫層次不正確。
125 0x0000007D 磁盤沒有設定卷標。
126 0x0000007E 找不到指定的模塊。
127 0x0000007F 找不到指定的程序。
128 0x00000080 沒有子行程可供等待。
128 0x00000080 沒有子行程可供等待。
129 0x00000081 這個應用程序無法在 Win32 模式下執行。
130 0x00000082 Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O.
131 0x00000083 嘗試將檔案指針移至檔案開頭之前。
132 0x00000084 無法在指定的裝置或檔案,設定檔案指針。
133 0x00000085 JOIN 或 SUBST 指令 無法用於 內含事先結合過的磁盤驅動器。
134 0x00000086 嘗試在已經結合的磁盤驅動器,使用 JOIN 或 SUBST 指令。
135 0x00000087 嘗試在已經替換的磁盤驅動器,使 用 JOIN 或 SUBST 指令。
136 0x00000088 系統嘗試刪除 未連結過的磁盤驅動器的連結關係。
137 0x00000089 系統嘗試刪除 未替換過的磁盤驅動器的替換關係。
138 0x0000008A 系統嘗試將磁盤驅動器結合到已經結合過之磁盤驅動器的目錄。
139 0x0000008B 系統嘗試將磁盤驅動器替換成已經替換過之磁盤驅動器的目錄。
140 0x0000008C 系統嘗試將磁盤驅動器替換成已經替換過之磁盤驅動器的目錄。
141 0x000000 系統嘗試將磁盤驅動器 SUBST 成已結合的磁盤驅動器 目錄。
142 0x0000008E 系統此刻無法執行 JOIN 或 SUBST。
143 0x0000008F 系統無法將磁盤驅動器結合或替換同一磁盤驅動器下目錄。
144 0x00000090 這個目錄不是根目錄的子目錄。
145 0x00000091 目錄仍有資料。
146 0x00000092 指定的路徑已經被替換過。
147 0x00000093 資源不足,無法處理這項指令。
148 0x00000094 指定的路徑這時候無法使用。
148 0x00000094 指定的路徑這時候無法使用。
149 0x00000095 嘗試要結合或替換的磁盤驅動器目錄,是已經替換過的的目標。
150 0x00000096 CONFIG.SYS 文件未指定系統追蹤信息,或是追蹤功能被取消。
151 0x00000097 指定的 semaphore事件 DosMuxSemWait 數目不正確。
152 0x00000098 DosMuxSemWait 沒有執行;設定太多的 semaphore。
153 0x00000099 DosMuxSemWait 清單不正確。
154 0x0000009A 您所輸入的儲存媒體標 元長度限制。
155 0x0000009B 無法建立其它的執行緒。
156 0x0000009C 接收行程拒絕接受信號。
157 0x0000009D 區段已經被捨棄,無法被鎖定。
158 0x0000009E 區段已經解除鎖定。
159 0x0000009F 執行緒識別碼的地址不正確。
160 0x000000A0 傳到 DosExecPgm 的自變量字符串不正確。
161 0x000000A1 指定的路徑不正確。
162 0x000000A2 信號等候處理。
164 0x000000A4 系統無法建立執行緒。
167 0x000000A7 無法鎖定檔案的部份範圍。
170 0x000000AA 所要求的資源正在使用中。
173 0x000000AD 取消範圍的鎖定要求不明顯。
174 0x000000AE 檔案系統不支持自動變更鎖定類型。
180 0x000000B4 系統發現不正確的區段號碼。
182 0x000000B6 操作系統無法執行 %1。
182 0x000000B6 操作系統無法執行 %1。
183 0x000000B7 檔案已存在,無法建立同一檔案。
186 0x000000BA 傳送的旗號錯誤。
187 0x000000BB 指定的系統旗號找不到。
188 0x000000BC 操作系統無法執行 %1。
189 0x000000BD 操作系統無法執行 %1。
190 0x000000BE 操作系統無法執行 %1。
191 0x000000BF 無法在 Win32 模式下執行 %1。
192 0x000000C0 操作系統無法執行 %1。
193 0x000000C1 %1 不是正確的 Win32 應用程序。
194 0x000000C2 操作系統無法執行 %1。
195 0x000000C3 操作系統無法執行 %1。
196 0x000000C4 操作系統無法執行 這個應用程序。
197 0x000000C5 操作系統目前無法執行 這個應用程序。
198 0x000000C6 操作系統無法執行 %1。
199 0x000000C7 操作系統無法執行 這個應用程序。
200 0x000000C8 程序代碼的區段不可以大於或等於 64KB。
201 0x000000C9 操作系統無法執行 %1。
202 0x000000CA 操作系統無法執行 %1。
203 0x000000CB 系統找不到輸入的環境選項。
205 0x000000CD 在指令子目錄下,沒有任何行程有信號副處理程序。
206 0x000000CE 文件名稱或擴展名太長。
207 0x000000CF ring 2 堆棧使用中。
207 0x000000CF ring 2 堆棧使用中。
208 0x000000D0 輸入的通用檔名字元 * 或 ? 不正確,或指定太多的通用檔名字元。
209 0x000000D1 所傳送的信號不正確。
210 0x000000D2 無法設定信號處理程序。
212 0x000000D4 區段被鎖定,而且無法重新配置。
214 0x000000D6 附加到此程序或動態連結模塊的動態連結模塊太多。
215 0x000000D7 Can't nest calls to LoadModule.
230 0x000000E6 The pipe state is invalid.
231 0x000000E7 所有的 pipe instances 都在忙碌中。
232 0x000000E8 The pipe is being closed.
233 0x000000E9 No process is on the other end of the pipe.
234 0x000000EA 有更多可用的資料。
240 0x000000F0 作業階段被取消。
254 0x000000FE 指定的延伸屬性名稱無效。
255 0x000000FF 延伸的屬性不一致。
259 0x00000103 沒有可用的資料。
266 0x0000010A 無法使用 Copy API。
267 0x0000010B 目錄名稱錯誤。
275 0x00000113 延伸屬性不適用於緩衝區。
276 0x00000114 在外掛的檔案系統上的延伸屬性檔案已經毀損。
277 0x00000115 延伸屬性表格文件滿。
278 0x00000116 指定的延伸屬性代碼無效。
278 0x00000116 指定的延伸屬性代碼無效。
282 0x0000011A 外掛的這個檔案系統不支持延伸屬性。
288 0x00000120 意圖釋放不屬於叫用者的 mutex。
298 0x0000012A semaphore 傳送次數過多。
299 0x0000012B 只完成 Read/WriteProcessMemory 的部份要求。
317 0x0000013D 系統找不到位於訊息文件 %2 中編號為 0x0000%1 的訊息。
487 0x000001E7 嘗試存取無效的地址。
534 0x00000216 運算結果超過 32 位。
535 0x00000217 信道的另一端有一個行程在接送資料。
536 0x00000218 等候行程來開啟信道的另一端。
994 0x000003E2 存取延伸的屬性被拒。
995 0x000003E3 由於執行緒結束或應用程序要求,而異常終止 I/O 作業。
996 0x000003E4 重疊的 I/O 事件不是設定成通知狀態。
997 0x000003E5 正在處理重疊的 I/O 作業。
998 0x000003E6 對內存位置的無效存取。
999 0x000003E7 執行 inpage 作業發生錯誤。



資料來源

windows藍屏錯誤對照表

沒有留言:

張貼留言