dd 備份與還原完整系統

dd 備份與還原完整系統

我使用裝有 Mint Linux 的筆記本,接下來幾天我將使用 Windows。所以我想“保存”我的作業系統,然後將其放回同一驅動器上。

它使用全碟加密(Mint 安裝時預設的加密)。

使用 Linux 啟動 Live CD,然後使用以下內容建立副本:

dd if=/dev/sda of=/media/externalhd/mint.img

[這裡我格式化並新增視窗],在我再次使用 Live CD 啟動並執行以下操作後:

dd if=/media/externalhd/mint.img of=/dev/sda

應該有用吧?

答案1

您的命令很好,正如已經指出的那樣,這也將節省驅動器上的所有空白空間。但是,如果您在安裝系統時選擇安全擦除選項,則驅動器的空白空間將充滿隨機噪聲,因此壓縮輸出對您來說幾乎沒有好處。

您應該為副本使用更大的區塊大小,並避免污染系統緩衝區高速緩存,以使原始讀取速度更快。

  • dd 選項 iflag=direct 或 oflag=direct 繞過 Linux 的快取層直接從裝置讀取。
  • dd 選項 bs(區塊大小)告訴 dd 一次要讀取或寫入多少數據,現代磁碟機在處理更大的資料區塊時工作速度要快得多。

壓縮是 CPU 密集型的,而 gzip 僅使用單一核心,這意味著這可能是複製速度的限制因素。使用使用所有 CPU 核心的 Pigz 會使其速度更快,但仍可能受到 CPU 限制。

作為一個配備現代 CPU 的粗糙球場,如果存儲空間有問題或您通過比 USB2 慢的設備連接,我會使用壓縮。 USB3、SATA 或 100Mbit+ 網路幾乎肯定會比 gzip 更快,因此不會獲得任何速度,但可能會節省一些空間。

在儲存連線速度慢(即 10Mbit 乙太網路或 USB1/2)或空間不足的情況下我會使用的指令是:

dd if=/dev/sda bs=1M iflag=direct | pigz -c > /media/external/image.sda.gz

如果您具有與儲存的快速連接並且所使用的空間不是問題,我將使用以下命令:

dd if=/dev/sda of=/media/external/image.sda.raw oflag=direct iflag=direct bs=1M

答案2

它有效,但不是最好的方法。由於原始資料的零,影像會非常大。如果你想避免這種行為,你可以這樣做:

  dd if=/dev/sda | gzip > /media/externalhd/backup.img.gz

Gzip 知道映像上不需要考慮零,而只是計算,因此映像會更小,特別是如果磁碟上有一些可用空間,加上 gzip 壓縮,所以效果會好很多。

相關內容