使用 dd 將磁碟備份到同一磁碟

使用 dd 將磁碟備份到同一磁碟

我嘗試使用dd它來備份電腦的硬碟,但遇到了一些相當令人困惑的結果。我在多個來源上看到過(例如:http://www.backuphowto.info/linux-backup-hard-disk-clone-dd,http://debianhelp.co.uk/ddcommand.htm)它們包括這樣的東西:

dd if=/dev/sda of=~/backup.img

1)除非我很困惑,否則這將嘗試將整個磁碟備份到磁碟上的文件,不是嗎?

我嘗試過使用這種方法,但首先壓縮輸出以節省空間。為了防止壓縮檔案透過嘗試複製所有空閒資料來佔用大量空間,我過去常常zerofree向磁碟所有未使用的空間寫入 0。我的磁碟總容量約為 320GB,其中已使用約 100GB,剩餘約 220GB 可用。

當我嘗試使用以下命令:

dd if=/dev/sda | gzip -c > ~/image.img.gz

在我退出備份之前,備份檔案的大小達到了約 160GB(目的是弄清楚如何備份到外部磁碟,此後我已經成功完成了這項任務)。

2)為什麼備份會佔用這麼多空間?是因為dd看到它正在寫入的檔案然後也嘗試備份它嗎?或者是否有可能我沒有設法zerofree正確使用,因此儘管我努力防止這種情況發生,但只是備份了一堆隨機垃圾資料?

答案1

在修改硬碟時,您無法準確地複製它。

除非我很困惑,否則這會嘗試將整個磁碟備份到磁碟上的文件,不是嗎?

是的,它會嘗試。該dd命令將讀取一個區塊(從磁碟機),壓縮該區塊,寫入該區塊(到該磁碟機上的檔案),然後繼續處理下一個區塊。該映像將具有部分寫入的backup.img檔案系統指標和指向該檔案的部分寫入的檔案系統指標。

dd注意:我極大地簡化了和之間的管道緩衝,gzip因為詳細資訊與此處無關。

為什麼備份會佔用這麼多空間?

可能的原因是它正在嘗試複製部分寫入的backup.img檔案。其他因素需要對您正在使用的檔案系統的檔案系統結構有深入的了解。

相關內容