用dd複製硬碟
我正在將較大的 HDD(750GB)複製到較小的 SSD(250GB)。我縮小了分區,只有 83gb 的已用空間。(我進行了碎片整理並進行了 chkdsk)。此外,分區大小的總和小於 SSD 大小。
我現在通過 pv 管道 dd 程序以查看傳輸的數據量。它仍在執行,並且已經在 170gb+ 上。為什麼是這樣?我在 dd 上使用了“conv=sync,noerror”參數。我以為它會以83gb結束..
這是“fdisk -l”輸出:(/dev/sda = 750gb HDD,/dev/sdb = 250gb SSD)
Disk /dev/sda: 750.2 GB, 750156374016 bytes 255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 1 1465149167 732574583+ ee GPT Partition 1 does not start on physical sector boundary. WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdb: 240.1 GB, 240057409536 bytes 255 heads, 63 sectors/track, 29185 cylinders, total 468862128 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 Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 1465149167 732574583+ ee GPT
這是我用來複製的命令:
sudo dd if=/dev/sda | pv | sudo dd of=/dev/sdb bs=64K conv=sync,noerror
我正在將較大的 HDD(750GB)複製到較小的 SSD(250GB)。我縮小了分區,只有 83gb 的已用空間……
它還在繼續,它已經在 170gb+……我以為它會以 83gb 完成。
那是因為您不只是複制 83GB 的數據。讓我們看看你是如何複製數據的:
sudo dd if=/dev/sda | pv | sudo dd of=/dev/sdb bs=64K conv=sync,noerror
第一部分是讀取整個/dev/sda 並將其轉儲到 STDOUT。
pv
從第一個開始測量轉儲的吞吐量和狀態,dd
並將其重定向到下一個命令,同時向您的終端提供人類可讀的輸出。無論如何,它不會處理數據,它只是為了提供資訊而測量事物。第三部分是從 STDIN 獲取所有輸入並將其轉儲到 /dev/sdb。
所以會發生什麼,它將數據從源設備(/dev/sda)複製到目標設備(/dev/sdb),直到目標空間用完。
我縮小了分區,只有 83gb 的已用空間。(我進行了碎片整理並進行了 chkdsk)。此外,分區大小的總和小於 SSD 大小。
因為您調整了分區的大小,所以分區映射可能適合目標設備,但這並不一定保證所有數據都將位於磁碟的開頭。您需要查看 GPT 佈局以確認分區已移動到驅動器的開頭。如果不是,則副本可能不會包含您的所有數據。
您似乎正在嘗試複製 Windows 系統的啟動盤。與其嘗試手動執行此操作,不如使用 Clonezilla 之類的實用程序為您執行此操作。您仍然需要縮小源磁碟上的文件系統,但它會為您在目標磁碟上創建分區並複制數據。