能夠使用 dd 執行部分映像備份嗎?

能夠使用 dd 執行部分映像備份嗎?

這個問題與幾年前的一張,我正在尋找一種進行部分影像備份的方法。這一部分從未得到回答,所以這是一個專門的問題。

問題

  • 我打算縮小 Windows 分割區,並希望先進行映像備份,以作為保險。如果需要恢復,則需要將備份還原到縮小的分割區。

  • 由於目的是保證系統原樣,因此在進行任何可能改變任何內容或引入任何新風險的修改之前,備份必須是「原始」內容。

  • Windows 分割區縮小工具會提前告訴您它將縮小分割區多少。我只想要縮小後保留的分區部分的圖像。

  • 我有一個基於文件的備份,因此我不擔心任何可能位於收縮區域之外並且可能未被備份捕獲的文件。

解決方案理念

傳統觀點認為,使用dd.然而,只要知道足夠的危險,有一種方法似乎應該是一個解決方案(我假設一個dd基於 - 的解決方案將在 Linux 內執行)。

想法:

  • dd有可用於指定開始和結束位置的參數。
  • 任何分割區管理工具都會顯示該分割區在磁碟機上的位置。
  • Windows 分割區縮小工具會顯示 Windows 分割區的縮度。

這似乎是計算參數的原料dd。將各個部分組合在一起是我以前從未做過的事情。所以問題是:

  • 如何確定dd反映分區縮部分的參數
  • dd將相關部分複製到備份磁碟機的命令
  • dd將該映像還原到原始磁碟機上相同位置的命令

警告

定義和複製裸機分區的所需部分看起來應該很簡單。然而,尚不清楚的一點是 NTFS MFT 是否與原始分割區大小相關,因此將其還原為縮小的分割區會導致其損壞,至少超出了chkdsk修復之類的能力。

問題目的

最終目標是依照所述建立 Windows 分割區的部分映像備份。這個問題從未在原始問題中找到解決方案,因此這個問題旨在提供潛在方法的種子。然而,我的想法可能行不通。因此,雖然dd解決方案是這個問題的焦點,但我不排除使用內建或常用免費工具的替代解決方案。所以一個成功的答案可以是:

  • 基於工作dd的解決方案
  • dd對為什麼基於 的解決方案無法運作(或至少不能相信其可靠工作)的權威且明確的解釋
  • 實現目標的替代解決方案。

附錄

卡米爾·馬喬羅夫斯基的回答提出了另一個問題,僅從硬碟克隆正在使用的空間,這非常相似,但我不相信它是重複的。一些主要區別:

  • 該問題旨在僅克隆已使用的空間。該方法旨在克隆分區的特定部分。
  • 這個問題對於得到結果沒有任何特定的限制。這項要求要求影像處於原始的當前狀態,不改變內容或對內容造成風險,這排除了任何類型的「準備」。
  • 這個問題是關於整個驅動器和 Linux 檔案系統的。這是關於分割區和 NTFS 的一部分。

答案1

我可以說是XY問題真正的問題是:如何從硬碟僅複製正在使用的空間(或分區)?我不想在沒有解釋為什麼它應該比你提出的想法更好的情況下指出另一個答案;所以這裡是:

一般來說,即使在碎片整理之後,也不能保證可用空間聚集在檔案系統的最末端。我對 NTFS 或 FAT 系列的了解不夠好,無法確定,但我懷疑可能有一些資料結構佔據了大型檔案系統的較遠扇區,無論它有多空。

因此,我對僅保存部分圖像的想法持懷疑態度。也許有一些檔案系統能夠倖存下來,也許 NTFS 就是其中之一——我不知道。

很多時候我做過類似你想要實現的事情,主要是使用 NTFS。無論空閒區塊位於檔案系統中的哪個位置,我的方法都有效。基本上:

  • 將零寫入文件,直到沒有剩餘空間,
  • 同步,
  • 刪除零文件,
  • umount,
  • 將影像儲存為稀疏或壓縮檔案。

這可能需要很多時間。事先確保文件系統健康。如果您懷疑磁碟有故障,也不要這樣做。

您可以在以下位置找到更多詳細信息我對已經提到的問題的回答。重要的區別是您將使用 讀取單一分割區dd,而不是整個磁碟機。

不幸的是,這樣的圖像無法恢復到縮小的分區。如果收縮過程失敗並且您丟失了原始文件,則該圖像將很有用。我認為您需要一個可以備份檔案(以及檔案系統內的元資料)的工具,以便能夠還原到較小的分割區。嗯,dd不是這樣的工具。

相關內容