Backup

拍攝目前工作驅動器的驅動器映像是否安全?

  • July 8, 2014

我必須備份我的硬碟。我想使用dd並將圖像放在外部硬碟上。

  • 我可以使用dd硬碟本身的作業系統執行此操作,還是必須從其他設備(例如 LiveCD)啟動?
  • 一般來說,如果設備已安裝並正常工作,拍攝設備圖像是否安全?
  • 如果設備已安裝,但我確定在dd執行時沒有其他 I/O 操作怎麼辦?

我確信這rsync是用於備份的最佳工具,尤其是增量備份。

但我對 很感興趣dd,因為我還想備份其他儲存設備,它還會複製儲存在未分區空間上的數據。比如我的電子書閱讀器使用一個未分區的空間來儲存uboot、kernel等數據。

一般來說,它是不安全的。FS 假設操作是按特定順序寫入的,因此它可以寫入文件的新數據,然後從其他數據中創建指向它的指針,具體細節取決於文件​​系統。想像一下,如果發生以下情況:

  1. dd從包含垃圾或一些數據的位置 X 讀取
  2. 文件系統寫入位置 X
  3. 文件系統寫入位置 X+1 指向位置 X 的指針
  4. dd從位置 X+1 讀取連結到位置 X

從備份的角度來看,您會得到垃圾數據。但是有幾種方法可以解決它:

  • 通過文件系統特定命令凍結文件系統(我相信xfs_freeze是一個,我不知道其他命令 - 但至少在理論上存在這樣的選項)
  • 創建一個 lvm 快照並從中複製。副本就像您重新啟動電腦一樣(減去 HDD 重新排序),因此它將是一個臟文件系統,但副本將是原子的。請注意,某些文件系統(如 XFS)需要先凍結。
  • 按照其他人的建議使用 rsync 。現在副本是安全的,您不需要 LVM,但副本不是原子的。因此,雖然它在文件系統級別避免了上述問題,但它可能仍然會遇到文件問題(不太可能,但可以想像例如在後台執行 mv 時失去文件)
  • 使用帶有快照的文件系統,例如btrfstux3zfsnilfs ……然後你可以避免這兩個問題 - 你可以創建一個快照並通過具有完全原子性的 rsync 從中複製。但是請注意,此類文件系統通常是實驗性的。

最後一點 -dd可能不是最好的備份方式。它複製一個完整的磁碟,這通常是浪費的,因為你也複製了“垃圾”。如果您需要磁碟映像,則partimage之類的可能會更好。如果您沒有更好的選擇,則使用 rsync、tar 在差分/增量模式等或完整備份系統,如baculatarsnap或許多其他系統中的一個。重複數據刪除可能會為備份的大小帶來奇蹟。

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