Dd

dd 是否複製所有內容,包括所有元數據和所有“空”塊

  • July 29, 2015

突然,我的分區出了點問題,或者只是一個分區。我有一個預設的 Ubuntu 安裝,在金士頓 SSD 上,根文件系統用 LUKS 加密(我認為使用 AES)。現在我正在嘗試從 live cd 掛載分區,但沒有運氣。

我很害怕做一些無法挽回的額外傷害。所以我想製作驅動器的精確副本。這意味著所有分區表,LUKS 分區的任何類型的元數據,以及我不知道的任何其他類型的元數據。我想我也希望所有的空塊都感到絕對安全。

我知道dd if=/dev/sda of=/dev/sdb,但我不知道它是否會包含所有描述的數據。

也許我需要用 指定塊大小-b,但我不明白它是如何工作的以及為什麼它是必要的(如果是的話)。而且我也不知道如何找到分區的塊大小。

請告訴我它是否確實複製了所有數據,如果沒有,是否還有其他方法。

是的,即使是(正式)不包含數據的塊以及有關分區、UUID 等的所有資訊。

例如,可以從 dd 複製的驅動器中恢復數據(即刪除文件後)。

您可能想閱讀有關noerrorsync選項的內容。

除非有讀取錯誤,否則塊大小 ( bs=) 不會影響結果,但您應該將其設置為“1M”(或至少“4k”),否則會無緣無故地花費更長的時間。

做就是了:

cp /dev/block_device imgfile

如果*imgfile*將位於理解此類內容的文件系統上,則 GNUcp 應該預設稀疏地寫入圖像。不過,您可以指定您的偏好,例如…

cp --sparse=always /dev/sda imgfile

dd的主要用途在於它能夠可靠地僅獲取流的指定部分,或者它可以非常有效地對其應用某些轉換。如果您想要所有文件的 1:1 副本,那麼就cp可以了。

引用自:https://unix.stackexchange.com/questions/218836