mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-16 09:01:15 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e8d17f9bb1 | ||
|
2283c3e8b0 | ||
|
8bbd5a14a3 | ||
|
f7d7db6a18 |
@@ -3,7 +3,7 @@
|
||||
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.
|
||||
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
|
||||
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\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"\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
|
||||
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)
|
||||
{
|
||||
ventoy_warn_invalid_device();
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
g_file_replace_list = &pGrubParam->file_replace;
|
||||
|
@@ -185,7 +185,7 @@ typedef struct ventoy_virt_chunk
|
||||
#error Unknown Processor Type
|
||||
#endif
|
||||
|
||||
#define VENTOY_DEVICE_WARN 0
|
||||
#define VENTOY_DEVICE_WARN 1
|
||||
#define VTOY_WARNING L"!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!"
|
||||
|
||||
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_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\n\n");
|
||||
|
||||
grub_printf("Unsatisfied conditions detected for Ventoy.\n\n");
|
||||
grub_printf("This is NOT a standard Ventoy device and is NOT officially supported.\n\n");
|
||||
grub_printf("Recommend to follow the instructions in https://www.ventoy.net to use Ventoy.\n");
|
||||
grub_printf("This is NOT a standard Ventoy device and is NOT supported.\n\n");
|
||||
grub_printf("You should follow the instructions in https://www.ventoy.net to use Ventoy.\n");
|
||||
|
||||
grub_printf("\n\nWill exit after 10 seconds ...... ");
|
||||
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);
|
||||
grub_device_close(dev);
|
||||
|
||||
if (ret & 0x1000)
|
||||
if (ret)
|
||||
{
|
||||
grub_exit();
|
||||
}
|
||||
|
@@ -12,10 +12,10 @@ make install
|
||||
PATH=$PATH:$VT_DIR/GRUB2/INSTALL/bin/:$VT_DIR/GRUB2/INSTALL/sbin/
|
||||
|
||||
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"
|
||||
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
|
||||
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
|
||||
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
|
||||
$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
|
||||
ventoy_systemd_udevd_work_around
|
||||
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
|
||||
}
|
||||
|
||||
function ventoy_localboot {
|
||||
function ventoy_localboot {
|
||||
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 /install.amd/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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
set VTOY_PARAM_NO_ACPI=1
|
||||
@@ -1506,6 +1508,34 @@ export vtoy_efi_part
|
||||
export VENTOY_VERSION
|
||||
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)
|
||||
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 ' -s enable secure boot support (default is disabled)'
|
||||
echo ' -g use GPT partition style, default is MBR (only for install)'
|
||||
echo ' -L Label of the 1st exfat partition (default is ventoy)'
|
||||
echo ''
|
||||
}
|
||||
|
||||
|
||||
VTNEW_LABEL='ventoy'
|
||||
RESERVE_SIZE_MB=0
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "-i" ]; then
|
||||
@@ -31,6 +33,9 @@ while [ -n "$1" ]; do
|
||||
SECUREBOOT="YES"
|
||||
elif [ "$1" = "-g" ]; then
|
||||
VTGPT="YES"
|
||||
elif [ "$1" = "-L" ]; then
|
||||
shift
|
||||
VTNEW_LABEL=$1
|
||||
elif [ "$1" = "-r" ]; then
|
||||
RESERVE_SPACE="YES"
|
||||
shift
|
||||
@@ -248,7 +253,7 @@ if [ "$MODE" = "install" ]; then
|
||||
PART1=$(get_disk_part_name $DISK 1)
|
||||
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 ..."
|
||||
|
||||
|
@@ -265,7 +265,7 @@ w
|
||||
EOF
|
||||
fi
|
||||
|
||||
udevadm trigger >/dev/null 2>&1
|
||||
udevadm trigger --name-match=$DISK >/dev/null 2>&1
|
||||
partprobe >/dev/null 2>&1
|
||||
sleep 3
|
||||
echo "Done"
|
||||
@@ -362,7 +362,7 @@ format_ventoy_disk_gpt() {
|
||||
$vtoygpt -f $DISK
|
||||
sync
|
||||
|
||||
udevadm trigger >/dev/null 2>&1
|
||||
udevadm trigger --name-match=$DISK >/dev/null 2>&1
|
||||
partprobe >/dev/null 2>&1
|
||||
sleep 3
|
||||
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 MBR and GPT partition style are supported in the same way.<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>
|
||||
|
||||
# Features
|
||||
* 100% open source
|
||||
* Simple to use
|
||||
* Fast (limited only by the speed of copying iso file)
|
||||
* Directly boot from ISO/WIM/IMG/VHD(x)/EFI file, no extraction needed
|
||||
* Legacy + UEFI supported in the same way
|
||||
* UEFI Secure Boot supported (since 1.0.07+)
|
||||
* Persistence supported (since 1.0.11+)
|
||||
* Can be installed in USB/Local Disk/SSD/NVMe/SD Card
|
||||
* Directly boot from ISO/WIM/IMG/VHD(x)/EFI files, no extraction needed
|
||||
* No need to be continuous in disk for ISO/IMG files
|
||||
* MBR and GPT partition style supported (1.0.15+)
|
||||
* WIM files boot supported (Legacy + UEFI) (1.0.12+)
|
||||
* IMG files boot supported (Legacy + UEFI) (1.0.19+)
|
||||
* Auto installation supported (1.0.09+)
|
||||
* File injection supported (1.0.16+)
|
||||
* Legacy + UEFI supported in the same way
|
||||
* UEFI Secure Boot supported (1.0.07+)
|
||||
* Persistence supported (1.0.11+)
|
||||
* Windows/Linux auto installation supported (1.0.09+)
|
||||
* ISO files larger than 4GB supported
|
||||
* 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
|
||||
* ISO files can be listed in List mode/TreeView mode
|
||||
* Linux vDisk boot supported (vdi/vhd/raw)
|
||||
* "Ventoy Compatible" concept
|
||||
* 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 normal use unaffected
|
||||
* Data nondestructive during version upgrade
|
||||
|
Reference in New Issue
Block a user