溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Linux系統(tǒng)中使用dd命令而不會損毀你的磁盤

發(fā)布時間:2021-10-22 16:07:02 來源:億速云 閱讀:315 作者:小新 欄目:系統(tǒng)運維

這篇文章將為大家詳細講解有關(guān)怎么在Linux系統(tǒng)中使用dd命令而不會損毀你的磁盤,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

對驅(qū)動器和分區(qū)做個完整的副本

仔細研究后,你會發(fā)現(xiàn)你可以使用 dd 做各種任務,但是它最重要的功能是處理磁盤分區(qū)。當然,你可以使用 tar 命令或者 scp 命令從一臺計算機復制整個文件系統(tǒng)的文件,然后把這些文件原樣粘貼在另一臺剛剛安裝好 Linux 操作系統(tǒng)的計算機中。但是,因為那些文件系統(tǒng)歸檔不是完整的映像文件,所以在復制文件的過程中需要計算機操作系統(tǒng)的運行作為基礎。

另一方面,使用 dd 可以對任何數(shù)字信息***的進行逐個字節(jié)的鏡像。但是不論何時何地,當你要對分區(qū)進行操作時,我要告訴你早期的 Unix 管理員曾開過這樣的玩笑:“ dd 的意思是磁盤毀滅者disk destroyer”(LCTT 譯注:dd 原意是磁盤復制disk dump)。 在使用 dd 命令的時候,如果你輸入了哪怕是一個字母,也可能立即***性的擦除掉整個磁盤驅(qū)動器里的所有重要的數(shù)據(jù)。因此,一定要注意命令的拼寫格式規(guī)范。

記?。?/strong> 在按下回車鍵執(zhí)行 dd 命令之前,暫時停下來仔細的認真思考一下。

dd 命令的基本操作

現(xiàn)在你已經(jīng)得到了適當?shù)奶嵝眩覀儗暮唵蔚氖虑殚_始。假設你要對代號為 /dev/sda 的整個磁盤數(shù)據(jù)創(chuàng)建精確的映像,你已經(jīng)插入了一塊空的磁盤驅(qū)動器 (理想情況下具有與代號為 /dev/sda 的磁盤驅(qū)動器相同的容量)。語法很簡單: if= 定義源驅(qū)動器,of= 定義你要將數(shù)據(jù)保存到的文件或位置:

# dd if=/dev/sda of=/dev/sdb

接下來的例子將要對 /dev/sda 驅(qū)動器創(chuàng)建一個 .img 的映像文件,然后把該文件保存的你的用戶帳號家目錄:

# dd if=/dev/sda of=/home/username/sdadisk.img

上面的命令針對整個驅(qū)動器創(chuàng)建映像文件,你也可以針對驅(qū)動器上的單個分區(qū)進行操作。下面的例子針對驅(qū)動器的單個分區(qū)進行操作,同時使用了一個 bs 參數(shù)用于設置單次拷貝的字節(jié)數(shù)量 (此例中是 4096)。設定 bs 參數(shù)值可能會影響 dd 命令的整體操作速度,該參數(shù)的理想設置取決于你的硬件配置和其它考慮。

# dd if=/dev/sda2 of=/home/username/partition2.img bs=4096

數(shù)據(jù)的恢復非常簡單:通過顛倒 ifof 參數(shù)可以有效的完成任務。在此例中,if= 使用你要恢復的映像,of= 使用你想要寫入映像的目標驅(qū)動器:

# dd if=sdadisk.img of=/dev/sdb

你也可以在一條命令中同時完成創(chuàng)建和拷貝任務。下面的例子中將使用 SSH 從遠程驅(qū)動器創(chuàng)建一個壓縮的映像文件,并把該文件保存到你的本地計算機中:

# ssh username@54.98.132.10 "dd if=/dev/sda | gzip -1 -" | dd of=backup.gz

你應該經(jīng)常測試你的歸檔,確保它們可正常使用。如果它是你創(chuàng)建的啟動驅(qū)動器,將它粘貼到計算機中,看看它是否能夠按預期啟動。如果它是普通分區(qū)的數(shù)據(jù),掛載該分區(qū),確保文件都存在而且可以正常的訪問。

使用 dd 擦除磁盤數(shù)據(jù)

多年以前,我的一個負責政府海外大使館安全的朋友曾經(jīng)告訴我,在他當時在任的時候, 政府會給每一個大使館提供一個官方版的錘子。為什么呢? 一旦大使館設施可能被不友善的人員侵占,就會使用這個錘子毀壞所有的硬盤.

為什么要那樣做?為什么不是刪除數(shù)據(jù)就好了?你在開玩笑,對吧?所有人都知道從存儲設備中刪除包含敏感信息的文件實際上并沒有真正移除這些數(shù)據(jù)。除非使用錘子徹底的毀壞這些存儲介質(zhì),否則,只要有足夠的時間和動機, 幾乎所有的內(nèi)容都可以從幾乎任何數(shù)字存儲介質(zhì)重新獲取。

但是,你可以使用 dd 命令讓壞人非常難以獲得你的舊數(shù)據(jù)。這個命令需要花費一些時間在 /dev/sda1 分區(qū)的每個扇區(qū)寫入數(shù)百萬個 0(LCTT 譯注:是指 0x0 字節(jié),意即 NUL ,而不是數(shù)字 0 ):

# dd if=/dev/zero of=/dev/sda1

還有更好的方法。通過使用 /dev/urandom 作為源文件,你可以在磁盤上寫入隨機字符:

# dd if=/dev/urandom of=/dev/sda1

監(jiān)控 dd 的操作

由于磁盤或磁盤分區(qū)的歸檔可能需要很長的時間,因此你可能需要在命令中添加進度查看器。安裝管道查看器(在 Ubuntu 系統(tǒng)上安裝命令為 sudo apt install pv),然后把 pv 命令和 dd 命令結(jié)合在一起。使用 pv,最終的命令是這樣的:

# dd if=/dev/urandom | pv | dd of=/dev/sda1 4,14MB 0:00:05 [ 98kB/s] [      <=>                  ]

關(guān)于“怎么在Linux系統(tǒng)中使用dd命令而不會損毀你的磁盤”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI