我想將Linux系統從一台電腦複製到我的電腦上。該 Linux 系統使用兩個分割區。 (“/”和另一個)
我使用 Clonezilla 複製這兩個分割區並將它們放入映像中。但是當我克隆它們時,它們保留了分區名稱,即 sda5 和 sda7。當我在電腦上使用 Gparted 時,我已經有一個 sda5 分割區,因此如果我使用clonezilla,它將刪除該分割區以複製另一個分割區。
有什麼辦法可以避免這種情況嗎?也許重命名img內的分區?
答案1
我建議在兩台計算機上使用 dd ,如下所示:
首先,透過在該分割區中未佔用的空間上寫入零來刪除舊資料和已刪除的檔案:
dd if=/dev/zero of=/mnt/original_partition/zerofile bs=16M conv=fdatasync
當分區上沒有剩餘空間時,此命令將停止。之後,刪除零檔案:
rm /mnt/original_partition/zerofile
現在分割區上只有二進位層級的所需數據,因此壓縮會更容易。現在,製作分割區的二進位映像。使用 fdisk -l 查看分區標識符是什麼(在本例中將其設為 /dev/sdb5)並在下一個命令中使用該標識符。請注意,在本例中我使用 Pigz 而不是 gzip。 Pigz 是 gzip 的並行實現,透過使用系統的所有核心使操作更快:
dd if=/dev/sdb5 bs=16M | pigz | dd of=/path/to/backup/storage/sdb5.img.gz bs=16M conv=fdatasync
現在您有了分割區的壓縮二進位映像。將其轉移到另一台機器上。現在您必須使用 fdisk 準備分割區(fdisk 使用起來非常簡單)。根據需要調整分割區大小並將變更寫入磁碟。假設您剛剛建立了分割區 /dev/sdb3。
現在,使用以下命令解壓縮二進位映像並將其寫入新分割區:
dd if=/path/to/backup/storage/sdb5.img.gz bs=16M | pigz -d | dd of=/dev/sdb3 bs=16M conv=fdatasync
完成此命令後,您應該能夠使用 mount 命令掛載複製的分割區:
mount /dev/sdb3 /mnt/copied-partition/
請注意分區大小 - 它必須至少與原始分區一樣大。