首頁 電腦教學 電腦知識 使用ddrescue在Linux上恢復數據

使用ddrescue在Linux上恢復數據

Mar 20, 2024 pm 01:37 PM
工具 數據 回覆

DDREASE是一種用於從檔案或區塊裝置(如硬碟、SSD、RAM磁碟、CD、DVD和USB儲存裝置)復原資料的工具。它將資料從一個區塊設備複製到另一個區塊設備,留下損壞的資料區塊,只移動好的資料區塊。 ddreasue是一種強大的恢復工具,完全自動化,因為它在恢復操作期間不需要任何干擾。此外,由於有了ddasue地圖文件,它可以隨時停止和恢復。 DDREASE的其他主要功能如下:

  • 它不會覆蓋恢復的數據,但會在迭代恢復的情況下填補空白。但是,如果指示工具明確執行此操作,則可以將其截斷。
  • 將資料從多個檔案或區塊還原到單一檔案。
  • 支援多種類型的設備接口,如SATA、ATA、SCSI、MFM驅動器、軟碟和SD卡。

在這篇指南中,我將深入研究這款強大的資料復原工具,探討其安裝步驟以及如何利用它來還原區塊裝置或分割區。

  • 安裝ddrescue
  • 了解基礎知識
  • 重要的考慮因素
  • 使用DDREASE
  • 修復損壞的區塊
  • 將圖像檔案還原到新區塊
  • 將資料塊恢復到另一個資料塊
  • 恢復特定的資料從已儲存的影像檔案
  • 進階功能
  • ddrescue如何工作
  • 結論

請注意:在本指南中,我使用的是Linux發行版(Ubuntu 22.04)。 Ddreasure實用程式的安裝步驟可能會因發行版而異,但適用於所有Linux發行版的指引是通用的。

安裝ddrescue

#要在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在Linux上恢復數據

#ddrescue指令可以恢復整個區塊(包含MBR和分割區)或分割區。另一方面,如果您只需要從特定分區恢復特定的文件,那麼最好恢復分區而不是整個區塊。

重要的考慮因素

#在使用ddue實用程式之前,應該先考慮一些非常關鍵的問題:

  • 請勿嘗試復原已載入的資料區塊,該資料區塊甚至不應處於唯讀模式。
  • 請勿嘗試修正出現I/O錯誤的資料塊。
  • 系統可以在重新啟動時變更輸入和輸出裝置名稱。在開始複製程序之前,請確保設備名稱正確。
  • 如果使用單獨的區塊作為輸出設備,則設備上的所有資料都將被覆蓋。

使用ddrescue

#安裝ddrescue實用程式並了解命名約定後,下一步是識別故障磁碟並使用ddrescue工具進行復原。

修復損壞的區塊

第一個範例將包含恢復整個區塊的過程。首先,使用lsblk指令列出區塊:

lsblk—o Name,Size,FSTYPE

—o標誌用於指定命令應輸出哪種類型的資訊(欄位)。我已經提到了名稱、大小和FSTYPE或檔案系統類型。

使用ddrescue在Linux上恢復數據

#現在,您可以確定目標區塊、分割區和位置,以儲存已拯救的映像檔。

另一個需要注意的重要事情是,在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。

使用ddrescue在Linux上恢復數據

#恢復時間取決於輸入區塊的大小和損壞。如果要恢復大型資料塊,我建議使用日誌文件,因為該過程可能需要幾個小時甚至幾天的時間才能完成。

上述指令的輸出如下:

使用ddrescue在Linux上恢復數據

#在輸出映像中,ipos是輸入檔案的輸入位置,從那裡開始複製,opos是輸出檔案上寫入資料的輸出位置。

非嘗試是區塊的大小沒有等待嘗試。獲救者表示成功恢復的區塊的大小。被拯救的pct表示成功恢復了資料的百分比。術語,非修剪,非報廢,壞扇區和壞區域是不言自明的。但是,讀取錯誤術語以數字表示失敗的讀取嘗試。

運行時間顯示工具完成過程所花費的時間,而剩餘時間則是完成恢復過程所剩餘的時間。上面的輸出顯示剩餘時間為0,因為進程已經完成,請在下面的未完成進程的圖像中讀取輸出。

使用ddrescue在Linux上恢復數據

#讓我們看看在日誌文件中得到了什麼;要打開生成的日誌文件,請使用vim recovery.log命令。

使用ddrescue在Linux上恢復數據

#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標誌指示選項,而循環選項用於將映像檔視為區塊裝置。

您現在可以存取圖像檔案的內容,如下面的螢幕截圖所示。

使用ddrescue在Linux上恢復數據

#要卸載區塊,請使用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行

ddrescue如何運作

#DDREASE使用了一個強大的恢復演算法,該演算法分為四個階段:

1.複製

2.修剪

3.刮

4.重試

ddrescue演算法的執行如下圖所示。

使用ddrescue在Linux上恢復數據

#結論

ddrescue是一個強大的復原工具,用於透過複製資料從損壞或故障磁碟機復原資料到另一個磁碟機。在預設套件管理器的幫助下,它可以毫不費力地安裝在任何Linux發行版上。在使用本指南中提到的這個工具之前,請注意重要的注意事項。複製資料的過程很簡單,卸載驅動器,並使用ddrescue命令與來源驅動器名稱和目標驅動器名稱。不要忘記使用日誌文件,因為它變得非常有用,恢復過程。

以上是使用ddrescue在Linux上恢復數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何優化debian readdir的性能 如何優化debian readdir的性能 Apr 13, 2025 am 08:48 AM

在Debian系統中,readdir系統調用用於讀取目錄內容。如果其性能表現不佳,可嘗試以下優化策略:精簡目錄文件數量:盡可能將大型目錄拆分成多個小型目錄,降低每次readdir調用處理的項目數量。啟用目錄內容緩存:構建緩存機制,定期或在目錄內容變更時更新緩存,減少對readdir的頻繁調用。內存緩存(如Memcached或Redis)或本地緩存(如文件或數據庫)均可考慮。採用高效數據結構:如果自行實現目錄遍歷,選擇更高效的數據結構(例如哈希表而非線性搜索)存儲和訪問目錄信

Debian如何提升Hadoop數據處理速度 Debian如何提升Hadoop數據處理速度 Apr 13, 2025 am 11:54 AM

本文探討如何在Debian系統上提升Hadoop數據處理效率。優化策略涵蓋硬件升級、操作系統參數調整、Hadoop配置修改以及高效算法和工具的運用。一、硬件資源強化確保所有節點硬件配置一致,尤其關注CPU、內存和網絡設備性能。選擇高性能硬件組件對於提升整體處理速度至關重要。二、操作系統調優文件描述符和網絡連接數:修改/etc/security/limits.conf文件,增加系統允許同時打開的文件描述符和網絡連接數上限。 JVM參數調整:在hadoop-env.sh文件中調整

debian readdir如何與其他工具集成 debian readdir如何與其他工具集成 Apr 13, 2025 am 09:42 AM

Debian系統中的readdir函數是用於讀取目錄內容的系統調用,常用於C語言編程。本文將介紹如何將readdir與其他工具集成,以增強其功能。方法一:C語言程序與管道結合首先,編寫一個C程序調用readdir函數並輸出結果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

如何利用Nginx日誌提升網站速度 如何利用Nginx日誌提升網站速度 Apr 13, 2025 am 09:09 AM

網站性能優化離不開對訪問日誌的深入分析。 Nginx日誌記錄了用戶訪問網站的詳細信息,巧妙利用這些數據,可以有效提升網站速度。本文將介紹幾種基於Nginx日誌的網站性能優化方法。一、用戶行為分析與優化通過分析Nginx日誌,我們可以深入了解用戶行為,並據此進行針對性優化:高頻訪問IP識別:找出訪問頻率最高的IP地址,針對這些IP地址優化服務器資源配置,例如增加帶寬或提升特定內容的響應速度。狀態碼分析:分析不同HTTP狀態碼(例如404錯誤)出現的頻率,找出網站導航或內容管理中的問題,並進

Debian syslog如何學習 Debian syslog如何學習 Apr 13, 2025 am 11:51 AM

本指南將指導您學習如何在Debian系統中使用Syslog。 Syslog是Linux系統中用於記錄系統和應用程序日誌消息的關鍵服務,它幫助管理員監控和分析系統活動,從而快速識別並解決問題。一、Syslog基礎知識Syslog的核心功能包括:集中收集和管理日誌消息;支持多種日誌輸出格式和目標位置(例如文件或網絡);提供實時日誌查看和過濾功能。二、安裝和配置Syslog(使用Rsyslog)Debian系統默認使用Rsyslog。您可以通過以下命令安裝:sudoaptupdatesud

Debian如何回收不再使用的包 Debian如何回收不再使用的包 Apr 13, 2025 am 08:51 AM

本文介紹如何在Debian系統中清理無用軟件包,釋放磁盤空間。第一步:更新軟件包列表確保你的軟件包列表是最新的:sudoaptupdate第二步:查看已安裝的軟件包使用以下命令查看所有已安裝的軟件包:dpkg--get-selections|grep-vdeinstall第三步:識別冗餘軟件包利用aptitude工具查找不再需要的軟件包。 aptitude會提供建議,幫助你安全地刪除軟件包:sudoaptitudesearch'~pimportant'此命令列出標記

Debian郵件服務器SSL證書安裝方法 Debian郵件服務器SSL證書安裝方法 Apr 13, 2025 am 11:39 AM

在Debian郵件服務器上安裝SSL證書的步驟如下:1.安裝OpenSSL工具包首先,確保你的系統上已經安裝了OpenSSL工具包。如果沒有安裝,可以使用以下命令進行安裝:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私鑰和證書請求接下來,使用OpenSSL生成一個2048位的RSA私鑰和一個證書請求(CSR):openss

Debian Apache日誌安全問題如何防範 Debian Apache日誌安全問題如何防範 Apr 13, 2025 am 09:24 AM

強化DebianApache服務器日誌安全,需要多方面協同努力。以下策略能有效降低安全風險:一、日誌監控與分析自動化日誌分析:利用logcheck、logrotate等工具定期檢查和分析日誌,及時發現可疑活動和潛在攻擊。實時監控系統:建立日誌監控系統,例如ELKStack(Elasticsearch,Logstash,Kibana),實現日誌數據的實時監控和分析。二、日誌文件權限控制嚴格權限設置:合理設置日誌文件權限,例如使用chmod640/var/log

See all articles