使用dd備份或轉移UEFI Linux系統 === ###### tags: `Linux` ## 環境說明 作為來源的Linux os在/dev/sdb, 其中sdb1為EFI partition, sdb2為root file system 若我們想要把/dev/sdb轉移到/dev/sdc, 可使用以下操作: #### 1. 將EFI partition備份為img檔 ``` $ sudo dd if=/dev/sdb1 bs=64K conv=noerror,sync status=progress | gzip -c > ~/linux_efi.img.gz ``` #### 2. 將root file system備份為img檔 ``` $ sudo dd if=/dev/sdb2 bs=64K conv=noerror,sync status=progress | gzip -c > ~/linux_root.img.gz ``` #### 3. 將img檔還原至目的地的EFI partition ``` $ sudo gunzip -c ~/linux_efi.img.gz | sudo dd of=/dev/sdc1 status=progress ``` #### 4. 將img檔還原至目的地的root file system ``` $ sudo gunzip -c ~/linux_root.img.gz | sudo dd of=/dev/sdc2 status=progress ``` ## 注意事項 1. 目的的partition大小必須比來源的partition大, 否則會跳寫入空間不足的錯誤 2. 使用dd拷貝partition的話, UUID將會與來源相同, 因此fstab使用UUID的話可以直接boot 3. 如果不需備份只需要clone partition, 可以直接將 | gzip -c > ... 取代為of=/dev/sdcx ## 參考資料 https://wiki.archlinux.org/title/Dd#Disk_cloning_and_restore