Ventoy開機方式的簡述(取自該站):
Ventoy在啟動時會基於ISO文件創建一個虛擬設備然後啟動它。但是這個虛擬設備僅僅是BIOS層面的(Legacy或者UEFI)。大多數情況下它只在啟動階段存在。絕大多數現代操作系統的內核在啟動之後都是使用它們自身的驅動來訪問硬件,因此這個虛擬設備對於內核來說是不可見的。一般情況下,ISO裡面的系統起來之後會遍歷所有的硬件設備(CDROM/USB/HD ...) 去尋找安裝源。但是在Ventoy啟動的環境下是找不到的,因為沒有這樣一個實際的安裝介質,是虛擬的設備嘛。但是系統內核不知道這個情況,它們不知道當前是 Ventoy使用虛擬設備引導起來的,並不是傳統的物理光驅或者U盤引導起來的。所以,如果不做特殊處理的話,大部分ISO文件啟動以後就會報找不到安裝源的錯誤而停止。
簡單來說,使用Ventoy開機的ISO版PE,ISO不會像光碟機一樣出現在你的檔案總管,需要藉助vtoydump來獲取ventoy在記憶體中存放的資訊。
1. 首先在要修改的PE的ISO檔內,根目錄放一個ventoy.dat,告訴他你相容於Ventoy
2.找到PECMD.ini,把下面這堆加到PECMD.ini開頭,下面每行都有註解說在做啥
[Bash shell] 純文本查看 復制代碼 //將Ventoy讀取到的保存在RAM中的資料放到VentoyResult變數,並寫入TXT紀錄
EXEC*1 &&VentoyResult=!%WinDir%\System32\vtoydump.exe
WRIT *c %WinDir%\System32\VentoyResult.txt,$+0,%&VentoyResult%
//查看紀錄中是否有磁碟代號(:\)字串存在
LPOS &&CheckVentoyResult=:\,,%&VentoyResult%
//有就不等於0,掛載ISO,沒有就按照標準程序處裡
FIND $%CheckVentoyResult%<>0,IS_VENTOY!NOT_VENTOY
_SUB IS_VENTOY
//掛載ISO鏡像文件,並將返回值賦值給變數VentoyMountResult
EXEC*1 &&VentoyMountResult=!%WinDir%\System32\vtoydump.exe -m
//記錄掛載狀況
WRIT *c %WinDir%\System32\VentoyMountResult.txt,$+0,%&VentoyMountResult%
MESS-top-x:250-y:130-icon2 偵測到為Ventoy啟動,ISO檔已自動掛接。 @USBOX Ventoy Support *3000
_END
_SUB NOT_VENTOY
//目前啥都不做
_END
3. 完工,這樣ISO檔就會自己掛起來了,PE工具載入等工作就不會有問題。
關於Ventoy Compatible:https://www.ventoy.net/cn/compatible.html
|