https://download2.eassos.cn/DG5511508_x64.zip
先確認目標磁碟的分割表類型是不是 GPT 格式
若是 MBR 格式則需要轉換成 GPT 格式才能繼續操作
先記住目標磁碟的總磁區數500118192
以及來源磁碟的磁碟區(3)的總磁區數1202176
建立 ESP/MSR 磁碟區,ESP 磁碟區容量改成100
MB,對齊改成2048
磁區
在目標磁碟結尾建立 Recovery 磁碟區,請自行帶入上面記住的數字
起始磁區號算法500118192 - (500118192 mod 2048) - 1202176
等於498915328
新增完成後還需要標記為隱藏磁碟區以及修改磁碟區參數後才會被 Windows 認為是 Recovery 磁碟區
檢查磁碟區類型 GUID 是否為 DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
有時程式會抽風沒修改到,若不一樣就再重複一次修改的步驟
再來建立系統磁碟區,如果硬碟太大想多切幾塊出來都可以
至此磁碟區已建立完畢,最後依序克隆ESP、Recovery、系統
磁碟區過去就可以了
這邊因為系統太大了,所以先用 Windows 安裝光碟裡的 install.wim 的資料測試
報錯原因是因為克隆的 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 指向了來源磁碟的設備路徑
自己替換成目標磁碟的設備路徑後修改掉,下面提供本次範例用的指令
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 磁碟區的磁碟代號刪除掉,然後驗證結果