DDREASE是一種用於從檔案或區塊裝置(如硬碟、SSD、RAM磁碟、CD、DVD和USB儲存裝置)復原資料的工具。它將資料從一個區塊設備複製到另一個區塊設備,留下損壞的資料區塊,只移動好的資料區塊。 ddreasue是一種強大的恢復工具,完全自動化,因為它在恢復操作期間不需要任何干擾。此外,由於有了ddasue地圖文件,它可以隨時停止和恢復。 DDREASE的其他主要功能如下:
在這篇指南中,我將深入研究這款強大的資料復原工具,探討其安裝步驟以及如何利用它來還原區塊裝置或分割區。
請注意:在本指南中,我使用的是Linux發行版(Ubuntu 22.04)。 Ddreasure實用程式的安裝步驟可能會因發行版而異,但適用於所有Linux發行版的指引是通用的。
#要在Linux上安裝ddrescue,尤其是Ubuntu及其版本或基於Debian的發行版,請使用:用途:
sudo apt install gddrescue
要在REHL、Fedora和CentOS上安裝它,首先啟用ETEL(Extra Packages for Enterprise Linux)。
sudo yum install epel—release
上面的指令適用於各自發行版的較新版本。
然後執行以下命令以安裝ddreasue:
sudo yum install ddrescue
對於Arch—Linux和Manjaro等基於Arch—Linux發行版,請使用下面給出的命令安裝ddrescue恢復實用程式。
sudo pacman—S ddrescue
因為我使用的是Ubuntu 22.04,所以我會使用APT套件管理器來安裝它。
在使用ddreasue工具恢復資料之前,我建議不熟悉恢復過程的使用者了解Linux的一些命名約定。
Linux將區塊(裝置)識別為文件,並將它們放在/dev目錄中。要列出/dev目錄中的文件,請使用ls/dev指令。
硬碟(儲存區塊)以sd和字母表表示;在多個儲存裝置的情況下,檔案將表示為/dev/sda、/dev/sdb等。
如果儲存裝置有分割區,則它們將由具有對應磁碟機檔案名稱的數字表示,例如/dev/sda1、/dev/sda2等等。
要列出系統中的所有區塊和其他連接的設備,請使用list block lsblk指令:
lsblk
#ddrescue指令可以恢復整個區塊(包含MBR和分割區)或分割區。另一方面,如果您只需要從特定分區恢復特定的文件,那麼最好恢復分區而不是整個區塊。
#在使用ddue實用程式之前,應該先考慮一些非常關鍵的問題:
#安裝ddrescue實用程式並了解命名約定後,下一步是識別故障磁碟並使用ddrescue工具進行復原。
第一個範例將包含恢復整個區塊的過程。首先,使用lsblk指令列出區塊:
lsblk—o Name,Size,FSTYPE
—o標誌用於指定命令應輸出哪種類型的資訊(欄位)。我已經提到了名稱、大小和FSTYPE或檔案系統類型。
#現在,您可以確定目標區塊、分割區和位置,以儲存已拯救的映像檔。
另一個需要注意的重要事情是,在Linux上,區塊名稱在引導時是動態分配的,在重新引導後,區塊的名稱可能會改變。所以,在記下區塊名稱時要小心。
現在,使用下面的語法將區塊作為映像檔進行拯救,並在根目錄中使用日誌檔案。
sudo ddrescue—d—rX/dev/[block][path/name]. img [logfile_name]. log
注意:將映像檔的[block]、[path/name]和[logfile_name]對應替換為首選名稱。
在本例中,我正在使用映像檔名recovery.img還原根目錄中的/dev/sda。日誌檔案(也稱為映射檔案)是必要的,如果要隨時恢復復原。
Sudo dd救援-d-r2/dev/sda2恢復.img恢復.log
在上述指令中使用了兩個重要標誌。
D | —間接 | 用來告訴工具直接存取磁碟而忽略核心快取 |
RX | -重試-通過 | 在用於告訴工具重試壞扇區X次 |
執行上述指令時,您會注意到文件瀏覽器中出現兩個文件,名稱分別為recovery. img和recovery.log。
#恢復時間取決於輸入區塊的大小和損壞。如果要恢復大型資料塊,我建議使用日誌文件,因為該過程可能需要幾個小時甚至幾天的時間才能完成。
上述指令的輸出如下:
#在輸出映像中,ipos是輸入檔案的輸入位置,從那裡開始複製,opos是輸出檔案上寫入資料的輸出位置。
非嘗試是區塊的大小沒有等待嘗試。獲救者表示成功恢復的區塊的大小。被拯救的pct表示成功恢復了資料的百分比。術語,非修剪,非報廢,壞扇區和壞區域是不言自明的。但是,讀取錯誤術語以數字表示失敗的讀取嘗試。
運行時間顯示工具完成過程所花費的時間,而剩餘時間則是完成恢復過程所剩餘的時間。上面的輸出顯示剩餘時間為0,因為進程已經完成,請在下面的未完成進程的圖像中讀取輸出。
#讓我們看看在日誌文件中得到了什麼;要打開生成的日誌文件,請使用vim recovery.log命令。
#current_status是 ,表示進程結束,而current_pos是區塊上的位置。
目前狀態清單請見下表:
? | 複製 |
* | 修剪 |
/ | 報廢 |
– | 重試 |
F | 填滿指定的區塊 |
G | 產生日誌檔 |
該過程完成 |
在此下方,日誌檔案以下面列出的字元形式顯示先前解救的區塊的狀態:
? | 區塊未試用 |
* | 未修剪的故障區塊 |
/ | 未報廢的失效區塊 |
– | 壞扇區失敗資料塊 |
完成區塊 |
#一旦你完成了恢復過程,並有圖像檔案.您現在可能希望它從損壞的驅動器移動到新的驅動器。要將映像檔移至新區塊,首先,將區塊連接到系統,然後使用lsblk指令來識別區塊名稱。
假設它是/dev/sdb,使用以下命令將映像複製到一個新區塊。
sudo ddrescue—f recovery. img/dev/sdb logfile.log
#如果有任何數據,則使用—f標誌覆寫新區塊。請記住,日誌檔案的名稱必須不同,以使其與先前儲存的日誌檔案保持分離。
上面的操作也可以使用dd來完成,dd是用來複製檔案的另一個強大指令。
sudo dd if = recovery. img of =/dev/sdb
在進行還原之前,請記住,新區塊必須足夠大,以保留整個復原的區塊;例如,如果復原區塊為5GB,則新區塊應大於5GB。
如果恢復的映像檔呈現了許多錯誤,那麼可以在一定程度上使用Linux上的fsck指令來修復它們。在Windows上,您可以使用CHKDSK或SFC指令來執行此操作。但是,復原取決於損壞的檔案產生的錯誤數量。
現在,復原過程和修復工作已經完成。另一件需要注意的重要事情是,您可以直接在另一個區塊上恢復損壞的區塊,而不是建立映像文件,然後將其複製到新區塊。好的,在接下來的一節中,我將詳細介紹這個過程。
要將區塊直接還原到新區塊,首先將區塊連接到系統,然後再次使用lsblk指令來識別區塊名稱。錯誤的區塊名稱可能會打亂整個過程,您可能會遺失資料。
在識別出來源區塊和目標區塊後,使用以下命令還原該區塊:
sudo ddrescue—d—f—r2/dev/[source]/dev/[destination] backup.log
假設/dev/sdb是目標區塊,所以要將/dev/sda目錄複製到新區塊,請使用用途:
Sudo ddue-d-f-r2/dev/sda/dev/sdb backup.log
在嘗試此程序之前,請參閱前面幾節中提到的關鍵注意事項。
在許多情況下,資料復原的目的是從損壞的磁碟機中找到特定的檔案。要存取特定文件,您需要裝載映像文件。在Linux上,可以使用mount指令來探索復原的映像檔。
在掛載映像檔之前,先建立一個要提取映像檔內容的資料夾或目錄。
mkdir Recovery Mount
#接下來,使用以下命令掛載映像檔:
sudo mount—o loop recovery. img~/Recovery Mount
—o標誌指示選項,而循環選項用於將映像檔視為區塊裝置。
您現在可以存取圖像檔案的內容,如下面的螢幕截圖所示。
#要卸載區塊,請使用umount指令。
SUDO卸載~/恢復裝載
要從特定點開始恢復,請使用—i標誌或—input—position。它應該以位元組為單位,預設為0位元組。這是很重要的,從一個特定的點恢復複製。例如,如果要從10 GB點開始複製過程,請使用下列命令。
sudo ddrescue—i10GiB/dev/sda imagefile. img logfile.log
為了定義輸入裝置的最大大小,將會使用—s標誌。 —s表示大小,也可以用作—size,單位為位元組。如果該工具無法識別輸入檔案的大小,請使用此選項來指定它。
Sudo ddreasure-s10GiB/dev/sda Imagefile.img日誌檔.log
—ask選項非常方便,因為它會在開始複製過程之前提示輸入和輸出區塊的確認。如前所述,系統動態地為區塊分配名稱,並且在重新啟動時更改名稱。在這種情況下,這個選項可能是有用的。
sudo ddrescue——ask/dev/sda imagefile. img logfile.log
#此外,下文列出了一些其他替代方法:
—R | —反向 | 反轉複製的方向 |
—q | —相當 | 取消所有輸出訊息 |
—V | —冗長 | 更詳細地說,所有輸出訊息 |
—p | -預先分配 | 為輸出檔案預先分配儲存空間 |
—P | -資料預覽 | 最新讀取資料的顯示行預設為3行 |
#DDREASE使用了一個強大的恢復演算法,該演算法分為四個階段:
1.複製
2.修剪
3.刮
4.重試
ddrescue演算法的執行如下圖所示。
ddrescue是一個強大的復原工具,用於透過複製資料從損壞或故障磁碟機復原資料到另一個磁碟機。在預設套件管理器的幫助下,它可以毫不費力地安裝在任何Linux發行版上。在使用本指南中提到的這個工具之前,請注意重要的注意事項。複製資料的過程很簡單,卸載驅動器,並使用ddrescue命令與來源驅動器名稱和目標驅動器名稱。不要忘記使用日誌文件,因為它變得非常有用,恢復過程。
以上是使用ddrescue在Linux上恢復數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!