mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 08:21:14 +00:00
1. Optimization for WIMBOOT mode.
2. Add WIMBOOT for UEFI mode.
This commit is contained in:
@@ -23,7 +23,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
|
||||
gfxmenu: trig video_colors bitmap_scale gfxterm font normal bitmap video
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
configfile: normal
|
||||
|
@@ -535,6 +535,10 @@ function uefi_windows_menu_func {
|
||||
vt_windows_chain_data "${1}${chosen_path}"
|
||||
ventoy_debug_pause
|
||||
|
||||
if vt_check_mode 4; then
|
||||
vtoy_windows_wimboot_func
|
||||
fi
|
||||
|
||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
||||
ventoy_cli_console
|
||||
@@ -805,23 +809,81 @@ function uefi_iso_memdisk {
|
||||
}
|
||||
|
||||
|
||||
function legacy_windows_wimboot_func {
|
||||
set wimbootfile=(loop)/sources/boot.wim
|
||||
set wimbit=64
|
||||
function vtoy_windows_wimboot_func {
|
||||
if [ -f (loop)/x86/sources/boot.wim -a -f (loop)/x64/sources/boot.wim ]; then
|
||||
vt_sel_wimboot vtoy_wimboot_bit
|
||||
if [ "$vtoy_wimboot_bit" = "32" ]; then
|
||||
set vtoy_wimboot_prefix=(loop)/x86
|
||||
else
|
||||
set vtoy_wimboot_prefix=(loop)/x64
|
||||
fi
|
||||
else
|
||||
set vtoy_wimboot_prefix=(loop)
|
||||
if vt_is_pe64 $vtoy_wimboot_prefix/setup.exe; then
|
||||
set vtoy_wimboot_bit=64
|
||||
else
|
||||
set vtoy_wimboot_bit=32
|
||||
fi
|
||||
fi
|
||||
|
||||
vt_windows_wimboot_data
|
||||
if [ -n "${vtdebug_flag}" ]; then
|
||||
echo vtoy_wimboot_prefix=$vtoy_wimboot_prefix vtoy_wimboot_bit=$vtoy_wimboot_bit
|
||||
fi
|
||||
|
||||
linux16 $vtoy_efi_part/ventoy/wimboot quiet
|
||||
ventoy_debug_pause
|
||||
for wmfile in sources/boot.wim boot/bcd boot/boot.sdi; do
|
||||
if [ ! -f $vtoy_wimboot_prefix/$wmfile ]; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -f $vtoy_wimboot_prefix/sources/install.wim -o -f $vtoy_wimboot_prefix/sources/install.esd ]; then
|
||||
vt_windows_wimboot_data
|
||||
else
|
||||
return
|
||||
fi
|
||||
|
||||
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
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
|
||||
linux16 "$vtoy_path/$vt_wimkernel" quiet
|
||||
ventoy_debug_pause
|
||||
|
||||
echo Loading files...... (This may take a few minutes, please wait)
|
||||
initrd16 newc:vtoyjump.exe:$vtoy_path/vtoyjump${vtoy_wimboot_bit}.exe \
|
||||
newc:wimboot.data:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size} \
|
||||
newc:winpeshl.ini:mem:${vtoy_winpeshl_ini_addr}:size:${vtoy_winpeshl_ini_size} \
|
||||
newc:bcd:$vtoy_wimboot_prefix/boot/bcd \
|
||||
newc:boot.sdi:$vtoy_wimboot_prefix/boot/boot.sdi \
|
||||
newc:boot.wim:$vtoy_wimboot_prefix/sources/boot.wim
|
||||
boot
|
||||
else
|
||||
if [ "$grub_cpu" = "i386" ]; then
|
||||
set vt_wimkernel=wimboot.i386.efi.xz
|
||||
else
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
fi
|
||||
|
||||
echo Loading files...... (This may take a few minutes, please wait)
|
||||
vt_load_file_to_mem "nodecompress" $vtoy_wimboot_prefix/sources/boot.wim vtoy_wimfile_mem
|
||||
if [ $? -eq 0 ]; then
|
||||
set vtoy_wimfile_path=mem:${vtoy_wimfile_mem_addr}:size:${vtoy_wimfile_mem_size}
|
||||
else
|
||||
set vtoy_wimfile_path=$vtoy_wimboot_prefix/sources/boot.wim
|
||||
fi
|
||||
|
||||
ventoy_cli_console
|
||||
chainloader "$vtoy_path/$vt_wimkernel" quiet \
|
||||
"vf=wimboot.data:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size}" \
|
||||
"vf=winpeshl.ini:mem:${vtoy_winpeshl_ini_addr}:size:${vtoy_winpeshl_ini_size}" \
|
||||
"vf=vtoyjump.exe:$vtoy_path/vtoyjump${vtoy_wimboot_bit}.exe" \
|
||||
"vf=bcd:$vtoy_wimboot_prefix/boot/bcd" \
|
||||
"vf=boot.sdi:$vtoy_wimboot_prefix/boot/boot.sdi" \
|
||||
"vf=boot.wim:$vtoy_wimfile_path" \
|
||||
pfsize=$vtoy_chain_file_size \
|
||||
pfread=$vtoy_chain_file_read
|
||||
boot
|
||||
ventoy_gui_console
|
||||
fi
|
||||
}
|
||||
|
||||
function legacy_windows_menu_func {
|
||||
@@ -854,7 +916,7 @@ function legacy_windows_menu_func {
|
||||
ventoy_debug_pause
|
||||
|
||||
if vt_check_mode 4; then
|
||||
legacy_windows_wimboot_func
|
||||
vtoy_windows_wimboot_func
|
||||
fi
|
||||
|
||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
|
||||
gfxmenu: trig video_colors bitmap_scale gfxterm font normal bitmap video
|
||||
backtrace:
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
|
@@ -26,7 +26,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
|
||||
gfxmenu: trig video_colors bitmap_scale gfxterm font normal bitmap video
|
||||
backtrace:
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
|
Binary file not shown.
@@ -26,7 +26,7 @@ sfs: fshelp
|
||||
reiserfs: fshelp
|
||||
part_sunpc:
|
||||
zstd:
|
||||
gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
|
||||
gfxmenu: trig video_colors bitmap_scale gfxterm font normal bitmap video
|
||||
backtrace:
|
||||
jfs:
|
||||
help: extcmd normal
|
||||
|
Reference in New Issue
Block a user