
我有一個 1 TB 內部驅動器,有兩個 1/2 TB 分割區,一個用於 Windows,另一個用於 Ubuntu 14.04 LTS。該站已主要成為 Linux 站,我再也沒有啟動到 Windows。
我想建立映像備份,因此使用 DD 將內部磁碟機複製到外部 1 TB USB 隨身碟。不幸的是,USB 驅動器似乎只比內部驅動器少了幾 GB,並且 DD 以“驅動器空間不足”錯誤訊息結束。現在我看到了一些奇怪的東西。當我彈出 USB 隨身碟並將其重新插入時,我看到兩個 1/2 GB 分割區似乎是重複的。它們具有相同的 GUID,並且 Nautilus 顯示相同的目錄結構和內容。我猜某個分割區的不完整副本導致外部磁碟機處於損壞狀態。
我怎樣才能使用DD只需複製 Linux 分割區到外部驅動器?這就是我真正想要的。
答案1
首先,您需要查找有關硬碟的數據,您可以透過在終端機中輸入以下內容來完成此操作:
sudo fdisk -l
您應該得到如下輸出:
Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x06bd4abe
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 230055935 230053888 109,7G 83 Linux
/dev/sda2 292970494 312580095 19609602 9,4G 5 Extended
/dev/sda3 230055936 292968447 62912512 30G 83 Linux
/dev/sda5 292970496 312580095 19609600 9,4G 82 Linux swap / Solaris
Partition table entries are not in disk order.
假設 /dev/sda3 是您要複製的驅動器,那麼您可以執行以下操作:
dd bs=512 if=/dev/sda of=/dev/sdb1/partition.ddfile seek=230055936 count=$(expr 292968447 - 230055936)
請記住,這裡只是一些示例,您需要將其適合您的情況。
答案2
更簡單的方法:
sudo fdisk -l
正如 Videonath 所說。找到您要複製的分割區dd bs=512 if=/dev/<partition-name> of=/<external-media-path>
例如dd bs=512 if=/dev/sda2 of=/dev/sdb1
筆記:
- dd 要求目標的大小大於或等於來源的大小
- 以這種方式建立的備份(分割區層級)將無法啟動
答案3
當你詢問時dd
,我可以推薦嗎partclone
?它用於克隆和恢復分區。它需要了解底層檔案系統,優點dd
是它只複製用過的阻塞並節省大量時間或空間,因為分區的未使用部分很少是可壓縮的(舊資料垃圾而不是零)。
sudo partclone.ext4 -c -b -s /dev/sdaX -o /dev/sdbY
會做你想做的事。-c
代表克隆,-b
代表設備到設備,-s
是來源,-o
是目標。此外,由於您進行了克隆,因此來源和目標的 UUID 是相同的。使用 檢查此項blkid
,使用uuidgen
產生新的 UUID,然後sudo tune2fs /dev/sdbY -U <uuidgen-generated new UUID>
變更它。
在同一台電腦上擁有兩個相同的 UUID 甚至可能是外部設備「損壞」狀態問題的根本原因。
在執行此操作之前,需要設定目標設備,fdisk
以便新分割區不小於舊分割區。如果它更大,您可以稍後將克隆分割區增大到gparted
新的最大大小。