如何使用 DD 將資料從舊磁碟機遷移到新磁碟機?

如何使用 DD 將資料從舊磁碟機遷移到新磁碟機?

我正在將筆記型電腦上的內建 SATA 硬碟從 40G 驅動器升級到 160G 驅動器。我有一個帶有 SATA 卡的 Linux/Ubuntu 桌面。我實際上想在工作中對幾個 CentOS 和 FreeBSD 機器做同樣的事情,看起來這會有相同的解決方案。

我聽說我可以使用DD將 40G 分割區鏡像到 160G 驅動器,或者我可以將 40G 分割區另存為本機系統上的映像,然後將該 40G 映像複製到 160G 磁碟機。

誰能描述我如何做到這一點?我還需要任何其他實用程式嗎,例如gparted

答案1

通常我會建議一個解決方案,例如「使用外部外殼連接第二個硬碟驅動器,從 Linux CD 啟動,然後使用諸如 之類的命令dd if=/dev/sda of=/dev/sdb bs=1G,但由於您想使用相同的技術進行工作,我有可能是更好的解決方案。

我所有的伺服器和筆記型電腦都在工作時使用克隆屬。有兩種使用方法...其中一種使用專用伺服器,對您來說可能有點過分,另一種使用啟動 CD 和外部硬碟。

這個想法是,您使用 Clonezilla CD 啟動並擁有一個較大(比來源驅動器更大)的外部 USB 驅動器。 Clonezilla 會引導您製作現有驅動器的映像,然後關閉機器電源,更換驅動器,然後重新啟動到 Clonezilla,它會引導您恢復資料。

這使您有機會 A) 將映像放在更大的磁碟機上,B) 保留資料的備份。

答案2

您的第一個任務是將兩個磁碟連接到現有的 Linux 系統或將新磁碟連接到原始系統。

你一定是非常小心,因為將空白磁碟複製到好磁碟上非常簡單!

要最終獲得引導磁區和所有內容,您可以執行以下操作:

dd if=/dev/hdx of=/dev/hdy

hdx你的40G盤在哪裡,hdy你的160G盤在哪裡。您會注意到沒有像 之類的分區號/dev/hdx1。這會複製整個磁碟、分割資訊等。

您的新磁碟將與舊磁碟一樣,指派 40G。當它放回筆記型電腦時,它應該會立即啟動。希望你用過LVM?否則希望您沒有使用所有分割區?跨越這一點需要更多的資訊。

另一種解決方案是轉儲每個單獨的分區。這需要更多的態勢感知,因為您需要重新建立啟動資訊。

所有這些最適合用於克隆計算機,而不是升級硬碟。使用備份恢復到新安裝要好得多。

答案3

當你使用 dd 來複製磁碟,這樣做有很多缺點:

  1. 目標的大小必須與來源的大小完全相同或更大
  2. 複製後,您需要調整分割區大小以使用任何額外空間
  3. 您將浪費時間複製可用空間
  4. 舊磁碟中存在的任何碎片都會被保留

使用 Ghost4Linux、partclone 或 Clonezilla 等映像程式可以至少處理數字 2 和 3 cp -ax。程式.該方法沒有任何上述缺點。

答案4

你問如何用 dd 來做到這一點,但我更好地成功地透過管道輸出傾倒進入恢復。鑑於來源廣告1s1a和目標廣告2s1a:

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

我在 FreeBSD 上嘗試過這個,實際上我在FreeBSD 論壇

相關內容