]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - INSTALL/grub/grub.cfg
Add WIMBOOT mode
[Ventoy.git] / INSTALL / grub / grub.cfg
index a8f70b2bb0d037b977bc697f497deccdc5e4d44c..f57a20c979ba779d85123697a5b0266a27f7bd86 100644 (file)
@@ -805,6 +805,25 @@ function uefi_iso_memdisk {
 }
 
 
+function legacy_windows_wimboot_func {
+    set wimbootfile=(loop)/sources/boot.wim
+    set wimbit=64
+
+    vt_windows_wimboot_data
+
+    linux16  $vtoy_efi_part/ventoy/wimboot quiet
+    ventoy_debug_pause
+    
+    echo Loading files...... (This may take a few minutes, please wait.)
+    initrd16 newc:vtoyjump.exe:$vtoy_efi_part/ventoy/vtoyjump${wimbit}.exe \
+         newc:wimboot.data:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size} \
+         newc:winpeshl.ini:$vtoy_efi_part/ventoy/winpeshl.ini \
+         newc:bcd:(loop)/boot/bcd \
+         newc:boot.sdi:(loop)/boot/boot.sdi \
+         newc:boot.wim:$wimbootfile
+    boot
+}
+
 function legacy_windows_menu_func {
     vt_windows_reset
     
@@ -833,7 +852,11 @@ function legacy_windows_menu_func {
 
     vt_windows_chain_data "${1}${chosen_path}"
     ventoy_debug_pause    
-    
+
+    if vt_check_mode 4; then
+        legacy_windows_wimboot_func
+    fi
+
     if [ -n "$vtoy_chain_mem_addr" ]; then
         ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
         linux16   $vtoy_path/ipxe.krn ${vtdebug_flag} ibft mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}        
@@ -1721,6 +1744,7 @@ set VTOY_DEFAULT_MENU_MODE=0
 set VTOY_MEM_DISK_STR="[Memdisk]"
 set VTOY_ISO_RAW_STR="Compatible Mode"
 set VTOY_GRUB2_MODE_STR="GRUB2 Mode"
+set VTOY_WIMBOOT_MODE_STR="WIMBOOT Mode"
 set VTOY_ISO_UEFI_DRV_STR="UEFI FS"
 
 set VTOY_F2_CMD="ventoy_power"