目錄

DDRescue 壞軌硬碟 Clone,與它的兩三事

一個新手向的 DDRescue 教學以及一些紀錄。

前言

最近收到了一顆 Toshiba 4TB 的硬碟,聽說是在資料複製的時候就掛掉,NTFS 磁區就變成了 RAW,容量也是寫0位元。CrystalDiskInfo 顯示 05 C5 C6 超標亮燈警告。
當然其實對於這顆硬碟的狀況,其實看多了大致上心裡也有個底了。反正不管是怎麼樣造成的,首當其衝就是應該要先把硬碟 bit-to-bit 複製到其他地方,看是要實體的硬碟 Clone 還是要弄成映像檔或是 VHD 都好,硬碟確定都有完整備份再來看看要修復、救援還是送修幹嘛的。(當然其實我也有用工具看是不是單純的資料表掛掉,不過看起來沒那麼簡單就是了)

/ddrescue/images/2.png

拿 HDTune 進行測試,其實可以看出來這顆硬碟有不少壞軌,即使是 Ubuntu 內建的「磁碟」程式,都會告訴你這顆裡是 NTFS 但是有很多壞軌。於是我就開始尋找一個 適合使用在壞軌硬碟的硬碟拷貝以及免費的手段。最終歸納出了兩個方案,一個是國網中心的再生龍(Clonezilla)、另外就是 GNU 的 DDRescue

分析一下 Clonezilla 跟 DDRescue:
在沒有作業系統的狀況底下,Clonezilla 有比較好的方便性,因為這個程式是設計成 Live CD (Clonezilla Live)的形式,所以免去了安裝作業系統的麻煩,不過就是用比較簡易的文字GUI,然後救援要開啟救援模式。
當然如果你本身就在用 Linux 發行版或是 macOS 的話那其實 DDRescue 會是比較好使用的手段,再怎麼說有圖形化介面(DDRescue-GUI)其實看了也比較安心些,還可以隨時從外頭遠端看電腦的拷貝進行到了什麼狀態(其實是怕電腦在家工作,人不在的時候會不會燒起來)。這也是為什麼我最後採用了這個方案。

安裝與使用

話要先講在前頭,失敗的操作可能會導致資料的丟失(例如說你選錯硬碟之類的)。在某些情況下也不適合進行操作,所以進行操作之前還是要知道這是有風險而且要小心謹慎,要不然可能會越弄越糟。

DDRescue 只支援 Linux 跟 macOS。如果你沒有 Mac 的話其實弄個 Linux 比較省事,我自己是在 Ubuntu 18.10 底下操作的。(另外這個軟體我在 Live CD 底下是沒有辦法使用的,所以還是得裝個系統)

首先要認識的一件事就是 DDRescue 是一個指令列的工具(在終端機裡面稱gddrescue)。至於我上面所提到有 GUI 其實是網路上有人製作了圖形化介面的版本可以搭配 DDRescue 使用。當然我在這邊,也是要用最懶人,最簡易的手段來把軟體裝好。先在這邊附上官方網站,上方是 DDRescue ,下方是 DDRescue-GUI。

Ddrescue - GNU Project - Free Software Foundation (FSF)

DDRescue-GUI Museum - www.hamishmb.com

廢話不多說,那就直接進到正題吧。

以下操作都以 Linux 為主,macOS 版的話如果有機會的話再更新。
(其實是不想拿自己的 MacBook Pro 一整天放在家跑拷貝)
首先就是打開 終端機(Terminal),分別Key入以下指令: sudo add-apt-repository ppa:hamishmb/myppa sudo apt-get update sudo apt-get install ddrescue-gui

第一行是加入 GUI 作者的套件庫來源。
輸入使用者密碼後按下 Enter 確認繼續進行。

/ddrescue/images/3.png

第二行是更新套件資料庫。

/ddrescue/images/4.png

第三行是安裝 DDRescue-GUI,Key了 Y,按下 Enter 終端機就會連著 DDRescue-GUI 相關的必備軟體(如 gddrescue、GetDevInfo之類的)一起裝好,其實真的是非常方便。

/ddrescue/images/5.png

安裝完之後其實就會看到應用程式裡面有 DDRescue 出現。

/ddrescue/images/6.png

這個軟體長這樣:

/ddrescue/images/7.png

硬碟複製的SOP大概就是:
確認硬碟代號 > 設定來源 > 設定log檔位置 > 設定目標 > 拷貝設定 > 拷貝

Disk Information = 確認磁碟機代號用的視窗

/ddrescue/images/8.png

裡頭會列出電腦裡所有的硬碟跟代號,如果你是 Windows 來的可能對 Unix 的代號有點不熟悉,不過其實根本就很簡單的邏輯。

sda的sd就是SCSI跟SATA硬碟的代稱,後面給的序號是abcde這樣排下去的,磁區的序號會寫在後頭用12345排下去,USB硬碟的序號會排比內接硬碟的序號還後面。(當然軟碟機代稱fd、IDE硬碟代稱hd,就像Windows裡的A槽B槽的概念很像)
/dev/sda 顧名思義就是 SATA 的第一顆硬碟
/dev/sdb 以此類推就是 SATA 的第二顆硬碟
那 /dev/sda1 顧名思義就是 SATA 第一顆硬碟的第一個磁區
所以也就是説實體的拷貝可以只單純整顆拷貝,也可以單拷貝一個磁區。

在 macOS 底下硬碟是用 disk0 disk1 disk2…來表示的
磁區是用 disk1s1 disk1s2 disk1s3 表示,其實跟 Linux 的邏輯是一樣的。

Image Source = 設定來源

選擇你要拷貝的來源。
雖然字面上是寫 “Image”,但是其實如果你選擇 Specify Path/File 的話,是可以從映像檔抓內容或是從特定的位置抓內容。

Recovery Map File (previously called logfile) = log檔位置

除了表面上這是個log檔,額外的用途就是複製中途有事可以停下,下次可以透過Log檔從上次中斷的點繼續拷貝。
至於選項的 None 就真的不用考慮了,不懂是怎麼樣的人會選這個選項。

Image Destination = 設定目標

選擇你要拷貝的目標。
跟剛剛的 Image Source 一樣,一樣有 Specify Path/File 的選項,可以儲存成 img (dmg) 映像檔,日後可以直接拿來掛接,適合用在備份硬碟比原先硬碟還要大的狀況下。不過我因為來源跟目標都是相同大小的,所以我就直接設實體硬碟了。

Settings = 設定

/ddrescue/images/9.png

在設定裡頭,底下已經有作者幫各位準備好的 preset ,套用你想用的方案就好。主要影響的部分是在於讀取錯誤的嘗試次數,會大幅影響複製時間跟硬碟狀況不佳時的複製完整度。

通常像我這種壞軌的爛硬碟就不用想太多,選 Set to best recovery 就對了。
設定完之後按 Save settings and close 退出就好。

Start = 開始

開始複製。

/ddrescue/images/10.png

以上大概就是這個軟體最基本該知道的功能,其實非常直觀而且易使用。
補充說明就是在救援的同時可以展開 Detailed Info 跟 Terminal Output 查看複製的狀況,關於壞軌,無法複製的內容,讀取錯誤,複製速度,剩餘時間等等重要的內容都寫在上面,看了也安心。

當完成了之後會跳出對話視窗,上面寫 Your Recovery is complete,這樣你的複製終於告一段落,放下心中的大石頭。

複製完的硬碟(映像檔)如果資料完整的話就可以直接在檔案總管(Finder之類的)裡直接讀取了,如果資料不完整如嚴重的壞軌或是途中有手動停止的話,可能就要搭配資料救援的軟體來完成任務了。

/ddrescue/images/11.png

如果你的硬碟一直處於讀不到東西的狀態,像是 time since last successful read 已經數十分鐘甚至數小時而且 read errors 一直狂飆,沒有摳出甚麼新的東西,不用擔心,建議可以 Abort 停下硬碟,免得對舊硬碟造成更深的傷害,增加救援的難度。目標端雖然備份不完整,但是透過救援軟體去讀目標端的硬碟理論上還是可以救出些許檔案。

在最後,也附上了這個軟體的說明書,裡頭有詳細記載了每個選項、步驟、操作等等的內容。

User Guide for DDRescue-GUI v1.7.1 and higher

後日談

「你的資料有備份嗎?備份在哪裡?」

最近比較常問身邊周遭的人這個問題。不過我通常得到的答案都是不外乎這幾種:沒有備份、雲端硬碟、隨身碟。

我個人認為與其等硬碟壞掉再花大量的時間進行修復、或是花好幾萬送去實驗室進行救援,其實平常多多備份才是省時間、省錢而且安全的做法。不管是機械硬碟、固態硬碟,或是各式隨身碟等等都有可能發生故障導致資料丟失的狀況。長久來看,多買硬碟進行備份,所花的成本會比起租大空間的雲端硬碟跟送去資料救援所花的錢來得低,而且安全性也高很多(畢竟資料救援也沒辦法保證100%救回、雲端硬碟也會有故障的時候)。再加上每幾個月就看一下硬碟健康度,提早預警,發現不對的時候就開始搬資料,這個其實也有幫助。

我有很多老師,年過40科技素養開始沒有跟上時代了,居然説所有的教學資料都儲存在4GB的白牌隨身碟裡頭,沒有備份,當然也不會使用雲端硬碟。直到有次電子講桌中毒,結果老師就很無意間的按下那個很明顯是假的資料夾(就是帶exe的資料夾,圖示還是很經典的XP風格),然後隨身碟的檔案都被藏起來了,於是才在求助。雖然說那個病毒也只是惡作劇程度(而且很老梗)的玩意,但是對於電腦白痴來講那真的是世界末日,數年來的心血全部白費了。

結論就是為了避免發生像是 最終幻想8的原始碼丟失 或是 玩具總動員2素材被刪除 這種極度荒唐的事情在自己身上,所以就多多備份你所珍惜的資料吧。資料是很寶貴的。 如果這篇文章裡頭有任何錯誤的話請在留言處提醒我做修正。 如果你喜歡我的文章,請幫我拍個手,最多可以拍到50下,讓我有動力繼續努力喔!




謝謝您的閱讀。
如果喜歡我的文章,您的 5下鼓掌 將會成為我寫作的動力。

點擊上方鼓掌登入 LikeCoinID點擊鼓掌5下
使我獲得回饋且無須付費轉化為寫作的助力。
您也可以留言、追蹤我,在未來期望也能夠有與您交流互動的機會。