使用 DiskGenius 手動克隆系統

克隆操作需要用到 DiskGenius

https://download2.eassos.cn/DG5511508_x64.zip

本範例使用 980 Pro (來源) 與 545S (目標) 操作

先確認目標磁碟分割表類型是不是 GPT 格式
若是 MBR 格式則需要轉換成 GPT 格式才能繼續操作


先記住目標磁碟總磁區數500118192
以及來源磁碟磁碟區(3)總磁區數1202176

注意每個人的硬碟都不一樣,不要直接抄作業!!!


建立 ESP/MSR 磁碟區,ESP 磁碟區容量改成100MB,對齊改成2048磁區


目標磁碟結尾建立 Recovery 磁碟區,請自行帶入上面記住的數字
起始磁區號算法500118192 - (500118192 mod 2048) - 1202176等於498915328

新增完成後還需要標記為隱藏磁碟區以及修改磁碟區參數後才會被 Windows 認為是 Recovery 磁碟區

檢查磁碟區類型 GUID 是否為 DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
有時程式會抽風沒修改到,若不一樣就再重複一次修改的步驟


再來建立系統磁碟區,如果硬碟太大想多切幾塊出來都可以


至此磁碟區已建立完畢,最後依序克隆ESP、Recovery、系統磁碟區過去就可以了
這邊因為系統太大了,所以先用 Windows 安裝光碟裡的 install.wim 的資料測試


OK讓我們來上電開機看看,輕鬆失敗(?


報錯原因是因為克隆的 ESP 磁碟區裡的 BCD 檔案還是使用來源磁碟的磁碟區做開機
因此在拔除來源磁碟後就會找不到目標裝置,所以需要修正 BCD 檔案裡的開機紀錄

先分配一個磁碟代號給 ESP 磁碟區才能使用 bcdedit 操作
拿到的 BCD 檔案路徑為J:\EFI\Microsoft\Boot\BCD


先抄下ESP、Recovery磁碟區的設備路徑
\Device\HarddiskVolume36\Device\HarddiskVolume39


接下來使用組合鍵 Win+R 輸入 cmd 叫出命令提示字元
輸入指令bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /enum all

會得到下列的資料 (已省略一些不重要的資料)

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  zh-TW
inherit                 {globalsettings}
default                 {default}
resumeobject            {0a336caa-1546-11ed-b055-819c3fda84ba}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 10
locale                  zh-TW
inherit                 {bootloadersettings}
recoverysequence        {0a336cac-1546-11ed-b055-819c3fda84ba}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {0a336caa-1546-11ed-b055-819c3fda84ba}
nx                      OptIn
bootmenupolicy          Standard

Windows Boot Loader
-------------------
identifier              {0a336cac-1546-11ed-b055-819c3fda84ba}
device                  ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{0a336cad-1546-11ed-b055-819c3fda84ba}
path                    \windows\system32\winload.efi
description             Windows Recovery Environment
locale                  zh-tw
inherit                 {bootloadersettings}
displaymessage          Recovery
osdevice                ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{0a336cad-1546-11ed-b055-819c3fda84ba}
systemroot              \windows
nx                      OptIn
bootmenupolicy          Standard
winpe                   Yes

Resume from Hibernate
---------------------
identifier              {0a336caa-1546-11ed-b055-819c3fda84ba}
device                  partition=C:
path                    \Windows\system32\winresume.efi
description             Windows Resume Application
locale                  zh-TW
inherit                 {resumeloadersettings}
recoverysequence        {0a336cac-1546-11ed-b055-819c3fda84ba}
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
filedevice              partition=C:
filepath                \hiberfil.sys
bootmenupolicy          Standard
debugoptionenabled      No

Windows Memory Tester
---------------------
identifier              {memdiag}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\memtest.efi
description             Windows 記憶體診斷
locale                  zh-TW
inherit                 {globalsettings}
badmemoryaccess         Yes

Device options
--------------
identifier              {0a336cad-1546-11ed-b055-819c3fda84ba}
description             Windows Recovery
ramdisksdidevice        partition=\Device\HarddiskVolume4
ramdisksdipath          \Recovery\WindowsRE\boot.sdi

得到的資料有很多 device partition 指向了來源磁碟設備路徑
自己替換成目標磁碟設備路徑後修改掉,下面提供本次範例用的指令

注意每個人的 identifier 跟設備路徑都會不一樣,不要直接抄作業!!!

bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {bootmgr} device partition=\Device\HarddiskVolume36
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {default} device partition=I:
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {default} osdevice partition=I:
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {0a336cac-1546-11ed-b055-819c3fda84ba} device ramdisk=[\Device\HarddiskVolume39]\Recovery\WindowsRE\Winre.wim,{0a336cad-1546-11ed-b055-819c3fda84ba}
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {0a336cac-1546-11ed-b055-819c3fda84ba} osdevice ramdisk=[\Device\HarddiskVolume39]\Recovery\WindowsRE\Winre.wim,{0a336cad-1546-11ed-b055-819c3fda84ba}
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {0a336caa-1546-11ed-b055-819c3fda84ba} device partition=I:
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {0a336caa-1546-11ed-b055-819c3fda84ba} filedevice partition=I:
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {memdiag} device partition=\Device\HarddiskVolume36
bcdedit /store "J:\EFI\Microsoft\Boot\BCD" /set {0a336cad-1546-11ed-b055-819c3fda84ba} ramdisksdidevice partition=\Device\HarddiskVolume39


最後把 ESP 磁碟區的磁碟代號刪除掉,然後驗證結果

完成