mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-20 18:51:17 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e8d17f9bb1 | ||
|
2283c3e8b0 | ||
|
8bbd5a14a3 | ||
|
f7d7db6a18 |
@@ -3,7 +3,7 @@
|
|||||||
1. Compile Enviroment
|
1. Compile Enviroment
|
||||||
==========================================
|
==========================================
|
||||||
My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.
|
My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.
|
||||||
Because Ventoy is based on many open source projects, so the envrioment is important. I suggest you test it on a virtual machine first.
|
Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine first.
|
||||||
|
|
||||||
1.1 Install CentOS 7.8
|
1.1 Install CentOS 7.8
|
||||||
I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install
|
I use CentOS-7-x86_64-Everything-2003.iso and select Minimal install
|
||||||
|
@@ -408,12 +408,12 @@ STATIC VOID ventoy_warn_invalid_device(VOID)
|
|||||||
gST->ConOut->OutputString(gST->ConOut, VTOY_WARNING L"\r\n");
|
gST->ConOut->OutputString(gST->ConOut, VTOY_WARNING L"\r\n");
|
||||||
gST->ConOut->OutputString(gST->ConOut, VTOY_WARNING L"\r\n\r\n\r\n");
|
gST->ConOut->OutputString(gST->ConOut, VTOY_WARNING L"\r\n\r\n\r\n");
|
||||||
|
|
||||||
gST->ConOut->OutputString(gST->ConOut, L"This is NOT a standard Ventoy device and is NOT officially supported.\r\n\r\n");
|
gST->ConOut->OutputString(gST->ConOut, L"This is NOT a standard Ventoy device and is NOT supported.\r\n\r\n");
|
||||||
gST->ConOut->OutputString(gST->ConOut, L"You should follow the official instructions in https://www.ventoy.net\r\n");
|
gST->ConOut->OutputString(gST->ConOut, L"You should follow the official instructions in https://www.ventoy.net\r\n");
|
||||||
|
|
||||||
gST->ConOut->OutputString(gST->ConOut, L"\r\n\r\nWill continue to boot after 15 seconds ...... ");
|
gST->ConOut->OutputString(gST->ConOut, L"\r\n\r\nWill exit after 10 seconds ...... ");
|
||||||
|
|
||||||
sleep(15);
|
sleep(10);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
STATIC VOID ventoy_warn_invalid_device(VOID)
|
STATIC VOID ventoy_warn_invalid_device(VOID)
|
||||||
@@ -718,6 +718,7 @@ STATIC EFI_STATUS EFIAPI ventoy_parse_cmdline(IN EFI_HANDLE ImageHandle)
|
|||||||
if (pEnv[0] != '0' || pEnv[1] != 0)
|
if (pEnv[0] != '0' || pEnv[1] != 0)
|
||||||
{
|
{
|
||||||
ventoy_warn_invalid_device();
|
ventoy_warn_invalid_device();
|
||||||
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_file_replace_list = &pGrubParam->file_replace;
|
g_file_replace_list = &pGrubParam->file_replace;
|
||||||
|
@@ -185,7 +185,7 @@ typedef struct ventoy_virt_chunk
|
|||||||
#error Unknown Processor Type
|
#error Unknown Processor Type
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define VENTOY_DEVICE_WARN 0
|
#define VENTOY_DEVICE_WARN 1
|
||||||
#define VTOY_WARNING L"!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!"
|
#define VTOY_WARNING L"!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!"
|
||||||
|
|
||||||
typedef struct ventoy_sector_flag
|
typedef struct ventoy_sector_flag
|
||||||
|
@@ -1639,15 +1639,14 @@ int ventoy_check_device_result(int ret)
|
|||||||
grub_env_set("VTOY_CHKDEV_RESULT_STRING", buf);
|
grub_env_set("VTOY_CHKDEV_RESULT_STRING", buf);
|
||||||
grub_env_export("VTOY_CHKDEV_RESULT_STRING");
|
grub_env_export("VTOY_CHKDEV_RESULT_STRING");
|
||||||
|
|
||||||
if (ret & 0x1000)
|
if (ret)
|
||||||
{
|
{
|
||||||
grub_printf(VTOY_WARNING"\n");
|
grub_printf(VTOY_WARNING"\n");
|
||||||
grub_printf(VTOY_WARNING"\n");
|
grub_printf(VTOY_WARNING"\n");
|
||||||
grub_printf(VTOY_WARNING"\n\n\n");
|
grub_printf(VTOY_WARNING"\n\n\n");
|
||||||
|
|
||||||
grub_printf("Unsatisfied conditions detected for Ventoy.\n\n");
|
grub_printf("This is NOT a standard Ventoy device and is NOT supported.\n\n");
|
||||||
grub_printf("This is NOT a standard Ventoy device and is NOT officially supported.\n\n");
|
grub_printf("You should follow the instructions in https://www.ventoy.net to use Ventoy.\n");
|
||||||
grub_printf("Recommend to follow the instructions in https://www.ventoy.net to use Ventoy.\n");
|
|
||||||
|
|
||||||
grub_printf("\n\nWill exit after 10 seconds ...... ");
|
grub_printf("\n\nWill exit after 10 seconds ...... ");
|
||||||
grub_refresh();
|
grub_refresh();
|
||||||
@@ -3522,7 +3521,7 @@ static grub_err_t ventoy_cmd_load_part_table(grub_extcmd_context_t ctxt, int arg
|
|||||||
ret = ventoy_check_device(dev);
|
ret = ventoy_check_device(dev);
|
||||||
grub_device_close(dev);
|
grub_device_close(dev);
|
||||||
|
|
||||||
if (ret & 0x1000)
|
if (ret)
|
||||||
{
|
{
|
||||||
grub_exit();
|
grub_exit();
|
||||||
}
|
}
|
||||||
|
@@ -12,10 +12,10 @@ make install
|
|||||||
PATH=$PATH:$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/
|
PATH=$PATH:$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/
|
||||||
|
|
||||||
net_modules_legacy="net tftp http"
|
net_modules_legacy="net tftp http"
|
||||||
all_modules_legacy="date drivemap blocklist newc vga_text ntldr search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe video_fb font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_gpt part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu"
|
all_modules_legacy="date drivemap blocklist regexp newc vga_text ntldr search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio lspci pci ext2 xfs ventoy chain read halt iso9660 linux16 test true sleep reboot echo videotest videoinfo videotest_checksum video_colors video_cirrus video_bochs vga vbe video_fb font video gettext extcmd terminal linux minicmd help configfile tr trig boot biosdisk disk ls tar squash4 password_pbkdf2 all_video png jpeg part_gpt part_msdos fat exfat ntfs loopback gzio normal udf gfxmenu gfxterm gfxterm_background gfxterm_menu"
|
||||||
|
|
||||||
net_modules_uefi="efinet net tftp http"
|
net_modules_uefi="efinet net tftp http"
|
||||||
all_modules_uefi="blocklist ventoy test newc search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu"
|
all_modules_uefi="blocklist ventoy test regexp newc search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu"
|
||||||
|
|
||||||
if [ "$1" = "uefi" ]; then
|
if [ "$1" = "uefi" ]; then
|
||||||
all_modules="$net_modules_uefi $all_modules_uefi "
|
all_modules="$net_modules_uefi $all_modules_uefi "
|
||||||
|
@@ -72,5 +72,8 @@ if [ -f /mod.img ] && [ -f /mod/fs/cramfs.ko ]; then
|
|||||||
$BUSYBOX_PATH/rmmod cramfs
|
$BUSYBOX_PATH/rmmod cramfs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#for siduction-patience-nox-
|
||||||
|
if [ -f /scripts/fll ]; then
|
||||||
|
$SED "/unset FINGERED/a\\echo '/dev/mapper/ventoy';return;" -i /scripts/fll
|
||||||
|
fi
|
||||||
|
|
||||||
|
@@ -21,6 +21,9 @@
|
|||||||
|
|
||||||
if $GREP -q kaspersky /proc/version; then
|
if $GREP -q kaspersky /proc/version; then
|
||||||
$SED "/sysresccd_stage1_normal[^(]*$/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
$SED "/sysresccd_stage1_normal[^(]*$/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||||
|
if [ -f /ventoy/ventoy_persistent_map ]; then
|
||||||
|
$SED "/sysresccd_parsecmdline[^(]*$/a\ BACKSTORE_CMD='LABEL=casper-rw,noloop'" -i /init
|
||||||
|
fi
|
||||||
elif [ -d /etc/udev/rules.d ] || [ -d /lib/udev/rules.d ]; then
|
elif [ -d /etc/udev/rules.d ] || [ -d /lib/udev/rules.d ]; then
|
||||||
ventoy_systemd_udevd_work_around
|
ventoy_systemd_udevd_work_around
|
||||||
ventoy_add_udev_rule "$VTOY_PATH/hook/default/udev_disk_hook.sh %k noreplace"
|
ventoy_add_udev_rule "$VTOY_PATH/hook/default/udev_disk_hook.sh %k noreplace"
|
||||||
|
Binary file not shown.
@@ -59,7 +59,7 @@ function ventoy_diagnosis {
|
|||||||
configfile $prefix/debug.cfg
|
configfile $prefix/debug.cfg
|
||||||
}
|
}
|
||||||
|
|
||||||
function ventoy_localboot {
|
function ventoy_localboot {
|
||||||
configfile $prefix/localboot.cfg
|
configfile $prefix/localboot.cfg
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +270,9 @@ function distro_specify_initrd_file_phase2 {
|
|||||||
vt_linux_specify_initrd_file /live/initrd2.img
|
vt_linux_specify_initrd_file /live/initrd2.img
|
||||||
vt_linux_specify_initrd_file /install.amd/initrd.gz
|
vt_linux_specify_initrd_file /install.amd/initrd.gz
|
||||||
vt_linux_specify_initrd_file /install.amd/gtk/initrd.gz
|
vt_linux_specify_initrd_file /install.amd/gtk/initrd.gz
|
||||||
|
elif [ -f (loop)/boot/grub/kernels.cfg ]; then
|
||||||
|
vt_linux_parse_initrd_grub file (loop)/boot/grub/kernels.cfg
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1358,7 +1360,7 @@ function img_unsupport_menuentry {
|
|||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
set VENTOY_VERSION="1.0.27"
|
set VENTOY_VERSION="1.0.28"
|
||||||
|
|
||||||
#ACPI not compatible with Window7/8, so disable by default
|
#ACPI not compatible with Window7/8, so disable by default
|
||||||
set VTOY_PARAM_NO_ACPI=1
|
set VTOY_PARAM_NO_ACPI=1
|
||||||
@@ -1506,6 +1508,34 @@ export vtoy_efi_part
|
|||||||
export VENTOY_VERSION
|
export VENTOY_VERSION
|
||||||
export VTOY_CUR_VIDEO_MODE
|
export VTOY_CUR_VIDEO_MODE
|
||||||
|
|
||||||
|
#special VTOY_DEFAULT_IMAGE process
|
||||||
|
if [ -n "$VTOY_DEFAULT_IMAGE" ]; then
|
||||||
|
if regexp --set 1:vtHotkey --set 2:vtDefault "(F[2-9])>(.*)" "$VTOY_DEFAULT_IMAGE"; then
|
||||||
|
|
||||||
|
set default="$vtDefault"
|
||||||
|
if [ -z "$VTOY_MENU_TIMEOUT" ]; then
|
||||||
|
set timeout=0
|
||||||
|
else
|
||||||
|
set timeout=$VTOY_MENU_TIMEOUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
export timeout
|
||||||
|
export default
|
||||||
|
|
||||||
|
if [ "$vtHotkey" = "F2" ]; then
|
||||||
|
ventoy_power
|
||||||
|
elif [ "$vtHotkey" = "F4" ]; then
|
||||||
|
ventoy_localboot
|
||||||
|
elif [ "$vtHotkey" = "F5" ]; then
|
||||||
|
ventoy_diagnosis
|
||||||
|
elif [ "$vtHotkey" = "F6" ]; then
|
||||||
|
ventoy_ext_menu
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset timeout
|
||||||
|
unset default
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
#colect all image files (iso files)
|
#colect all image files (iso files)
|
||||||
set ventoy_img_count=0
|
set ventoy_img_count=0
|
||||||
|
Binary file not shown.
@@ -14,10 +14,12 @@ print_usage() {
|
|||||||
echo ' -r SIZE_MB preserve some space at the bottom of the disk (only for install)'
|
echo ' -r SIZE_MB preserve some space at the bottom of the disk (only for install)'
|
||||||
echo ' -s enable secure boot support (default is disabled)'
|
echo ' -s enable secure boot support (default is disabled)'
|
||||||
echo ' -g use GPT partition style, default is MBR (only for install)'
|
echo ' -g use GPT partition style, default is MBR (only for install)'
|
||||||
|
echo ' -L Label of the 1st exfat partition (default is ventoy)'
|
||||||
echo ''
|
echo ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
VTNEW_LABEL='ventoy'
|
||||||
RESERVE_SIZE_MB=0
|
RESERVE_SIZE_MB=0
|
||||||
while [ -n "$1" ]; do
|
while [ -n "$1" ]; do
|
||||||
if [ "$1" = "-i" ]; then
|
if [ "$1" = "-i" ]; then
|
||||||
@@ -31,6 +33,9 @@ while [ -n "$1" ]; do
|
|||||||
SECUREBOOT="YES"
|
SECUREBOOT="YES"
|
||||||
elif [ "$1" = "-g" ]; then
|
elif [ "$1" = "-g" ]; then
|
||||||
VTGPT="YES"
|
VTGPT="YES"
|
||||||
|
elif [ "$1" = "-L" ]; then
|
||||||
|
shift
|
||||||
|
VTNEW_LABEL=$1
|
||||||
elif [ "$1" = "-r" ]; then
|
elif [ "$1" = "-r" ]; then
|
||||||
RESERVE_SPACE="YES"
|
RESERVE_SPACE="YES"
|
||||||
shift
|
shift
|
||||||
@@ -248,7 +253,7 @@ if [ "$MODE" = "install" ]; then
|
|||||||
PART1=$(get_disk_part_name $DISK 1)
|
PART1=$(get_disk_part_name $DISK 1)
|
||||||
PART2=$(get_disk_part_name $DISK 2)
|
PART2=$(get_disk_part_name $DISK 2)
|
||||||
|
|
||||||
$cmd -n ventoy -s $cluster_sectors ${PART1}
|
$cmd -n "$VTNEW_LABEL" -s $cluster_sectors ${PART1}
|
||||||
|
|
||||||
vtinfo "writing data to disk ..."
|
vtinfo "writing data to disk ..."
|
||||||
|
|
||||||
|
@@ -265,7 +265,7 @@ w
|
|||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
udevadm trigger >/dev/null 2>&1
|
udevadm trigger --name-match=$DISK >/dev/null 2>&1
|
||||||
partprobe >/dev/null 2>&1
|
partprobe >/dev/null 2>&1
|
||||||
sleep 3
|
sleep 3
|
||||||
echo "Done"
|
echo "Done"
|
||||||
@@ -362,7 +362,7 @@ format_ventoy_disk_gpt() {
|
|||||||
$vtoygpt -f $DISK
|
$vtoygpt -f $DISK
|
||||||
sync
|
sync
|
||||||
|
|
||||||
udevadm trigger >/dev/null 2>&1
|
udevadm trigger --name-match=$DISK >/dev/null 2>&1
|
||||||
partprobe >/dev/null 2>&1
|
partprobe >/dev/null 2>&1
|
||||||
sleep 3
|
sleep 3
|
||||||
echo "Done"
|
echo "Done"
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
25
README.md
25
README.md
@@ -16,31 +16,32 @@ You can copy many iso files at a time and ventoy will give you a boot menu to se
|
|||||||
Both Legacy BIOS and UEFI are supported in the same way.<br/>
|
Both Legacy BIOS and UEFI are supported in the same way.<br/>
|
||||||
Both MBR and GPT partition style are supported in the same way.<br/>
|
Both MBR and GPT partition style are supported in the same way.<br/>
|
||||||
Most type of OS supported(Windows/WinPE/Linux/Unix/Vmware/Xen...) <br/>
|
Most type of OS supported(Windows/WinPE/Linux/Unix/Vmware/Xen...) <br/>
|
||||||
550+ ISO files are tested. 90%+ distros in distrowatch.com supported. <br/>
|
560+ ISO files are tested. 90%+ distros in distrowatch.com supported. <br/>
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
* 100% open source
|
* 100% open source
|
||||||
* Simple to use
|
* Simple to use
|
||||||
* Fast (limited only by the speed of copying iso file)
|
* Fast (limited only by the speed of copying iso file)
|
||||||
* Directly boot from ISO/WIM/IMG/VHD(x)/EFI file, no extraction needed
|
* Can be installed in USB/Local Disk/SSD/NVMe/SD Card
|
||||||
* Legacy + UEFI supported in the same way
|
* Directly boot from ISO/WIM/IMG/VHD(x)/EFI files, no extraction needed
|
||||||
* UEFI Secure Boot supported (since 1.0.07+)
|
* No need to be continuous in disk for ISO/IMG files
|
||||||
* Persistence supported (since 1.0.11+)
|
|
||||||
* MBR and GPT partition style supported (1.0.15+)
|
* MBR and GPT partition style supported (1.0.15+)
|
||||||
* WIM files boot supported (Legacy + UEFI) (1.0.12+)
|
* Legacy + UEFI supported in the same way
|
||||||
* IMG files boot supported (Legacy + UEFI) (1.0.19+)
|
* UEFI Secure Boot supported (1.0.07+)
|
||||||
* Auto installation supported (1.0.09+)
|
* Persistence supported (1.0.11+)
|
||||||
* File injection supported (1.0.16+)
|
* Windows/Linux auto installation supported (1.0.09+)
|
||||||
* ISO files larger than 4GB supported
|
* ISO files larger than 4GB supported
|
||||||
* Native boot menu style for Legacy & UEFI
|
* Native boot menu style for Legacy & UEFI
|
||||||
* Most type of OS supported(Windows/WinPE/Linux/Unix/Vmware/Xen...), 550+ iso files tested
|
* Most type of OS supported, 560+ iso files tested
|
||||||
|
* Linux vDisk boot supported
|
||||||
* Not only boot but also complete installation process
|
* Not only boot but also complete installation process
|
||||||
* ISO files can be listed in List mode/TreeView mode
|
* ISO files can be listed in List mode/TreeView mode
|
||||||
* Linux vDisk boot supported (vdi/vhd/raw)
|
|
||||||
* "Ventoy Compatible" concept
|
* "Ventoy Compatible" concept
|
||||||
* Plugin Framework
|
* Plugin Framework
|
||||||
* Menu Alias/Menu Style/Customized Menu supported
|
* Injection files to runtime enviroment
|
||||||
|
* Boot configuration file dynamically replacement
|
||||||
|
* Highly customizable theme and menu
|
||||||
* USB drive write-protected support
|
* USB drive write-protected support
|
||||||
* USB normal use unaffected
|
* USB normal use unaffected
|
||||||
* Data nondestructive during version upgrade
|
* Data nondestructive during version upgrade
|
||||||
|
Reference in New Issue
Block a user