]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
update for new release
authorlongpanda <admin@ventoy.net>
Wed, 22 Jul 2020 15:30:01 +0000 (23:30 +0800)
committerlongpanda <admin@ventoy.net>
Wed, 22 Jul 2020 15:30:13 +0000 (23:30 +0800)
433 files changed:
DOC/BuildVentoyFromSource.txt
GRUB2/MOD_SRC/grub-2.04/grub-core/normal/context.c
GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_linux.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c
GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h
GRUB2/MOD_SRC/grub-2.04/install.sh
IMG/cpio/ventoy/hook/debian/linuxconsole-disk.sh [new file with mode: 0644]
IMG/cpio/ventoy/hook/debian/linuxconsole-hook.sh [new file with mode: 0644]
IMG/cpio/ventoy/hook/debian/udev_disk_hook.sh
IMG/cpio/ventoy/hook/debian/ventoy-hook.sh
IMG/cpio/ventoy/hook/vine/dev-listen.sh [new file with mode: 0644]
IMG/cpio/ventoy/hook/vine/udev_disk_hook.sh [new file with mode: 0644]
IMG/cpio/ventoy/hook/vine/ventoy-hook.sh [new file with mode: 0644]
IMG/cpio/ventoy/init
IMG/cpio/ventoy/ventoy.sh
INSTALL/EFI/BOOT/grubx64_real.efi
INSTALL/README [new file with mode: 0644]
INSTALL/Ventoy2Disk.exe
INSTALL/grub/debug.cfg
INSTALL/grub/grub.cfg
INSTALL/grub/i386-pc/acpi.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/adler32.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/affs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/afs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ahci.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/aout.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/archelp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ata.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/backtrace.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bitmap.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bitmap_scale.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bsd.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bswap_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/btrfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/bufio.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cat.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cbfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cbls.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cbmemc.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cbtable.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cbtime.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cmdline_cat_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cmosdump.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cmostest.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cmp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cmp_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/command.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/core.img
INSTALL/grub/i386-pc/cpio.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cpio_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cpuid.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/crc64.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/crypto.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/crypto.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cryptodisk.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/cs5536.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ctz_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/datehook.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/datetime.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/diskfilter.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/div.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/div_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/dm_nv.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/efiemu.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ehci.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/eval.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/exfctest.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/f2fs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/fdt.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/freedos.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/fs.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/fshelp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/functional_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_arcfour.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_blowfish.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_camellia.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_cast5.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_crc.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_des.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_dsa.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_idea.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_md4.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_rfc2268.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_rijndael.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_rmd160.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_rsa.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_seed.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_serpent.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_sha1.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_sha256.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_sha512.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_tiger.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_twofish.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gcry_whirlpool.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gdb.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/geli.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gfxterm_menu.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/gptsync.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hdparm.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hello.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hexdump.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hfsplus.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/hfspluscomp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/iorw.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/jfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/keylayouts.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/keystatus.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ldm.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/legacy_password_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/legacycfg.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/loadenv.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/lsacpi.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/lsapm.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/lsmmap.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/luks.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/lvm.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/macbless.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mda_text.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mdraid09.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mdraid09_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mdraid1x.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/memdisk.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/memrw.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix2.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix2_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix3.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix3_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/minix_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mmap.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/moddep.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/morse.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mpi.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/msdospart.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/mul_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/multiboot.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/multiboot2.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/nativedisk.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/newc.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/nilfs2.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ntfscomp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/odc.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ohci.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_acorn.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_amiga.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_apple.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_bsd.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_dfly.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_dvh.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_plan.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_sun.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/part_sunpc.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/partmap.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/parttool.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/parttool.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/password.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pata.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pbkdf2_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pcidump.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pgp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/plan9.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/play.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/priority_queue.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/probe.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/procfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/progress.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pxe.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/pxechain.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/raid5rec.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/raid6rec.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/random.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/rdmsr.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/reiserfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/relocator.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/romfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/scsi.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/search_fs_file.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/search_fs_uuid.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/search_label.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/sendkey.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/serial.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/setjmp.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/setjmp_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/setpci.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/sfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/shift_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/signature_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/sleep_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/spkmodem.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/strtoull_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/syslinuxcfg.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/terminal.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/terminfo.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/test_blockarg.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/testload.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/testspeed.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/tga.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/time.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/truecrypt.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ufs1.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ufs1_be.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/ufs2.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/uhci.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usb.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbms.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbserial_common.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbserial_ftdi.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbserial_pl2303.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbserial_usbdebug.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/usbtest.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/verifiers.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/video.lst [new file with mode: 0644]
INSTALL/grub/i386-pc/wrmsr.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/xnu.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/xnu_uuid.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/xnu_uuid_test.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/zfs.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/zfscrypt.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/zfsinfo.mod [new file with mode: 0644]
INSTALL/grub/i386-pc/zstd.mod [new file with mode: 0644]
INSTALL/grub/localboot.cfg
INSTALL/grub/power.cfg
INSTALL/grub/themes/ventoy/background.png
INSTALL/grub/x86_64-efi/adler32.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/affs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/afs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ahci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/aout.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/appleldr.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/archelp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ata.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/backtrace.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/bfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/bsd.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/bswap_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/btrfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cbfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cbls.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cbmemc.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cbtable.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cbtime.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cmdline_cat_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cmp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cmp_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/command.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cpio.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cpio_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cpuid.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/crc64.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/crypto.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cryptodisk.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/cs5536.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ctz_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/date.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/datehook.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/disk.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/div.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/div_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/dm_nv.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ehci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/eval.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/exfctest.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/f2fs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/fdt.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/fixvideo.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/fs.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/functional_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_arcfour.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_blowfish.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_camellia.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_cast5.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_crc.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_des.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_dsa.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_idea.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_md4.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_rfc2268.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_rijndael.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_rmd160.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_rsa.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_seed.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_serpent.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_sha1.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_sha256.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_tiger.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_twofish.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gcry_whirlpool.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/geli.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/gptsync.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/hdparm.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/hello.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/hexdump.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/hfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/hfspluscomp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/iorw.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/jfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/keylayouts.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/keystatus.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ldm.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/legacy_password_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/legacycfg.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/linux16.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/loadbios.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/loadenv.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lsacpi.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lsefi.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lsefimmap.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lsefisystab.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lsmmap.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lspci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lssal.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/luks.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/lvm.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/macbless.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/mdraid09.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/mdraid09_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/mdraid1x.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/memdisk.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/memrw.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix2.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix2_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix3.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix3_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/minix_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/moddep.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/morse.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/mpi.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/msdospart.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/mul_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/multiboot.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/multiboot2.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/nativedisk.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/newc.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/nilfs2.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/normal.mod
INSTALL/grub/x86_64-efi/ntfscomp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/odc.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ohci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_acorn.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_amiga.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_bsd.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_dfly.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_dvh.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_plan.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_sun.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/part_sunpc.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/partmap.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/parttool.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/parttool.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/password.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/pata.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/pbkdf2_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/pcidump.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/pgp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/play.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/probe.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/procfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/progress.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/raid5rec.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/raid6rec.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/random.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/rdmsr.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/reiserfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/romfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/scsi.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/search_fs_file.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/search_fs_uuid.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/search_label.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/setjmp.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/setjmp_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/setpci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/sfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/shift_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/shim_lock.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/signature_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/sleep_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/spkmodem.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/strtoull_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/syslinuxcfg.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/terminal.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/test_blockarg.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/testload.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/testspeed.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/tga.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/tpm.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/tr.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/true.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ufs1.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ufs1_be.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/ufs2.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/uhci.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usb.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbms.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbserial_common.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbserial_ftdi.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbserial_pl2303.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbserial_usbdebug.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/usbtest.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/verifiers.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/video.lst [new file with mode: 0644]
INSTALL/grub/x86_64-efi/videoinfo.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/videotest.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/videotest_checksum.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/wrmsr.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/xnu.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/xnu_uuid.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/xnu_uuid_test.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/zfs.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/zfscrypt.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/zfsinfo.mod [new file with mode: 0644]
INSTALL/grub/x86_64-efi/zstd.mod [new file with mode: 0644]
INSTALL/ventoy/7z/32/7za.exe [new file with mode: 0644]
INSTALL/ventoy/7z/64/7za.exe [new file with mode: 0644]
INSTALL/ventoy/ventoy.cpio
INSTALL/ventoy/ventoy_x64.efi
INSTALL/ventoy/vtoyjump32.exe
INSTALL/ventoy/vtoyjump64.exe
INSTALL/ventoy_pack.sh
LANGUAGES/languages.ini
License/lgpl-3.0.txt [new file with mode: 0644]
License/license-7z.txt [new file with mode: 0644]
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.c
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.h
Ventoy2Disk/Ventoy2Disk/WinDialog.c
vtoyjump/vtoyjump/vtoyjump.c
vtoyjump/vtoyjump/vtoyjump.h

index 0a3e8fe13b647a38dbed3a0be4a435b097fed1f9..64ffc842c6353e48a4dd4c43da8653e5a6d52ac4 100644 (file)
  https://busybox.net/downloads/binaries/1.31.0-i686-uclibc/   busybox_ASH
  SHA-256: 2943f02f85fee0c9551aec47110a558a73f919c032b3c51e56d6f197b5ec4d7b  
    
+5.12 7za.exe
+ download from https://www.7-zip.org/a/7z1900-extra.7z
+ ISNTALL/ventoy/7z/64/7za.exe  SHA-256: 8117e40ee7f824f63373a4f5625bb62749f69159d0c449b3ce2f35aad3b83549
+ ISNTALL/ventoy/7z/32/7za.exe  SHA-256: ea308c76a2f927b160a143d94072b0dce232e04b751f0c6432a94e05164e716d
+
+
index 87edd254c4490425da16188461be909b891a97db..9ed3c8d27f0944f086009c50963067ca7553fe0e 100644 (file)
@@ -99,7 +99,7 @@ grub_env_new_context (int export_all)
 grub_err_t
 grub_env_context_open (void)
 {
-  return grub_env_new_context (1);
+  return grub_env_new_context (grub_env_get("ventoy_new_context") ? 0 : 1);
 }
 
 int grub_extractor_level = 0;
index e1033d1803ab5acf26611b45aefdd00a2c922aed..e5d8b88cac78bf15cefe4607ebbf0a41539e1781 100644 (file)
@@ -853,12 +853,16 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
             }
             break;
         case GRUB_TERM_KEY_F6:
-            cmdstr = grub_env_get("VTOY_F6_CMD");
-            if (cmdstr)
-            {
-                menu_fini ();
-                grub_script_execute_sourcecode(cmdstr);
-                goto refresh;
+            if (0 == g_ventoy_fn_mutex) {
+                cmdstr = grub_env_get("VTOY_F6_CMD");
+                if (cmdstr)
+                {
+                    menu_fini ();
+                    g_ventoy_fn_mutex = 1;
+                    grub_script_execute_sourcecode(cmdstr);
+                    g_ventoy_fn_mutex = 0;
+                    goto refresh;
+                }
             }
             break;
         case GRUB_TERM_KEY_F7:
index 2975bb2a2e96a251c4b7c3e72d2f35903dcc9e0b..1a433edb5c4e6d4338d3417e5bf99159a4bf933e 100644 (file)
@@ -2167,7 +2167,7 @@ static grub_err_t ventoy_cmd_find_bootable_hdd(grub_extcmd_context_t ctxt, int a
         return grub_error(GRUB_ERR_BAD_ARGUMENT, "Usage: %s variable\n", cmd_raw_name); 
     }
 
-    isopath = grub_env_get("iso_path");
+    isopath = grub_env_get("vtoy_iso_part");
     if (!isopath)
     {
         debug("isopath is null %p\n", isopath);
@@ -2321,9 +2321,6 @@ static int ventoy_env_init(void)
     char buf[64];
 
     grub_env_set("vtdebug_flag", "");
-    grub_env_export("vtdebug_flag");
-
-
 
     g_tree_script_buf = grub_malloc(VTOY_MAX_SCRIPT_BUF);
     g_list_script_buf = grub_malloc(VTOY_MAX_SCRIPT_BUF);
index 27eb7fd7ead50452912a8c3d7fa24a1493219bca..7584f2a8887d7f5ba9f996ec9d31f616ba9dbffc 100644 (file)
@@ -649,6 +649,15 @@ typedef struct menu_class
     struct menu_class *next;
 }menu_class;
 
+typedef struct injection_config
+{
+    int pathlen;
+    char isopath[256];
+    char archive[256];
+
+    struct injection_config *next;
+}injection_config;
+
 extern int g_ventoy_menu_esc;
 extern int g_ventoy_suppress_esc;
 extern int g_ventoy_last_entry;
@@ -666,6 +675,7 @@ persistence_config * ventoy_plugin_find_persistent(const char *isopath);
 void ventoy_plugin_dump_auto_install(void);
 int ventoy_fill_windows_rtdata(void *buf, char *isopath);
 int ventoy_plugin_get_persistent_chunklist(const char *isopath, int index, ventoy_img_chunk_list *chunk_list);
+const char * ventoy_plugin_get_injection(const char *isopath);
 const char * ventoy_plugin_get_menu_alias(int type, const char *isopath);
 const char * ventoy_plugin_get_menu_class(int type, const char *name);
 int ventoy_get_block_list(grub_file_t file, ventoy_img_chunk_list *chunklist, grub_disk_addr_t start);
index e8ec502acc56eb9d60f0566bb4a3cdc9548275ce..8e1ffdd6d5aa2d4484d4dfbad42fc28ddf24398d 100644 (file)
@@ -909,6 +909,8 @@ grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **arg
     char *template_file = NULL;
     char *template_buf = NULL;
     char *persistent_buf = NULL;
+    char *injection_buf = NULL;
+    const char *injection_file = NULL;
     grub_uint8_t *buf = NULL;
     grub_uint32_t mod;
     grub_uint32_t headlen;
@@ -917,8 +919,9 @@ grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **arg
     grub_uint32_t img_chunk_size;
     grub_uint32_t template_size = 0;
     grub_uint32_t persistent_size = 0;
+    grub_uint32_t injection_size = 0;
     grub_file_t file;
-    grub_file_t scriptfile;
+    grub_file_t tmpfile;
     ventoy_img_chunk_list chunk_list;
 
     (void)ctxt;
@@ -960,18 +963,18 @@ grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **arg
     if (template_file)
     {
         debug("auto install template: <%s>\n", template_file);
-        scriptfile = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s%s", args[2], template_file);
-        if (scriptfile)
+        tmpfile = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s%s", args[2], template_file);
+        if (tmpfile)
         {
-            debug("auto install script size %d\n", (int)scriptfile->size);
-            template_size = scriptfile->size;
+            debug("auto install script size %d\n", (int)tmpfile->size);
+            template_size = tmpfile->size;
             template_buf = grub_malloc(template_size);
             if (template_buf)
             {
-                grub_file_read(scriptfile, template_buf, template_size);
+                grub_file_read(tmpfile, template_buf, template_size);
             }
 
-            grub_file_close(scriptfile);
+            grub_file_close(tmpfile);
         }
         else
         {
@@ -983,7 +986,34 @@ grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **arg
         debug("auto install script skipped or not configed %s\n", args[1]);
     }
 
-    g_ventoy_cpio_buf = grub_malloc(file->size + 4096 + template_size + persistent_size + img_chunk_size);
+    injection_file = ventoy_plugin_get_injection(args[1]);
+    if (injection_file)
+    {
+        debug("injection archive: <%s>\n", injection_file);
+        tmpfile = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s%s", args[2], injection_file);
+        if (tmpfile)
+        {
+            debug("injection archive size:%d\n", (int)tmpfile->size);
+            injection_size = tmpfile->size;
+            injection_buf = grub_malloc(injection_size);
+            if (injection_buf)
+            {
+                grub_file_read(tmpfile, injection_buf, injection_size);
+            }
+
+            grub_file_close(tmpfile);
+        }
+        else
+        {
+            debug("Failed to open injection archive %s%s\n", args[2], injection_file);
+        }
+    }
+    else
+    {
+        debug("injection not configed %s\n", args[1]);
+    }
+
+    g_ventoy_cpio_buf = grub_malloc(file->size + 4096 + template_size + persistent_size + injection_size + img_chunk_size);
     if (NULL == g_ventoy_cpio_buf)
     {
         grub_file_close(file);
@@ -1020,6 +1050,15 @@ grub_err_t ventoy_cmd_load_cpio(grub_extcmd_context_t ctxt, int argc, char **arg
         persistent_buf = NULL;
     }
 
+    if (injection_size > 0 && injection_buf)
+    {
+        headlen = ventoy_cpio_newc_fill_head(buf, injection_size, injection_buf, "ventoy/ventoy_injection");
+        buf += headlen + ventoy_align(injection_size, 4);
+
+        grub_free(injection_buf);
+        injection_buf = NULL;
+    }
+
     /* step2: insert os param to cpio */
     headlen = ventoy_cpio_newc_fill_head(buf, 0, NULL, "ventoy/ventoy_os_param");
     padlen = sizeof(ventoy_os_param);
index c7fda9cf7a13fdfc00b51025c2250922512ad750..a0ffde37d2f914d52695daa56f7517fe7173ae37 100644 (file)
@@ -44,6 +44,7 @@ static install_template *g_install_template_head = NULL;
 static persistence_config *g_persistence_head = NULL;
 static menu_alias *g_menu_alias_head = NULL;
 static menu_class *g_menu_class_head = NULL;
+static injection_config *g_injection_head = NULL;
 
 static int ventoy_plugin_control_check(VTOY_JSON *json, const char *isodisk)
 {
@@ -805,6 +806,96 @@ static int ventoy_plugin_menualias_entry(VTOY_JSON *json, const char *isodisk)
     return 0;
 }
 
+
+static int ventoy_plugin_injection_check(VTOY_JSON *json, const char *isodisk)
+{
+    const char *path = NULL;
+    const char *archive = NULL;
+    VTOY_JSON *pNode = NULL;
+
+    (void)isodisk;
+
+    if (json->enDataType != JSON_TYPE_ARRAY)
+    {
+        grub_printf("Not array %d\n", json->enDataType);
+        return 0;
+    }
+
+    for (pNode = json->pstChild; pNode; pNode = pNode->pstNext)
+    {
+        path = vtoy_json_get_string_ex(pNode->pstChild, "image");
+        if (!path)
+        {
+            grub_printf("image not found\n");
+            continue;
+        }
+
+        archive = vtoy_json_get_string_ex(pNode->pstChild, "archive");
+        if (!archive)
+        {
+            grub_printf("archive not found\n");
+            continue;
+        }
+
+        grub_printf("image: <%s> [%s]\n", path, ventoy_check_file_exist("%s%s", isodisk, path) ? "OK" : "NOT EXIST");
+        grub_printf("archive: <%s> [%s]\n\n", archive, ventoy_check_file_exist("%s%s", isodisk, archive) ? "OK" : "NOT EXIST");
+    }
+
+    return 0;
+}
+
+static int ventoy_plugin_injection_entry(VTOY_JSON *json, const char *isodisk)
+{
+    const char *path = NULL;
+    const char *archive = NULL;
+    VTOY_JSON *pNode = NULL;
+    injection_config *node = NULL;
+    injection_config *next = NULL;
+
+    (void)isodisk;
+
+    if (json->enDataType != JSON_TYPE_ARRAY)
+    {
+        debug("Not array %d\n", json->enDataType);
+        return 0;
+    }
+
+    if (g_injection_head)
+    {
+        for (node = g_injection_head; node; node = next)
+        {
+            next = node->next;
+            grub_free(node);
+        }
+
+        g_injection_head = NULL;
+    }
+
+    for (pNode = json->pstChild; pNode; pNode = pNode->pstNext)
+    {
+        path = vtoy_json_get_string_ex(pNode->pstChild, "image");
+        archive = vtoy_json_get_string_ex(pNode->pstChild, "archive");
+        if (path && path[0] == '/' && archive && archive[0] == '/')
+        {
+            node = grub_zalloc(sizeof(injection_config));
+            if (node)
+            {
+                node->pathlen = grub_snprintf(node->isopath, sizeof(node->isopath), "%s", path);
+                grub_snprintf(node->archive, sizeof(node->archive), "%s", archive);
+
+                if (g_injection_head)
+                {
+                    node->next = g_injection_head;
+                }
+                
+                g_injection_head = node;
+            }
+        }
+    }
+
+    return 0;
+}
+
 static int ventoy_plugin_menuclass_entry(VTOY_JSON *json, const char *isodisk)
 {
     int type;
@@ -914,6 +1005,7 @@ static plugin_entry g_plugin_entries[] =
     { "persistence", ventoy_plugin_persistence_entry, ventoy_plugin_persistence_check },
     { "menu_alias", ventoy_plugin_menualias_entry, ventoy_plugin_menualias_check },
     { "menu_class", ventoy_plugin_menuclass_entry, ventoy_plugin_menuclass_check },
+    { "injection", ventoy_plugin_injection_entry, ventoy_plugin_injection_check },
 };
 
 static int ventoy_parse_plugin_config(VTOY_JSON *json, const char *isodisk)
@@ -1151,6 +1243,22 @@ end:
     return rc;
 }
 
+const char * ventoy_plugin_get_injection(const char *isopath)
+{
+    injection_config *node = NULL;
+    int len = (int)grub_strlen(isopath);
+
+    for (node = g_injection_head; node; node = node->next)
+    {
+        if (node->pathlen == len && grub_strcmp(node->isopath, isopath) == 0)
+        {
+            return node->archive;
+        }
+    }
+
+    return NULL;
+}
+
 const char * ventoy_plugin_get_menu_alias(int type, const char *isopath)
 {
     menu_alias *node = NULL;
index 4b3c2783dddfcc817d23ab92d677bd5b0f479abf..9dc3cc1cc690282264ba85c40ebb83a1f9273232 100644 (file)
@@ -722,6 +722,17 @@ int ventoy_fill_windows_rtdata(void *buf, char *isopath)
     {
         debug("auto install script skipped or not configed %s\n", pos);
     }
+
+    script = (char *)ventoy_plugin_get_injection(pos);
+    if (script)
+    {
+        debug("injection archive <%s>\n", script);
+        grub_snprintf(data->injection_archive, sizeof(data->injection_archive) - 1, "%s", script);
+    }
+    else
+    {
+        debug("injection archive not configed %s\n", pos);
+    }
     
     return 0;
 }
index 93365c73391adb9c3b38f4270cc2d28b0e1400e6..029aec4e542038c0536487e82889cfbc6eaf5e6b 100644 (file)
@@ -132,7 +132,8 @@ typedef struct ventoy_os_param
 typedef struct ventoy_windows_data
 {
     char auto_install_script[384];
-    grub_uint8_t reserved[128];
+    char injection_archive[384];
+    grub_uint8_t reserved[256];
 }ventoy_windows_data;
 
 
index 19cffe5624ad4a479565d88e77d646304bfbc6f2..1369d83f86f00fb8b40c401b8abcf308c8a7ad4a 100644 (file)
@@ -20,10 +20,10 @@ all_modules_uefi="blocklist ventoy test search at_keyboard usb_keyboard  gcry_md
 all_extra_modules="elf macho offsetio regexp file"
 
 if [ "$1" = "uefi" ]; then
-    all_modules="$net_modules_uefi $all_modules_uefi $all_extra_modules"
+    all_modules="$net_modules_uefi $all_modules_uefi $all_extra_modules "
     grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/EFI/BOOT/grubx64_real.efi"  --format 'x86_64-efi' --compression 'auto'  $all_modules_uefi 'fat' 'part_msdos'
 else
-    all_modules="$net_modules_legacy $all_modules_legacy"
+    all_modules="$net_modules_legacy $all_modules_legacy "
     grub-mkimage -v --directory "$VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc" --prefix '(,2)/grub' --output "$VT_DIR/INSTALL/grub/i386-pc/core.img"  --format 'i386-pc' --compression 'auto'  $all_modules_legacy  'fat' 'part_msdos' 'biosdisk' 
 fi
 
@@ -34,16 +34,29 @@ if [ "$1" = "uefi" ]; then
     cp -a $VT_DIR/GRUB2/PXE/grub2/x86_64-efi/core.efi  $VT_DIR/GRUB2/NBP/core.efi || exit 1
     
     rm -f $VT_DIR/INSTALL/grub/x86_64-efi/normal.mod
-    cp -a $VT_DIR/GRUB2/PXE/grub2/x86_64-efi/normal.mod    $VT_DIR/INSTALL/grub/x86_64-efi/normal.mod  || exit 1
+    cp -a $VT_DIR/GRUB2/PXE/grub2/x86_64-efi/normal.mod    $VT_DIR/INSTALL/grub/x86_64-efi/normal.mod  || exit 1      
+
+    #copy other modules
+    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi/ | egrep '\.(lst|mod)$' | while read line; do
+        if ! echo $all_modules | grep -q "${line%.mod} "; then
+            echo "Copy $line ..."
+            rm -f $VT_DIR/INSTALL/grub/x86_64-efi/$line
+            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/x86_64-efi/$line    $VT_DIR/INSTALL/grub/x86_64-efi/
+        fi
+    done
 else
     rm -f $VT_DIR/GRUB2/NBP/core.0
     cp -a $VT_DIR/GRUB2/PXE/grub2/i386-pc/core.0    $VT_DIR/GRUB2/NBP/core.0  || exit 1
     
-    for md in $all_extra_modules; do
-        rm -f $VT_DIR/INSTALL/grub/i386-pc/${md}.mod
-        cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/${md}.mod  $VT_DIR/INSTALL/grub/i386-pc/
-    done
-    
     rm -f $VT_DIR/INSTALL/grub/i386-pc/boot.img
     cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/boot.img  $VT_DIR/INSTALL/grub/i386-pc/boot.img   || exit 1
+    
+    #copy other modules
+    ls -1 $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/ | egrep '\.(lst|mod)$' | while read line; do
+        if ! echo $all_modules | grep -q "${line%.mod} "; then
+            echo "Copy $line ..."
+            rm -f $VT_DIR/INSTALL/grub/i386-pc/$line
+            cp -a $VT_DIR/GRUB2/INSTALL/lib/grub/i386-pc/$line    $VT_DIR/INSTALL/grub/i386-pc/
+        fi
+    done
 fi
diff --git a/IMG/cpio/ventoy/hook/debian/linuxconsole-disk.sh b/IMG/cpio/ventoy/hook/debian/linuxconsole-disk.sh
new file mode 100644 (file)
index 0000000..e5bb7cb
--- /dev/null
@@ -0,0 +1,71 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. /ventoy/hook/ventoy-hook-lib.sh
+
+if is_ventoy_hook_finished; then
+    exit 0
+fi
+
+vtlog "####### $0 $* ########"
+
+VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
+
+wait_for_usb_disk_ready
+
+vtdiskname=$(get_ventoy_disk_name)
+if [ "$vtdiskname" = "unknown" ]; then
+    vtlog "ventoy disk not found"
+    PATH=$VTPATH_OLD
+    exit 0
+fi
+
+
+vtoydm -i -f $VTOY_PATH/ventoy_image_map -d $vtdiskname > $VTOY_PATH/iso_file_list
+
+vtline=$(grep '[-][-] drivers-.*\.squashfs'  $VTOY_PATH/iso_file_list)
+sector=$(echo $vtline | awk '{print $(NF-1)}')
+length=$(echo $vtline | awk '{print $NF}')
+
+vtoydm -e -f $VTOY_PATH/ventoy_image_map -d $vtdiskname -s $sector -l $length -o $VTOY_PATH/driver.squashfs
+mount -t squashfs $VTOY_PATH/driver.squashfs /lib/modules
+modprobe dm-mod
+
+umount /lib/modules
+rm -f $VTOY_PATH/driver.squashfs
+
+ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
+
+blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
+blkdev_dev=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
+vtDM=$(ventoy_find_dm_id ${blkdev_num})
+
+if ! [ -b /dev/$vtDM ]; then
+    mknod -m 0660 /dev/$vtDM b $blkdev_dev
+fi
+
+if mount /dev/$vtDM /media/ydfs; then
+    vtlog "mount success"
+else
+    vtlog "mount failed"
+fi
+
+PATH=$VTPATH_OLD
+
+set_ventoy_hook_finish
diff --git a/IMG/cpio/ventoy/hook/debian/linuxconsole-hook.sh b/IMG/cpio/ventoy/hook/debian/linuxconsole-hook.sh
new file mode 100644 (file)
index 0000000..a8e1db7
--- /dev/null
@@ -0,0 +1,23 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+$SED "s#/busybox/bin/sleep 2#/busybox/bin/sleep 10#" -i /etc/init.d/tty1
+$SED "/install *-d *.media.ydfs/a return" -i /ydfs/detect/media
+$SED "/install *-d *.media.ydfs/a $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/linuxconsole-disk.sh" -i /ydfs/detect/media
+
index d2afcc82a1a55283d55fa63563f2b5865221f61c..8cbda0e52eaee1e6bc7bf689ec93204186c68b2b 100644 (file)
@@ -50,7 +50,7 @@ ventoy_os_install_dmsetup() {
     if $GREP -q 'device-mapper' /proc/devices; then
         vtlog "device mapper module is loaded"
     else
-        vtlog"device mapper module is NOT loaded, now load it..."
+        vtlog "device mapper module is NOT loaded, now load it..."
         
         VER=$($BUSYBOX_PATH/uname -r)    
         KO=$($FIND /lib/modules/$VER/kernel/drivers/md -name "dm-mod*")
index 2bc7a8604b3bc2161e2d6d550c7f82449eb2a806..f23aef65559559d4fa20b14b657901ad52d9a1a6 100644 (file)
@@ -60,6 +60,10 @@ ventoy_get_debian_distro() {
         echo 'porteus'; return
     fi
     
+    if $GREP -q 'linuxconsole' /proc/version; then
+        echo 'linuxconsole'; return
+    fi
+    
     echo 'default'
 }
 
diff --git a/IMG/cpio/ventoy/hook/vine/dev-listen.sh b/IMG/cpio/ventoy/hook/vine/dev-listen.sh
new file mode 100644 (file)
index 0000000..97cddd6
--- /dev/null
@@ -0,0 +1,63 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. /ventoy/hook/ventoy-hook-lib.sh
+
+while [ -n "1" ]; do
+    if [ -e /dev/null ]; then
+        break
+    else
+        $SLEEP 0.5
+    fi
+done
+
+while [ -n "1" ]; do
+    if [ -e /sys/block ]; then
+        break
+    else
+        $SLEEP 0.5
+    fi
+done
+
+while [ -n "Y" ]; do
+    vtdiskname=$(get_ventoy_disk_name)
+    if [ "$vtdiskname" != "unknown" ]; then
+        break
+    else
+        $SLEEP 0.5
+    fi
+done
+
+vtshortdev=${vtdiskname#/dev/}
+
+if ! [ -b $vtdiskname ]; then
+    blkdev=$($CAT /sys/class/block/$vtshortdev/dev | $SED 's/:/ /g')
+    $BUSYBOX_PATH/mknod -m 0660 $vtdiskname b $blkdev
+fi
+
+if ! [ -b "${vtdiskname}2" ]; then
+    blkdev=$($CAT /sys/class/block/${vtshortdev}2/dev | $SED 's/:/ /g')
+    $BUSYBOX_PATH/mknod -m 0660 "${vtdiskname}2" b $blkdev
+fi
+
+$BUSYBOX_PATH/ls /dev/ > /dev/console
+
+$BUSYBOX_PATH/sh $VTOY_PATH/hook/vine/udev_disk_hook.sh "${vtdiskname#/dev/}2"
+
+
diff --git a/IMG/cpio/ventoy/hook/vine/udev_disk_hook.sh b/IMG/cpio/ventoy/hook/vine/udev_disk_hook.sh
new file mode 100644 (file)
index 0000000..8209095
--- /dev/null
@@ -0,0 +1,79 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. /ventoy/hook/ventoy-hook-lib.sh
+
+vtCheatLoop=loop6
+
+ventoy_os_install_dmsetup() {
+    vtlog "ventoy_os_install_dmsetup $1"
+    
+    vt_usb_disk=$1
+
+    # dump iso file location
+    $VTOY_PATH/tool/vtoydm -i -f $VTOY_PATH/ventoy_image_map -d ${vt_usb_disk} > $VTOY_PATH/iso_file_list
+
+    # install dmsetup 
+    LINE=$($GREP 'kernel-[0-9].*\.rpm'  $VTOY_PATH/iso_file_list)
+    if [ $? -eq 0 ]; then
+        install_rpm_from_line "$LINE" ${vt_usb_disk}
+    fi
+
+    $BUSYBOX_PATH/modprobe dm-mod
+
+    vtlog "dmsetup install finish, now check it..."
+    
+    dmsetup_path=/ventoy/tool/dmsetup
+    if [ -z "$dmsetup_path" ]; then
+        vterr "dmsetup still not found after install"
+    elif $dmsetup_path info >> $VTLOG 2>&1; then
+        vtlog "$dmsetup_path work ok"
+    else
+        vterr "$dmsetup_path not work"
+    fi
+}
+
+
+if is_ventoy_hook_finished || not_ventoy_disk "${1:0:-1}"; then
+    # /dev/vtCheatLoop come first
+    if [ "$1" = "$vtCheatLoop" ] && [ -b $VTOY_DM_PATH ]; then
+        ventoy_copy_device_mapper  /dev/$vtCheatLoop
+    fi
+    exit 0
+fi
+
+ventoy_os_install_dmsetup "/dev/${1:0:-1}"
+
+ventoy_udev_disk_common_hook $* "noreplace"
+
+$BUSYBOX_PATH/mount $VTOY_DM_PATH /mnt/ventoy
+
+# 
+# We do a trick for rhel6 series here.
+# Use /dev/$vtCheatLoop and wapper it as a removable cdrom with bind mount.
+# Then the anaconda installer will accept /dev/$vtCheatLoop as the install medium.
+#
+ventoy_copy_device_mapper  /dev/$vtCheatLoop
+
+$BUSYBOX_PATH/cp -a /sys/devices/virtual/block/$vtCheatLoop /tmp/ >> $VTLOG 2>&1
+echo 19 > /tmp/$vtCheatLoop/capability
+$BUSYBOX_PATH/mount --bind /tmp/$vtCheatLoop /sys/block/$vtCheatLoop >> $VTLOG 2>&1
+
+# OK finish
+set_ventoy_hook_finish
diff --git a/IMG/cpio/ventoy/hook/vine/ventoy-hook.sh b/IMG/cpio/ventoy/hook/vine/ventoy-hook.sh
new file mode 100644 (file)
index 0000000..a9deb40
--- /dev/null
@@ -0,0 +1,28 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. $VTOY_PATH/hook/ventoy-os-lib.sh
+
+$BUSYBOX_PATH/mkdir -p /etc/anaconda.repos.d  /mnt/ventoy
+ventoy_print_yum_repo "ventoy" "file:///mnt/ventoy" > /etc/anaconda.repos.d/ventoy.repo
+
+
+$BUSYBOX_PATH/mknod -m 0660 /dev/null c 1 3
+$VTOY_PATH/hook/vine/dev-listen.sh  &  
+
index e46aceb62c1fc97562db5fae8cdcedb448b29a2b..ff64a39a544a5f98abc81718030c1b46b4b8423a 100644 (file)
@@ -183,7 +183,30 @@ fi
 
 ####################################################################
 #                                                                  #
-# Step 3 : Hand over to ventoy.sh                                  #
+# Step 3 : Extract injection archive                               #
+#                                                                  #
+####################################################################
+if [ -e $VTOY_PATH/ventoy_injection ]; then
+    echo "decompress injection ..." >>$VTLOG
+    
+    vtmagic=$(hexdump -n 2 -e '2/1 "%02X"' $VTOY_PATH/ventoy_injection)
+    echo "vtmagic=$vtmagic ..." >>$VTLOG
+    
+    if [ "1F8B" = "vtmagic" ] || [ "1F9E" = "vtmagic" ]; then
+        zcat $VTOY_PATH/ventoy_injection | tar -xf -C /
+    elif [ "425A" = "vtmagic" ]; then
+        bzcat $VTOY_PATH/ventoy_injection | tar -xf -C /
+    elif [ "FD37" = "vtmagic" ]; then
+        xzcat $VTOY_PATH/ventoy_injection | tar -xf -C /
+    else
+        unzip -o -q $VTOY_PATH/ventoy_injection -d /
+    fi
+fi
+
+
+####################################################################
+#                                                                  #
+# Step 4 : Hand over to ventoy.sh                                  #
 #                                                                  #
 ####################################################################
 echo "Now hand over to ventoy.sh" >>$VTLOG
index 7242021afb1868367391ef8c5ba5e19326be6ddf..c1cc897ead7636a4eb8eb3d16c95b4af57f5218d 100644 (file)
@@ -221,6 +221,9 @@ ventoy_get_os_type() {
         echo 'kwort'; return
     fi
     
+    if $GREP -q 'iwamoto' /proc/version; then
+        echo 'vine'; return
+    fi
     
     echo "default"
 }
@@ -248,6 +251,7 @@ if [ "$VTOY_BREAK_LEVEL" = "03" ] || [ "$VTOY_BREAK_LEVEL" = "13" ]; then
     exec $BUSYBOX_PATH/sh
 fi
 
+
 ####################################################################
 #                                                                  #
 # Step 4 : Hand over to real init                                  #
index c804bdbf3baab196cc2ed88861bcd26a240d43f8..4bf13df09dc42bf7a72449d3571a7bff421a142f 100644 (file)
Binary files a/INSTALL/EFI/BOOT/grubx64_real.efi and b/INSTALL/EFI/BOOT/grubx64_real.efi differ
diff --git a/INSTALL/README b/INSTALL/README
new file mode 100644 (file)
index 0000000..fad0c0b
--- /dev/null
@@ -0,0 +1,28 @@
+
+========== Ventoy2Disk.sh ===============
+
+sudo sh Ventoy2Disk.sh { -i | -I | -u } /dev/XXX   XXX is the USB device, for example /dev/sdb.
+
+Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
+  CMD:
+    -i   install ventoy to sdX (fail if disk already installed with ventoy)
+    -I   force install ventoy to sdX (no matter installed or not)
+    -u   update ventoy in sdX
+    
+  OPTION: (optional)
+   -r SIZE_MB  preserve some space at the bottom of the disk (only for install)
+   -s          enable secure boot support (default is disabled)
+   -g          use GPT partition style, default is MBR style (only for install)
+   
+
+========== CreatePersistentImg.sh ===============
+
+sudo sh CreatePersistentImg.sh
+
+sh CreatePersistentImg.sh  [ -s SIZE_IN_MB ] [ -t FSTYPE ] [ -l LABEL ]   for example:
+
+sh CreatePersistentImg.sh                 ---->  persistence.img in 1GB size and ext4 filesystem and casper-rw label
+sh CreatePersistentImg.sh -l MX-Persist   ---->  persistence.img in 1GB size and ext4 filesystem and MX-Persist label
+sh CreatePersistentImg.sh -s 2048         ---->  persistence.img in 2GB size and ext4 filesystem and casper-rw label
+sh CreatePersistentImg.sh -s 4096 -t xfs  ---->  persistence.img in 4GB size and xfs  filesystem  (ext2/3/4 xfs are supported)  and casper-rw label
+
index 29f29e6e83533ceaabf273dd4c99d2eb98817ed1..6959d401fcd9bb73868e47dc1c19beb249cbef45 100644 (file)
Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ
index 77f3dc5b8cfe8d9849472b558dce4172360e3b15..d3c44c8adeaf4e2a3ae1fc78711d66b6543c789c 100644 (file)
@@ -1,7 +1,7 @@
 submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     menuentry 'Check global control plugin configuration' --class=debug_control {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path control $iso_path
+        vt_check_plugin_json $vt_plugin_path control $vtoy_iso_part
         
         echo -e "\npress ENTER to exit ..."
         read vtInputKey
@@ -10,7 +10,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     
     menuentry 'Check theme plugin configuration' --class=debug_theme {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path theme $iso_path
+        vt_check_plugin_json $vt_plugin_path theme $vtoy_iso_part
         
         echo -e "\npress ENTER to exit ..."
         read vtInputKey
@@ -19,7 +19,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     
     menuentry 'Check auto install plugin configuration' --class=debug_autoinstall {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path auto_install $iso_path
+        vt_check_plugin_json $vt_plugin_path auto_install $vtoy_iso_part
         
         echo -e "\npress ENTER to exit ..."
         read vtInputKey
@@ -28,7 +28,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     
     menuentry 'Check persistence plugin configuration' --class=debug_persistence {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path persistence $iso_path
+        vt_check_plugin_json $vt_plugin_path persistence $vtoy_iso_part
         
         echo -e "\n############### dump persistence ###############"
         vt_dump_persistence
@@ -40,7 +40,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     
     menuentry 'Check menu alias plugin configuration' --class=debug_menualias {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path menu_alias $iso_path
+        vt_check_plugin_json $vt_plugin_path menu_alias $vtoy_iso_part
         
         echo -e "\npress ENTER to exit ..."
         read vtInputKey
@@ -49,12 +49,12 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
     
     menuentry 'Check menu class plugin configuration' --class=debug_menuclass {
         set pager=1
-        vt_check_plugin_json $vt_plugin_path menu_class $iso_path
+        vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
         
         echo -e "\npress ENTER to exit ..."
         read vtInputKey
         unset pager
-    }
+    }    
     
     menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
         echo 'Return ...'
index 80279bd32f651d661e3c721ccf90e374ec8878f2..91ec7e06e383c7fb7d381ad18c16ce3028ea2218 100644 (file)
@@ -67,6 +67,18 @@ function ventoy_localboot {
     configfile $prefix/localboot.cfg
 }
 
+function ventoy_ext_menu {    
+    #if [ -e $vt_plugin_path/ventoy/ventoy_grub.cfg ]; then
+        set ventoy_new_context=1
+        configfile $vt_plugin_path/ventoy/ventoy_grub.cfg
+        unset ventoy_new_context
+    #else
+    #    echo "ventoy_grub.cfg NOT exist."
+    #    echo -e "\npress ENTER to exit ..."
+    #    read vtInputKey
+    #fi
+}
+
 function get_os_type {
     set vtoy_os=Linux
     
@@ -292,6 +304,8 @@ function uefi_linux_menu_func {
                 fi
             elif [ -f (loop)/EFI/BOOT/initrd.gz ]; then
                 vt_add_replace_file $vtindex "EFI\\BOOT\\initrd.gz"
+            elif [ -f (loop)/loader/entries/thinstation.conf ]; then
+                vt_add_replace_file $vtindex "boot\\initrd"
             fi
         elif [ -d (loop)/EFI/boot/entries ]; then
             if [ -f (loop)/parabola/boot/x86_64/parabolaiso.img ]; then
@@ -538,24 +552,24 @@ function legacy_iso_memdisk {
 function iso_common_menuentry {
     if [ "$grub_platform" = "pc" ]; then
         if vt_check_mode 0; then
-            legacy_iso_memdisk $iso_path
+            legacy_iso_memdisk $vtoy_iso_part
         else
-            legacy_iso_menu_func $iso_path
+            legacy_iso_menu_func $vtoy_iso_part
         fi
     else
         if vt_check_mode 0; then
-            uefi_iso_memdisk $iso_path 
+            uefi_iso_memdisk $vtoy_iso_part 
         else
-            uefi_iso_menu_func $iso_path                
+            uefi_iso_menu_func $vtoy_iso_part                
         fi
     fi      
 }
 
 function common_unsupport_menuentry {
     echo -e "\n The name of the iso file could NOT contain space or non-ascii characters. \n"
-    echo -e " 文件名中不能有中文或空格 \n"
-    echo -e "\n Will return to main menu after 10 seconds ...\n"
-    sleep 10
+    echo -e " 文件名中不能有中文或空格 \n"    
+    echo -e "\npress ENTER to exit (请按 回车 键返回) ..."    
+    read vtInputKey
 }
 
 function iso_unsupport_menuentry {
@@ -564,7 +578,7 @@ function iso_unsupport_menuentry {
 
 function wim_common_menuentry {
     vt_chosen_img_path chosen_path
-    vt_wim_chain_data ${iso_path}${chosen_path}
+    vt_wim_chain_data ${vtoy_iso_part}${chosen_path}
     
     ventoy_debug_pause    
     
@@ -591,7 +605,7 @@ function efi_common_menuentry {
     vt_chosen_img_path chosen_path
     
     ventoy_cli_console    
-    chainloader ${iso_path}${chosen_path}
+    chainloader ${vtoy_iso_part}${chosen_path}
     boot
     ventoy_gui_console
 }
@@ -610,7 +624,7 @@ function efi_unsupport_menuentry {
 #############################################################
 #############################################################
 
-set VENTOY_VERSION="1.0.15"
+set VENTOY_VERSION="1.0.16"
 
 # Default menu display mode, you can change it as you want.
 #    0: List mode   
@@ -624,6 +638,7 @@ set VTOY_ISO_UEFI_DRV_STR="UEFI FS"
 set VTOY_F2_CMD="ventoy_power"
 set VTOY_F4_CMD="ventoy_localboot"
 set VTOY_F5_CMD="ventoy_diagnosis"
+set VTOY_F6_CMD="ventoy_ext_menu"
 
 if [ "$grub_platform" = "pc" ]; then
     set VTOY_TEXT_MENU_VER="Ventoy $VENTOY_VERSION BIOS  www.ventoy.net"
@@ -637,15 +652,15 @@ if [ "$vtoy_dev" = "tftp" ]; then
     set vtoy_path=($root)
     for vtid in 0 1 2 3; do
         if [ -d (hd$vtid,2)/ventoy ]; then
-            set iso_path=(hd$vtid,1)
+            set vtoy_iso_part=(hd$vtid,1)
             set vtoy_efi_part=(hd$vtid,2)
             break
         fi
     done
     loadfont ascii
 
-    if [ -f $iso_path/ventoy/ventoy.json ]; then
-       set vt_plugin_path=$iso_path
+    if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
+       set vt_plugin_path=$vtoy_iso_part
     else
         set vt_plugin_path=$prefix
         vt_load_plugin $vt_plugin_path
@@ -657,16 +672,16 @@ else
         set vtoy_path=($root)/ventoy
     fi
 
-    set iso_path=($vtoy_dev,1)
+    set vtoy_iso_part=($vtoy_dev,1)
     set vtoy_efi_part=($vtoy_dev,2)
     loadfont unicode
-    set vt_plugin_path=$iso_path
+    set vt_plugin_path=$vtoy_iso_part
 fi
 
 
 #Load Plugin
-if [ -f $iso_path/ventoy/ventoy.json ]; then
-   vt_load_plugin $iso_path
+if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
+   vt_load_plugin $vtoy_iso_part
 fi
 
 if [ -n "$VTOY_MENU_TIMEOUT" ]; then
@@ -675,8 +690,8 @@ else
     unset timeout
 fi
 
-if [ -f $iso_path/ventoy/ventoy_wimboot.img ]; then
-    vt_load_wimboot $iso_path/ventoy/ventoy_wimboot.img
+if [ -f $vtoy_iso_part/ventoy/ventoy_wimboot.img ]; then
+    vt_load_wimboot $vtoy_iso_part/ventoy/ventoy_wimboot.img
 elif [ -f $vtoy_efi_part/ventoy/ventoy_wimboot.img ]; then
     vt_load_wimboot $vtoy_efi_part/ventoy/ventoy_wimboot.img
 fi
@@ -684,10 +699,10 @@ fi
 
 if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then
     set VTOY_F3_CMD="vt_dynamic_menu 1 1"
-    set VTOY_HOTKEY_TIP="F1:Memdisk  F2:Power  F3:TreeView  F4:Localboot  F5:Debug"
+    set VTOY_HOTKEY_TIP="F1:Memdisk  F2:Power  F3:TreeView  F4:Localboot  F5:Debug  F6:ExMenu"
 else
     set VTOY_F3_CMD="vt_dynamic_menu 1 0"
-    set VTOY_HOTKEY_TIP="F1:Memdisk  F2:Power  F3:ListView  F4:Localboot  F5:Debug"
+    set VTOY_HOTKEY_TIP="F1:Memdisk  F2:Power  F3:ListView  F4:Localboot  F5:Debug  F6:ExMenu"
 fi
 
 
@@ -708,9 +723,20 @@ else
     terminal_output  gfxterm
 fi
 
+#export necessary variable
+export theme
+export gfxmode
+export vtoy_dev
+export vtoy_iso_part
+export vtoy_efi_part
+export VENTOY_VERSION
+
+
+
+
 #colect all image files (iso files)
 set ventoy_img_count=0
-vt_list_img $iso_path ventoy_img_count
+vt_list_img $vtoy_iso_part ventoy_img_count
 
 #Main menu
 if [ $ventoy_img_count -gt 0 ]; then
diff --git a/INSTALL/grub/i386-pc/acpi.mod b/INSTALL/grub/i386-pc/acpi.mod
new file mode 100644 (file)
index 0000000..8768848
Binary files /dev/null and b/INSTALL/grub/i386-pc/acpi.mod differ
diff --git a/INSTALL/grub/i386-pc/adler32.mod b/INSTALL/grub/i386-pc/adler32.mod
new file mode 100644 (file)
index 0000000..f6b7276
Binary files /dev/null and b/INSTALL/grub/i386-pc/adler32.mod differ
diff --git a/INSTALL/grub/i386-pc/affs.mod b/INSTALL/grub/i386-pc/affs.mod
new file mode 100644 (file)
index 0000000..1aabc41
Binary files /dev/null and b/INSTALL/grub/i386-pc/affs.mod differ
diff --git a/INSTALL/grub/i386-pc/afs.mod b/INSTALL/grub/i386-pc/afs.mod
new file mode 100644 (file)
index 0000000..020612f
Binary files /dev/null and b/INSTALL/grub/i386-pc/afs.mod differ
diff --git a/INSTALL/grub/i386-pc/ahci.mod b/INSTALL/grub/i386-pc/ahci.mod
new file mode 100644 (file)
index 0000000..7927803
Binary files /dev/null and b/INSTALL/grub/i386-pc/ahci.mod differ
diff --git a/INSTALL/grub/i386-pc/aout.mod b/INSTALL/grub/i386-pc/aout.mod
new file mode 100644 (file)
index 0000000..e775a1e
Binary files /dev/null and b/INSTALL/grub/i386-pc/aout.mod differ
diff --git a/INSTALL/grub/i386-pc/archelp.mod b/INSTALL/grub/i386-pc/archelp.mod
new file mode 100644 (file)
index 0000000..0aa3bb9
Binary files /dev/null and b/INSTALL/grub/i386-pc/archelp.mod differ
diff --git a/INSTALL/grub/i386-pc/ata.mod b/INSTALL/grub/i386-pc/ata.mod
new file mode 100644 (file)
index 0000000..10d98ed
Binary files /dev/null and b/INSTALL/grub/i386-pc/ata.mod differ
diff --git a/INSTALL/grub/i386-pc/backtrace.mod b/INSTALL/grub/i386-pc/backtrace.mod
new file mode 100644 (file)
index 0000000..78c7fc1
Binary files /dev/null and b/INSTALL/grub/i386-pc/backtrace.mod differ
diff --git a/INSTALL/grub/i386-pc/bfs.mod b/INSTALL/grub/i386-pc/bfs.mod
new file mode 100644 (file)
index 0000000..07ac645
Binary files /dev/null and b/INSTALL/grub/i386-pc/bfs.mod differ
diff --git a/INSTALL/grub/i386-pc/bitmap.mod b/INSTALL/grub/i386-pc/bitmap.mod
new file mode 100644 (file)
index 0000000..4240463
Binary files /dev/null and b/INSTALL/grub/i386-pc/bitmap.mod differ
diff --git a/INSTALL/grub/i386-pc/bitmap_scale.mod b/INSTALL/grub/i386-pc/bitmap_scale.mod
new file mode 100644 (file)
index 0000000..8b46a18
Binary files /dev/null and b/INSTALL/grub/i386-pc/bitmap_scale.mod differ
diff --git a/INSTALL/grub/i386-pc/bsd.mod b/INSTALL/grub/i386-pc/bsd.mod
new file mode 100644 (file)
index 0000000..51d7358
Binary files /dev/null and b/INSTALL/grub/i386-pc/bsd.mod differ
diff --git a/INSTALL/grub/i386-pc/bswap_test.mod b/INSTALL/grub/i386-pc/bswap_test.mod
new file mode 100644 (file)
index 0000000..4112db9
Binary files /dev/null and b/INSTALL/grub/i386-pc/bswap_test.mod differ
diff --git a/INSTALL/grub/i386-pc/btrfs.mod b/INSTALL/grub/i386-pc/btrfs.mod
new file mode 100644 (file)
index 0000000..25aa06e
Binary files /dev/null and b/INSTALL/grub/i386-pc/btrfs.mod differ
diff --git a/INSTALL/grub/i386-pc/bufio.mod b/INSTALL/grub/i386-pc/bufio.mod
new file mode 100644 (file)
index 0000000..73bd58e
Binary files /dev/null and b/INSTALL/grub/i386-pc/bufio.mod differ
diff --git a/INSTALL/grub/i386-pc/cat.mod b/INSTALL/grub/i386-pc/cat.mod
new file mode 100644 (file)
index 0000000..4afb29f
Binary files /dev/null and b/INSTALL/grub/i386-pc/cat.mod differ
diff --git a/INSTALL/grub/i386-pc/cbfs.mod b/INSTALL/grub/i386-pc/cbfs.mod
new file mode 100644 (file)
index 0000000..578ed2c
Binary files /dev/null and b/INSTALL/grub/i386-pc/cbfs.mod differ
diff --git a/INSTALL/grub/i386-pc/cbls.mod b/INSTALL/grub/i386-pc/cbls.mod
new file mode 100644 (file)
index 0000000..bb86e5a
Binary files /dev/null and b/INSTALL/grub/i386-pc/cbls.mod differ
diff --git a/INSTALL/grub/i386-pc/cbmemc.mod b/INSTALL/grub/i386-pc/cbmemc.mod
new file mode 100644 (file)
index 0000000..76253f7
Binary files /dev/null and b/INSTALL/grub/i386-pc/cbmemc.mod differ
diff --git a/INSTALL/grub/i386-pc/cbtable.mod b/INSTALL/grub/i386-pc/cbtable.mod
new file mode 100644 (file)
index 0000000..47ebd77
Binary files /dev/null and b/INSTALL/grub/i386-pc/cbtable.mod differ
diff --git a/INSTALL/grub/i386-pc/cbtime.mod b/INSTALL/grub/i386-pc/cbtime.mod
new file mode 100644 (file)
index 0000000..fde0d47
Binary files /dev/null and b/INSTALL/grub/i386-pc/cbtime.mod differ
diff --git a/INSTALL/grub/i386-pc/cmdline_cat_test.mod b/INSTALL/grub/i386-pc/cmdline_cat_test.mod
new file mode 100644 (file)
index 0000000..e22586d
Binary files /dev/null and b/INSTALL/grub/i386-pc/cmdline_cat_test.mod differ
diff --git a/INSTALL/grub/i386-pc/cmosdump.mod b/INSTALL/grub/i386-pc/cmosdump.mod
new file mode 100644 (file)
index 0000000..23d4b7d
Binary files /dev/null and b/INSTALL/grub/i386-pc/cmosdump.mod differ
diff --git a/INSTALL/grub/i386-pc/cmostest.mod b/INSTALL/grub/i386-pc/cmostest.mod
new file mode 100644 (file)
index 0000000..d94f1c1
Binary files /dev/null and b/INSTALL/grub/i386-pc/cmostest.mod differ
diff --git a/INSTALL/grub/i386-pc/cmp.mod b/INSTALL/grub/i386-pc/cmp.mod
new file mode 100644 (file)
index 0000000..d5155d7
Binary files /dev/null and b/INSTALL/grub/i386-pc/cmp.mod differ
diff --git a/INSTALL/grub/i386-pc/cmp_test.mod b/INSTALL/grub/i386-pc/cmp_test.mod
new file mode 100644 (file)
index 0000000..f9a1423
Binary files /dev/null and b/INSTALL/grub/i386-pc/cmp_test.mod differ
diff --git a/INSTALL/grub/i386-pc/command.lst b/INSTALL/grub/i386-pc/command.lst
new file mode 100644 (file)
index 0000000..774f3c5
--- /dev/null
@@ -0,0 +1,201 @@
+*acpi: acpi
+*all_functional_test: functional_test
+*background_image: gfxterm_background
+*cat: cat
+*cpuid: cpuid
+*crc: hashsum
+*cryptomount: cryptodisk
+*drivemap: drivemap
+*echo: echo
+*extract_syslinux_entries_configfile: syslinuxcfg
+*extract_syslinux_entries_source: syslinuxcfg
+*file: file
+*functional_test: functional_test
+*gettext: gettext
+*halt: halt
+*hashsum: hashsum
+*hdparm: hdparm
+*hello: hello
+*help: help
+*hexdump: hexdump
+*inb: iorw
+*inl: iorw
+*inw: iorw
+*keystatus: keystatus
+*kfreebsd: bsd
+*knetbsd: bsd
+*kopenbsd: bsd
+*list_env: loadenv
+*load_env: loadenv
+*loopback: loopback
+*ls: ls
+*lsacpi: lsacpi
+*lspci: lspci
+*md5sum: hashsum
+*menuentry: normal
+*pcidump: pcidump
+*plan9: plan9
+*probe: probe
+*rdmsr: rdmsr
+*read_byte: memrw
+*read_dword: memrw
+*read_word: memrw
+*regexp: regexp
+*save_env: loadenv
+*search: search
+*sendkey: sendkey
+*serial: serial
+*setpci: setpci
+*sha1sum: hashsum
+*sha256sum: hashsum
+*sha512sum: hashsum
+*sleep: sleep
+*submenu: normal
+*syslinux_configfile: syslinuxcfg
+*syslinux_source: syslinuxcfg
+*terminfo: terminfo
+*test_blockarg: test_blockarg
+*testspeed: testspeed
+*tr: tr
+*trust: pgp
+*verify_detached: pgp
+*xnu_splash: xnu
+*zfskey: zfscrypt
+.: configfile
+[: test
+authenticate: normal
+background_color: gfxterm_background
+backtrace: backtrace
+badram: mmap
+blocklist: blocklist
+boot: boot
+break: normal
+cat: minicmd
+cbmemc: cbmemc
+chainloader: chain
+clear: normal
+cmosclean: cmostest
+cmosdump: cmosdump
+cmosset: cmostest
+cmostest: cmostest
+cmp: cmp
+configfile: configfile
+continue: normal
+coreboot_boottime: cbtime
+cutmem: mmap
+date: date
+distrust: pgp
+dump: minicmd
+efiemu_loadcore: efiemu
+efiemu_prepare: efiemu
+efiemu_unload: efiemu
+eval: eval
+exit: minicmd
+export: normal
+extract_entries_configfile: configfile
+extract_entries_source: configfile
+extract_legacy_entries_configfile: legacycfg
+extract_legacy_entries_source: legacycfg
+false: true
+freedos: freedos
+gdbstub: gdb
+gdbstub_break: gdb
+gdbstub_stop: gdb
+gptsync: gptsync
+help: minicmd
+hexdump_random: random
+initrd16: linux16
+initrd: linux
+keymap: keylayouts
+kfreebsd_loadenv: bsd
+kfreebsd_module: bsd
+kfreebsd_module_elf: bsd
+knetbsd_module: bsd
+knetbsd_module_elf: bsd
+kopenbsd_ramdisk: bsd
+legacy_check_password: legacycfg
+legacy_configfile: legacycfg
+legacy_initrd: legacycfg
+legacy_initrd_nounzip: legacycfg
+legacy_kernel: legacycfg
+legacy_password: legacycfg
+legacy_source: legacycfg
+linux16: linux16
+linux: linux
+list_trusted: pgp
+loadfont: font
+lsapm: lsapm
+lscoreboot: cbls
+lsfonts: font
+lsmmap: lsmmap
+lsmod: minicmd
+macppcbless: macbless
+mactelbless: macbless
+module2: multiboot2
+module: multiboot
+multiboot2: multiboot2
+multiboot: multiboot
+nativedisk: nativedisk
+net_add_addr: net
+net_add_dns: net
+net_add_route: net
+net_bootp: net
+net_del_addr: net
+net_del_dns: net
+net_del_route: net
+net_dhcp: net
+net_get_dhcp_option: net
+net_ipv6_autoconf: net
+net_ls_addr: net
+net_ls_cards: net
+net_ls_dns: net
+net_ls_routes: net
+net_nslookup: net
+normal: normal
+normal_exit: normal
+ntldr: ntldr
+outb: iorw
+outl: iorw
+outw: iorw
+parttool: parttool
+password: password
+password_pbkdf2: password_pbkdf2
+play: play
+pxechainloader: pxechain
+read: read
+reboot: reboot
+return: normal
+rmmod: minicmd
+search.file: search_fs_file
+search.fs_label: search_label
+search.fs_uuid: search_fs_uuid
+setparams: normal
+shift: normal
+source: configfile
+terminal_input: terminal
+terminal_output: terminal
+test: test
+testload: testload
+time: time
+true: true
+truecrypt: truecrypt
+usb: usbtest
+vbeinfo: videoinfo
+vbetest: videotest
+videoinfo: videoinfo
+videotest: videotest
+write_byte: memrw
+write_dword: memrw
+write_word: memrw
+wrmsr: wrmsr
+xnu_devprop_load: xnu
+xnu_kernel64: xnu
+xnu_kernel: xnu
+xnu_kext: xnu
+xnu_kextdir: xnu
+xnu_mkext: xnu
+xnu_ramdisk: xnu
+xnu_resume: xnu
+xnu_uuid: xnu_uuid
+zfs-bootfs: zfsinfo
+zfsinfo: zfsinfo
index c0b4c11235c35f34593e485a63c12d428c756ea7..d76bbafeeed81ba0d14307aae24f16bb65b2777f 100644 (file)
Binary files a/INSTALL/grub/i386-pc/core.img and b/INSTALL/grub/i386-pc/core.img differ
diff --git a/INSTALL/grub/i386-pc/cpio.mod b/INSTALL/grub/i386-pc/cpio.mod
new file mode 100644 (file)
index 0000000..550b2af
Binary files /dev/null and b/INSTALL/grub/i386-pc/cpio.mod differ
diff --git a/INSTALL/grub/i386-pc/cpio_be.mod b/INSTALL/grub/i386-pc/cpio_be.mod
new file mode 100644 (file)
index 0000000..42776b1
Binary files /dev/null and b/INSTALL/grub/i386-pc/cpio_be.mod differ
diff --git a/INSTALL/grub/i386-pc/cpuid.mod b/INSTALL/grub/i386-pc/cpuid.mod
new file mode 100644 (file)
index 0000000..cc4471a
Binary files /dev/null and b/INSTALL/grub/i386-pc/cpuid.mod differ
diff --git a/INSTALL/grub/i386-pc/crc64.mod b/INSTALL/grub/i386-pc/crc64.mod
new file mode 100644 (file)
index 0000000..441fc4a
Binary files /dev/null and b/INSTALL/grub/i386-pc/crc64.mod differ
diff --git a/INSTALL/grub/i386-pc/crypto.lst b/INSTALL/grub/i386-pc/crypto.lst
new file mode 100644 (file)
index 0000000..77d9efc
--- /dev/null
@@ -0,0 +1,45 @@
+RIJNDAEL: gcry_rijndael
+RIJNDAEL192: gcry_rijndael
+RIJNDAEL256: gcry_rijndael
+AES128: gcry_rijndael
+AES-128: gcry_rijndael
+AES-192: gcry_rijndael
+AES-256: gcry_rijndael
+ADLER32: adler32
+CRC64: crc64
+ARCFOUR: gcry_arcfour
+BLOWFISH: gcry_blowfish
+CAMELLIA128: gcry_camellia
+CAMELLIA192: gcry_camellia
+CAMELLIA256: gcry_camellia
+CAST5: gcry_cast5
+CRC32: gcry_crc
+CRC32RFC1510: gcry_crc
+CRC24RFC2440: gcry_crc
+DES: gcry_des
+3DES: gcry_des
+DSA: gcry_dsa
+IDEA: gcry_idea
+MD4: gcry_md4
+MD5: gcry_md5
+RFC2268_40: gcry_rfc2268
+AES: gcry_rijndael
+AES192: gcry_rijndael
+AES256: gcry_rijndael
+RIPEMD160: gcry_rmd160
+RSA: gcry_rsa
+SEED: gcry_seed
+SERPENT128: gcry_serpent
+SERPENT192: gcry_serpent
+SERPENT256: gcry_serpent
+SHA1: gcry_sha1
+SHA224: gcry_sha256
+SHA256: gcry_sha256
+SHA512: gcry_sha512
+SHA384: gcry_sha512
+TIGER192: gcry_tiger
+TIGER: gcry_tiger
+TIGER2: gcry_tiger
+TWOFISH: gcry_twofish
+TWOFISH128: gcry_twofish
+WHIRLPOOL: gcry_whirlpool
diff --git a/INSTALL/grub/i386-pc/crypto.mod b/INSTALL/grub/i386-pc/crypto.mod
new file mode 100644 (file)
index 0000000..d9914ae
Binary files /dev/null and b/INSTALL/grub/i386-pc/crypto.mod differ
diff --git a/INSTALL/grub/i386-pc/cryptodisk.mod b/INSTALL/grub/i386-pc/cryptodisk.mod
new file mode 100644 (file)
index 0000000..ee52348
Binary files /dev/null and b/INSTALL/grub/i386-pc/cryptodisk.mod differ
diff --git a/INSTALL/grub/i386-pc/cs5536.mod b/INSTALL/grub/i386-pc/cs5536.mod
new file mode 100644 (file)
index 0000000..c8fdce8
Binary files /dev/null and b/INSTALL/grub/i386-pc/cs5536.mod differ
diff --git a/INSTALL/grub/i386-pc/ctz_test.mod b/INSTALL/grub/i386-pc/ctz_test.mod
new file mode 100644 (file)
index 0000000..232ffa8
Binary files /dev/null and b/INSTALL/grub/i386-pc/ctz_test.mod differ
diff --git a/INSTALL/grub/i386-pc/datehook.mod b/INSTALL/grub/i386-pc/datehook.mod
new file mode 100644 (file)
index 0000000..a42ca57
Binary files /dev/null and b/INSTALL/grub/i386-pc/datehook.mod differ
diff --git a/INSTALL/grub/i386-pc/datetime.mod b/INSTALL/grub/i386-pc/datetime.mod
new file mode 100644 (file)
index 0000000..5de1ad4
Binary files /dev/null and b/INSTALL/grub/i386-pc/datetime.mod differ
diff --git a/INSTALL/grub/i386-pc/diskfilter.mod b/INSTALL/grub/i386-pc/diskfilter.mod
new file mode 100644 (file)
index 0000000..cf81580
Binary files /dev/null and b/INSTALL/grub/i386-pc/diskfilter.mod differ
diff --git a/INSTALL/grub/i386-pc/div.mod b/INSTALL/grub/i386-pc/div.mod
new file mode 100644 (file)
index 0000000..f9a5d9d
Binary files /dev/null and b/INSTALL/grub/i386-pc/div.mod differ
diff --git a/INSTALL/grub/i386-pc/div_test.mod b/INSTALL/grub/i386-pc/div_test.mod
new file mode 100644 (file)
index 0000000..4ec3622
Binary files /dev/null and b/INSTALL/grub/i386-pc/div_test.mod differ
diff --git a/INSTALL/grub/i386-pc/dm_nv.mod b/INSTALL/grub/i386-pc/dm_nv.mod
new file mode 100644 (file)
index 0000000..8b48ad5
Binary files /dev/null and b/INSTALL/grub/i386-pc/dm_nv.mod differ
diff --git a/INSTALL/grub/i386-pc/efiemu.mod b/INSTALL/grub/i386-pc/efiemu.mod
new file mode 100644 (file)
index 0000000..88fd5f0
Binary files /dev/null and b/INSTALL/grub/i386-pc/efiemu.mod differ
diff --git a/INSTALL/grub/i386-pc/ehci.mod b/INSTALL/grub/i386-pc/ehci.mod
new file mode 100644 (file)
index 0000000..17429f5
Binary files /dev/null and b/INSTALL/grub/i386-pc/ehci.mod differ
diff --git a/INSTALL/grub/i386-pc/eval.mod b/INSTALL/grub/i386-pc/eval.mod
new file mode 100644 (file)
index 0000000..417bb91
Binary files /dev/null and b/INSTALL/grub/i386-pc/eval.mod differ
diff --git a/INSTALL/grub/i386-pc/exfctest.mod b/INSTALL/grub/i386-pc/exfctest.mod
new file mode 100644 (file)
index 0000000..9cfe492
Binary files /dev/null and b/INSTALL/grub/i386-pc/exfctest.mod differ
diff --git a/INSTALL/grub/i386-pc/f2fs.mod b/INSTALL/grub/i386-pc/f2fs.mod
new file mode 100644 (file)
index 0000000..f0fe6fd
Binary files /dev/null and b/INSTALL/grub/i386-pc/f2fs.mod differ
diff --git a/INSTALL/grub/i386-pc/fdt.lst b/INSTALL/grub/i386-pc/fdt.lst
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/INSTALL/grub/i386-pc/freedos.mod b/INSTALL/grub/i386-pc/freedos.mod
new file mode 100644 (file)
index 0000000..08cabd0
Binary files /dev/null and b/INSTALL/grub/i386-pc/freedos.mod differ
diff --git a/INSTALL/grub/i386-pc/fs.lst b/INSTALL/grub/i386-pc/fs.lst
new file mode 100644 (file)
index 0000000..0acd240
--- /dev/null
@@ -0,0 +1,37 @@
+affs
+afs
+bfs
+btrfs
+cbfs
+cpio
+cpio_be
+exfat
+ext2
+f2fs
+fat
+hfs
+hfsplus
+iso9660
+jfs
+minix
+minix2
+minix2_be
+minix3
+minix3_be
+minix_be
+newc
+nilfs2
+ntfs
+odc
+procfs
+reiserfs
+romfs
+sfs
+squash4
+tar
+udf
+ufs1
+ufs1_be
+ufs2
+xfs
+zfs
diff --git a/INSTALL/grub/i386-pc/fshelp.mod b/INSTALL/grub/i386-pc/fshelp.mod
new file mode 100644 (file)
index 0000000..e986d45
Binary files /dev/null and b/INSTALL/grub/i386-pc/fshelp.mod differ
diff --git a/INSTALL/grub/i386-pc/functional_test.mod b/INSTALL/grub/i386-pc/functional_test.mod
new file mode 100644 (file)
index 0000000..2b49846
Binary files /dev/null and b/INSTALL/grub/i386-pc/functional_test.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_arcfour.mod b/INSTALL/grub/i386-pc/gcry_arcfour.mod
new file mode 100644 (file)
index 0000000..c49de7a
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_arcfour.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_blowfish.mod b/INSTALL/grub/i386-pc/gcry_blowfish.mod
new file mode 100644 (file)
index 0000000..83285b3
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_blowfish.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_camellia.mod b/INSTALL/grub/i386-pc/gcry_camellia.mod
new file mode 100644 (file)
index 0000000..337637e
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_camellia.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_cast5.mod b/INSTALL/grub/i386-pc/gcry_cast5.mod
new file mode 100644 (file)
index 0000000..8a74275
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_cast5.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_crc.mod b/INSTALL/grub/i386-pc/gcry_crc.mod
new file mode 100644 (file)
index 0000000..d3f30c4
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_crc.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_des.mod b/INSTALL/grub/i386-pc/gcry_des.mod
new file mode 100644 (file)
index 0000000..2b1f3de
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_des.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_dsa.mod b/INSTALL/grub/i386-pc/gcry_dsa.mod
new file mode 100644 (file)
index 0000000..ab382c8
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_dsa.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_idea.mod b/INSTALL/grub/i386-pc/gcry_idea.mod
new file mode 100644 (file)
index 0000000..b939c0d
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_idea.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_md4.mod b/INSTALL/grub/i386-pc/gcry_md4.mod
new file mode 100644 (file)
index 0000000..16f78fa
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_md4.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_rfc2268.mod b/INSTALL/grub/i386-pc/gcry_rfc2268.mod
new file mode 100644 (file)
index 0000000..db1c2b7
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_rfc2268.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_rijndael.mod b/INSTALL/grub/i386-pc/gcry_rijndael.mod
new file mode 100644 (file)
index 0000000..6a93d1b
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_rijndael.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_rmd160.mod b/INSTALL/grub/i386-pc/gcry_rmd160.mod
new file mode 100644 (file)
index 0000000..24b37c5
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_rmd160.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_rsa.mod b/INSTALL/grub/i386-pc/gcry_rsa.mod
new file mode 100644 (file)
index 0000000..11dc696
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_rsa.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_seed.mod b/INSTALL/grub/i386-pc/gcry_seed.mod
new file mode 100644 (file)
index 0000000..157c74c
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_seed.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_serpent.mod b/INSTALL/grub/i386-pc/gcry_serpent.mod
new file mode 100644 (file)
index 0000000..8ed6364
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_serpent.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_sha1.mod b/INSTALL/grub/i386-pc/gcry_sha1.mod
new file mode 100644 (file)
index 0000000..855afd6
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_sha1.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_sha256.mod b/INSTALL/grub/i386-pc/gcry_sha256.mod
new file mode 100644 (file)
index 0000000..fc269cc
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_sha256.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_sha512.mod b/INSTALL/grub/i386-pc/gcry_sha512.mod
new file mode 100644 (file)
index 0000000..03b48b5
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_sha512.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_tiger.mod b/INSTALL/grub/i386-pc/gcry_tiger.mod
new file mode 100644 (file)
index 0000000..a91e315
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_tiger.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_twofish.mod b/INSTALL/grub/i386-pc/gcry_twofish.mod
new file mode 100644 (file)
index 0000000..8b8efae
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_twofish.mod differ
diff --git a/INSTALL/grub/i386-pc/gcry_whirlpool.mod b/INSTALL/grub/i386-pc/gcry_whirlpool.mod
new file mode 100644 (file)
index 0000000..7918540
Binary files /dev/null and b/INSTALL/grub/i386-pc/gcry_whirlpool.mod differ
diff --git a/INSTALL/grub/i386-pc/gdb.mod b/INSTALL/grub/i386-pc/gdb.mod
new file mode 100644 (file)
index 0000000..fa88b7c
Binary files /dev/null and b/INSTALL/grub/i386-pc/gdb.mod differ
diff --git a/INSTALL/grub/i386-pc/geli.mod b/INSTALL/grub/i386-pc/geli.mod
new file mode 100644 (file)
index 0000000..3a59c1a
Binary files /dev/null and b/INSTALL/grub/i386-pc/geli.mod differ
diff --git a/INSTALL/grub/i386-pc/gfxterm_menu.mod b/INSTALL/grub/i386-pc/gfxterm_menu.mod
new file mode 100644 (file)
index 0000000..a6aba54
Binary files /dev/null and b/INSTALL/grub/i386-pc/gfxterm_menu.mod differ
diff --git a/INSTALL/grub/i386-pc/gptsync.mod b/INSTALL/grub/i386-pc/gptsync.mod
new file mode 100644 (file)
index 0000000..6c75de0
Binary files /dev/null and b/INSTALL/grub/i386-pc/gptsync.mod differ
diff --git a/INSTALL/grub/i386-pc/hdparm.mod b/INSTALL/grub/i386-pc/hdparm.mod
new file mode 100644 (file)
index 0000000..7cecce6
Binary files /dev/null and b/INSTALL/grub/i386-pc/hdparm.mod differ
diff --git a/INSTALL/grub/i386-pc/hello.mod b/INSTALL/grub/i386-pc/hello.mod
new file mode 100644 (file)
index 0000000..14fd095
Binary files /dev/null and b/INSTALL/grub/i386-pc/hello.mod differ
diff --git a/INSTALL/grub/i386-pc/hexdump.mod b/INSTALL/grub/i386-pc/hexdump.mod
new file mode 100644 (file)
index 0000000..7ccea17
Binary files /dev/null and b/INSTALL/grub/i386-pc/hexdump.mod differ
diff --git a/INSTALL/grub/i386-pc/hfs.mod b/INSTALL/grub/i386-pc/hfs.mod
new file mode 100644 (file)
index 0000000..eb1134c
Binary files /dev/null and b/INSTALL/grub/i386-pc/hfs.mod differ
diff --git a/INSTALL/grub/i386-pc/hfsplus.mod b/INSTALL/grub/i386-pc/hfsplus.mod
new file mode 100644 (file)
index 0000000..f07eedb
Binary files /dev/null and b/INSTALL/grub/i386-pc/hfsplus.mod differ
diff --git a/INSTALL/grub/i386-pc/hfspluscomp.mod b/INSTALL/grub/i386-pc/hfspluscomp.mod
new file mode 100644 (file)
index 0000000..b2b4087
Binary files /dev/null and b/INSTALL/grub/i386-pc/hfspluscomp.mod differ
diff --git a/INSTALL/grub/i386-pc/iorw.mod b/INSTALL/grub/i386-pc/iorw.mod
new file mode 100644 (file)
index 0000000..8b63605
Binary files /dev/null and b/INSTALL/grub/i386-pc/iorw.mod differ
diff --git a/INSTALL/grub/i386-pc/jfs.mod b/INSTALL/grub/i386-pc/jfs.mod
new file mode 100644 (file)
index 0000000..1dbc268
Binary files /dev/null and b/INSTALL/grub/i386-pc/jfs.mod differ
diff --git a/INSTALL/grub/i386-pc/keylayouts.mod b/INSTALL/grub/i386-pc/keylayouts.mod
new file mode 100644 (file)
index 0000000..50d8183
Binary files /dev/null and b/INSTALL/grub/i386-pc/keylayouts.mod differ
diff --git a/INSTALL/grub/i386-pc/keystatus.mod b/INSTALL/grub/i386-pc/keystatus.mod
new file mode 100644 (file)
index 0000000..8b5088a
Binary files /dev/null and b/INSTALL/grub/i386-pc/keystatus.mod differ
diff --git a/INSTALL/grub/i386-pc/ldm.mod b/INSTALL/grub/i386-pc/ldm.mod
new file mode 100644 (file)
index 0000000..f299315
Binary files /dev/null and b/INSTALL/grub/i386-pc/ldm.mod differ
diff --git a/INSTALL/grub/i386-pc/legacy_password_test.mod b/INSTALL/grub/i386-pc/legacy_password_test.mod
new file mode 100644 (file)
index 0000000..b5c58fa
Binary files /dev/null and b/INSTALL/grub/i386-pc/legacy_password_test.mod differ
diff --git a/INSTALL/grub/i386-pc/legacycfg.mod b/INSTALL/grub/i386-pc/legacycfg.mod
new file mode 100644 (file)
index 0000000..850d985
Binary files /dev/null and b/INSTALL/grub/i386-pc/legacycfg.mod differ
diff --git a/INSTALL/grub/i386-pc/loadenv.mod b/INSTALL/grub/i386-pc/loadenv.mod
new file mode 100644 (file)
index 0000000..683cd90
Binary files /dev/null and b/INSTALL/grub/i386-pc/loadenv.mod differ
diff --git a/INSTALL/grub/i386-pc/lsacpi.mod b/INSTALL/grub/i386-pc/lsacpi.mod
new file mode 100644 (file)
index 0000000..7e94483
Binary files /dev/null and b/INSTALL/grub/i386-pc/lsacpi.mod differ
diff --git a/INSTALL/grub/i386-pc/lsapm.mod b/INSTALL/grub/i386-pc/lsapm.mod
new file mode 100644 (file)
index 0000000..5a053d7
Binary files /dev/null and b/INSTALL/grub/i386-pc/lsapm.mod differ
diff --git a/INSTALL/grub/i386-pc/lsmmap.mod b/INSTALL/grub/i386-pc/lsmmap.mod
new file mode 100644 (file)
index 0000000..683ecfe
Binary files /dev/null and b/INSTALL/grub/i386-pc/lsmmap.mod differ
diff --git a/INSTALL/grub/i386-pc/luks.mod b/INSTALL/grub/i386-pc/luks.mod
new file mode 100644 (file)
index 0000000..9c18afa
Binary files /dev/null and b/INSTALL/grub/i386-pc/luks.mod differ
diff --git a/INSTALL/grub/i386-pc/lvm.mod b/INSTALL/grub/i386-pc/lvm.mod
new file mode 100644 (file)
index 0000000..10c1267
Binary files /dev/null and b/INSTALL/grub/i386-pc/lvm.mod differ
diff --git a/INSTALL/grub/i386-pc/macbless.mod b/INSTALL/grub/i386-pc/macbless.mod
new file mode 100644 (file)
index 0000000..c7ed444
Binary files /dev/null and b/INSTALL/grub/i386-pc/macbless.mod differ
diff --git a/INSTALL/grub/i386-pc/mda_text.mod b/INSTALL/grub/i386-pc/mda_text.mod
new file mode 100644 (file)
index 0000000..8f343cc
Binary files /dev/null and b/INSTALL/grub/i386-pc/mda_text.mod differ
diff --git a/INSTALL/grub/i386-pc/mdraid09.mod b/INSTALL/grub/i386-pc/mdraid09.mod
new file mode 100644 (file)
index 0000000..ba29a59
Binary files /dev/null and b/INSTALL/grub/i386-pc/mdraid09.mod differ
diff --git a/INSTALL/grub/i386-pc/mdraid09_be.mod b/INSTALL/grub/i386-pc/mdraid09_be.mod
new file mode 100644 (file)
index 0000000..f53e40f
Binary files /dev/null and b/INSTALL/grub/i386-pc/mdraid09_be.mod differ
diff --git a/INSTALL/grub/i386-pc/mdraid1x.mod b/INSTALL/grub/i386-pc/mdraid1x.mod
new file mode 100644 (file)
index 0000000..c00a9af
Binary files /dev/null and b/INSTALL/grub/i386-pc/mdraid1x.mod differ
diff --git a/INSTALL/grub/i386-pc/memdisk.mod b/INSTALL/grub/i386-pc/memdisk.mod
new file mode 100644 (file)
index 0000000..83aaf1b
Binary files /dev/null and b/INSTALL/grub/i386-pc/memdisk.mod differ
diff --git a/INSTALL/grub/i386-pc/memrw.mod b/INSTALL/grub/i386-pc/memrw.mod
new file mode 100644 (file)
index 0000000..db9ae48
Binary files /dev/null and b/INSTALL/grub/i386-pc/memrw.mod differ
diff --git a/INSTALL/grub/i386-pc/minix.mod b/INSTALL/grub/i386-pc/minix.mod
new file mode 100644 (file)
index 0000000..87477bf
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix.mod differ
diff --git a/INSTALL/grub/i386-pc/minix2.mod b/INSTALL/grub/i386-pc/minix2.mod
new file mode 100644 (file)
index 0000000..01d2f60
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix2.mod differ
diff --git a/INSTALL/grub/i386-pc/minix2_be.mod b/INSTALL/grub/i386-pc/minix2_be.mod
new file mode 100644 (file)
index 0000000..260e1e7
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix2_be.mod differ
diff --git a/INSTALL/grub/i386-pc/minix3.mod b/INSTALL/grub/i386-pc/minix3.mod
new file mode 100644 (file)
index 0000000..256f5d7
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix3.mod differ
diff --git a/INSTALL/grub/i386-pc/minix3_be.mod b/INSTALL/grub/i386-pc/minix3_be.mod
new file mode 100644 (file)
index 0000000..7212cb6
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix3_be.mod differ
diff --git a/INSTALL/grub/i386-pc/minix_be.mod b/INSTALL/grub/i386-pc/minix_be.mod
new file mode 100644 (file)
index 0000000..cf7f046
Binary files /dev/null and b/INSTALL/grub/i386-pc/minix_be.mod differ
diff --git a/INSTALL/grub/i386-pc/mmap.mod b/INSTALL/grub/i386-pc/mmap.mod
new file mode 100644 (file)
index 0000000..f8b05f3
Binary files /dev/null and b/INSTALL/grub/i386-pc/mmap.mod differ
diff --git a/INSTALL/grub/i386-pc/moddep.lst b/INSTALL/grub/i386-pc/moddep.lst
new file mode 100644 (file)
index 0000000..5c5d59f
--- /dev/null
@@ -0,0 +1,271 @@
+videotest: font video gfxmenu
+odc: archelp
+loopback: extcmd
+macho:
+gcry_des: crypto
+memrw: extcmd
+terminfo: extcmd
+f2fs: fshelp
+part_gpt:
+romfs: fshelp
+read:
+aout:
+gcry_arcfour: crypto
+vga_text:
+tftp: net priority_queue
+newc: archelp
+minix2_be:
+elf:
+videotest_checksum: font functional_test video_fb
+password_pbkdf2: crypto gcry_sha512 pbkdf2 normal
+gcry_seed: crypto
+pcidump: extcmd pci
+bsd: elf serial crypto gcry_md5 verifiers extcmd vbe aout video boot cpuid relocator mmap
+sfs: fshelp
+reiserfs: fshelp
+part_sunpc:
+zstd:
+gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
+backtrace:
+jfs:
+help: extcmd normal
+configfile: normal
+cbls: cbtable
+gfxterm_menu: font functional_test procfs normal video_fb
+gcry_idea: crypto
+tr: extcmd
+shift_test: functional_test
+ohci: cs5536 usb boot pci
+afs: fshelp
+spkmodem: terminfo
+usb_keyboard: keylayouts usb
+xzio: crypto
+syslinuxcfg: extcmd normal
+search_fs_file:
+wrmsr:
+vga: video video_fb
+usbms: scsi usb
+test_blockarg: extcmd normal
+true:
+affs: fshelp
+iso9660: fshelp
+exfat: fshelp
+setjmp_test: setjmp functional_test
+gfxterm: font video
+disk:
+xfs: fshelp
+testspeed: extcmd normal
+cpio_be: archelp
+functional_test: btrfs extcmd video video_fb
+pxechain: pxe video boot relocator
+bswap_test: functional_test
+sleep: extcmd normal
+memdisk:
+gcry_rijndael: crypto
+mdraid09_be: diskfilter
+gettext:
+gcry_sha1: crypto
+hfspluscomp: gzio hfsplus
+cmp:
+random: hexdump acpi
+offsetio:
+file: elf macho extcmd offsetio
+usbserial_usbdebug: serial usb usbserial_common
+video_colors:
+morse:
+hashsum: crypto extcmd normal
+usb: pci
+halt: extcmd acpi
+gdb: serial backtrace
+gfxterm_background: video_colors bitmap_scale gfxterm extcmd video bitmap
+search_fs_uuid:
+gcry_dsa: pgp mpi
+keystatus: extcmd
+linux: verifiers normal vbe video boot relocator mmap
+geli: cryptodisk crypto gcry_sha512 pbkdf2 gcry_sha256
+cmdline_cat_test: font functional_test normal procfs video_fb
+rdmsr: extcmd
+part_sun:
+cbtable:
+plan9: verifiers extcmd boot video relocator
+sendkey: extcmd boot
+pbkdf2_test: functional_test pbkdf2 gcry_sha1
+video_bochs: pci video video_fb
+verifiers:
+bufio:
+usbserial_ftdi: serial usb usbserial_common
+legacy_password_test: functional_test legacycfg
+cpuid: extcmd
+hdparm: extcmd hexdump
+bfs: fshelp
+gcry_blowfish: crypto
+test:
+nilfs2: fshelp
+gcry_rsa: pgp mpi
+cryptodisk: crypto extcmd procfs
+nativedisk:
+minicmd:
+signature_test: functional_test procfs
+ata: scsi
+udf: fshelp
+gzio: gcry_crc
+xnu_uuid: gcry_md5
+uhci: usb pci
+pata: ata pci
+mul_test: functional_test
+adler32: crypto
+terminal:
+div:
+ehci: cs5536 usb boot pci
+crypto:
+part_bsd: part_msdos
+cs5536: pci
+biosdisk:
+ventoy: ext2 fshelp font crypto exfat udf extcmd normal relocator gcry_sha1 iso9660
+lsapm:
+gcry_sha512: crypto
+password: crypto normal
+efiemu: gcry_crc crypto cpuid acpi
+fshelp:
+sleep_test: functional_test datetime
+iorw: extcmd
+xnu: macho bitmap_scale random verifiers extcmd video bitmap boot relocator efiemu mmap
+mmap: boot
+exfctest: functional_test
+zfsinfo: zfs
+ldm: part_gpt diskfilter part_msdos
+cmostest:
+eval: normal
+part_dvh:
+blocklist:
+ext2: fshelp
+net: priority_queue bufio datetime boot
+drivemap: extcmd boot mmap
+part_acorn:
+videoinfo: video
+btrfs: zstd lzopio raid6rec gzio
+lsmmap:
+strtoull_test: functional_test
+bitmap:
+vbe: video video_fb
+ntfs: fshelp
+multiboot: net linux vbe video boot relocator mmap lsapm
+gcry_crc: crypto
+png: bufio bitmap
+jpeg: bufio bitmap
+macbless: disk
+div_test: functional_test div
+regexp: extcmd normal
+parttool: normal
+usbserial_pl2303: serial usb usbserial_common
+cpio: archelp
+gcry_rmd160: crypto
+fat: fshelp
+ufs1_be:
+truecrypt: video boot relocator gzio mmap
+archelp:
+ntldr: chain boot video relocator
+http: net
+zfs: gzio
+raid6rec: diskfilter
+minix2:
+mda_text:
+lsacpi: extcmd acpi
+datehook: datetime normal
+loadenv: disk extcmd
+bitmap_scale: bitmap
+probe: extcmd
+minix3:
+tar: archelp
+hfs: fshelp
+procfs: archelp
+boot:
+keylayouts:
+progress: normal
+kernel:
+usbtest: usb
+relocator: mmap
+acpi: extcmd mmap
+tga: bufio bitmap
+reboot: relocator
+serial: extcmd terminfo
+zfscrypt: crypto pbkdf2 extcmd zfs gcry_sha1 gcry_rijndael
+dm_nv: diskfilter
+cmp_test: functional_test
+luks: cryptodisk crypto pbkdf2
+font: bufio video
+raid5rec: diskfilter
+crc64: crypto
+datetime:
+ctz_test: functional_test
+video:
+pci:
+cbmemc: cbtable normal terminfo
+cmosdump:
+hfsplus: fshelp
+gcry_cast5: crypto
+extcmd:
+squash4: fshelp lzopio xzio gzio
+part_plan:
+minix_be:
+gcry_whirlpool: crypto
+pxe: net boot
+gcry_tiger: crypto
+search: search_fs_uuid search_fs_file extcmd search_label
+lspci: extcmd pci
+cbtime: cbtable
+video_fb:
+minix3_be:
+trig:
+msdospart: disk parttool
+priority_queue:
+gcry_twofish: crypto
+part_dfly:
+xnu_uuid_test: functional_test
+diskfilter:
+testload:
+part_apple:
+hexdump: extcmd
+date: datetime normal
+pbkdf2: crypto
+gcry_sha256: crypto
+ls: extcmd normal
+usbserial_common: serial usb
+ntfscomp: ntfs
+lzopio: crypto
+video_cirrus: pci video video_fb
+hello: extcmd
+scsi:
+linux16: linux boot video relocator mmap
+cat: extcmd
+ahci: ata boot pci
+pgp: crypto verifiers extcmd mpi gcry_sha1
+normal: terminal crypto verifiers bufio extcmd boot gettext
+ufs1:
+mdraid09: diskfilter
+lvm: diskfilter
+cbfs: archelp
+chain: video boot relocator
+ufs2:
+time:
+setpci: extcmd pci
+gptsync: disk
+freedos: chain boot video relocator
+search_label:
+setjmp:
+multiboot2: linux net vbe boot video relocator mmap lsapm acpi
+gcry_rfc2268: crypto
+mdraid1x: diskfilter
+mpi: crypto
+legacycfg: linux crypto password gcry_md5 normal
+play:
+part_amiga:
+minix:
+echo: extcmd
+gcry_serpent: crypto
+gcry_md4: crypto
+gcry_md5: crypto
+part_msdos:
+gcry_camellia: crypto
+at_keyboard: keylayouts boot
+all_video: vbe vga video_bochs video_cirrus
diff --git a/INSTALL/grub/i386-pc/morse.mod b/INSTALL/grub/i386-pc/morse.mod
new file mode 100644 (file)
index 0000000..b482e26
Binary files /dev/null and b/INSTALL/grub/i386-pc/morse.mod differ
diff --git a/INSTALL/grub/i386-pc/mpi.mod b/INSTALL/grub/i386-pc/mpi.mod
new file mode 100644 (file)
index 0000000..0f9ec71
Binary files /dev/null and b/INSTALL/grub/i386-pc/mpi.mod differ
diff --git a/INSTALL/grub/i386-pc/msdospart.mod b/INSTALL/grub/i386-pc/msdospart.mod
new file mode 100644 (file)
index 0000000..3c9d393
Binary files /dev/null and b/INSTALL/grub/i386-pc/msdospart.mod differ
diff --git a/INSTALL/grub/i386-pc/mul_test.mod b/INSTALL/grub/i386-pc/mul_test.mod
new file mode 100644 (file)
index 0000000..d86701a
Binary files /dev/null and b/INSTALL/grub/i386-pc/mul_test.mod differ
diff --git a/INSTALL/grub/i386-pc/multiboot.mod b/INSTALL/grub/i386-pc/multiboot.mod
new file mode 100644 (file)
index 0000000..0547a54
Binary files /dev/null and b/INSTALL/grub/i386-pc/multiboot.mod differ
diff --git a/INSTALL/grub/i386-pc/multiboot2.mod b/INSTALL/grub/i386-pc/multiboot2.mod
new file mode 100644 (file)
index 0000000..a4879c7
Binary files /dev/null and b/INSTALL/grub/i386-pc/multiboot2.mod differ
diff --git a/INSTALL/grub/i386-pc/nativedisk.mod b/INSTALL/grub/i386-pc/nativedisk.mod
new file mode 100644 (file)
index 0000000..df1a07d
Binary files /dev/null and b/INSTALL/grub/i386-pc/nativedisk.mod differ
diff --git a/INSTALL/grub/i386-pc/newc.mod b/INSTALL/grub/i386-pc/newc.mod
new file mode 100644 (file)
index 0000000..a693778
Binary files /dev/null and b/INSTALL/grub/i386-pc/newc.mod differ
diff --git a/INSTALL/grub/i386-pc/nilfs2.mod b/INSTALL/grub/i386-pc/nilfs2.mod
new file mode 100644 (file)
index 0000000..3d2b138
Binary files /dev/null and b/INSTALL/grub/i386-pc/nilfs2.mod differ
diff --git a/INSTALL/grub/i386-pc/ntfscomp.mod b/INSTALL/grub/i386-pc/ntfscomp.mod
new file mode 100644 (file)
index 0000000..5d0cbc7
Binary files /dev/null and b/INSTALL/grub/i386-pc/ntfscomp.mod differ
diff --git a/INSTALL/grub/i386-pc/odc.mod b/INSTALL/grub/i386-pc/odc.mod
new file mode 100644 (file)
index 0000000..bf6ef93
Binary files /dev/null and b/INSTALL/grub/i386-pc/odc.mod differ
diff --git a/INSTALL/grub/i386-pc/ohci.mod b/INSTALL/grub/i386-pc/ohci.mod
new file mode 100644 (file)
index 0000000..5206054
Binary files /dev/null and b/INSTALL/grub/i386-pc/ohci.mod differ
diff --git a/INSTALL/grub/i386-pc/part_acorn.mod b/INSTALL/grub/i386-pc/part_acorn.mod
new file mode 100644 (file)
index 0000000..3fe82b0
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_acorn.mod differ
diff --git a/INSTALL/grub/i386-pc/part_amiga.mod b/INSTALL/grub/i386-pc/part_amiga.mod
new file mode 100644 (file)
index 0000000..a841186
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_amiga.mod differ
diff --git a/INSTALL/grub/i386-pc/part_apple.mod b/INSTALL/grub/i386-pc/part_apple.mod
new file mode 100644 (file)
index 0000000..a30a0a0
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_apple.mod differ
diff --git a/INSTALL/grub/i386-pc/part_bsd.mod b/INSTALL/grub/i386-pc/part_bsd.mod
new file mode 100644 (file)
index 0000000..9c660b8
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_bsd.mod differ
diff --git a/INSTALL/grub/i386-pc/part_dfly.mod b/INSTALL/grub/i386-pc/part_dfly.mod
new file mode 100644 (file)
index 0000000..d59ec33
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_dfly.mod differ
diff --git a/INSTALL/grub/i386-pc/part_dvh.mod b/INSTALL/grub/i386-pc/part_dvh.mod
new file mode 100644 (file)
index 0000000..21b6fec
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_dvh.mod differ
diff --git a/INSTALL/grub/i386-pc/part_plan.mod b/INSTALL/grub/i386-pc/part_plan.mod
new file mode 100644 (file)
index 0000000..d074510
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_plan.mod differ
diff --git a/INSTALL/grub/i386-pc/part_sun.mod b/INSTALL/grub/i386-pc/part_sun.mod
new file mode 100644 (file)
index 0000000..81edb5e
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_sun.mod differ
diff --git a/INSTALL/grub/i386-pc/part_sunpc.mod b/INSTALL/grub/i386-pc/part_sunpc.mod
new file mode 100644 (file)
index 0000000..5c649b6
Binary files /dev/null and b/INSTALL/grub/i386-pc/part_sunpc.mod differ
diff --git a/INSTALL/grub/i386-pc/partmap.lst b/INSTALL/grub/i386-pc/partmap.lst
new file mode 100644 (file)
index 0000000..761233a
--- /dev/null
@@ -0,0 +1,11 @@
+part_acorn
+part_amiga
+part_apple
+part_bsd
+part_dfly
+part_dvh
+part_gpt
+part_msdos
+part_plan
+part_sun
+part_sunpc
diff --git a/INSTALL/grub/i386-pc/parttool.lst b/INSTALL/grub/i386-pc/parttool.lst
new file mode 100644 (file)
index 0000000..68b4b5c
--- /dev/null
@@ -0,0 +1 @@
+msdos: msdospart
diff --git a/INSTALL/grub/i386-pc/parttool.mod b/INSTALL/grub/i386-pc/parttool.mod
new file mode 100644 (file)
index 0000000..44ea393
Binary files /dev/null and b/INSTALL/grub/i386-pc/parttool.mod differ
diff --git a/INSTALL/grub/i386-pc/password.mod b/INSTALL/grub/i386-pc/password.mod
new file mode 100644 (file)
index 0000000..783c329
Binary files /dev/null and b/INSTALL/grub/i386-pc/password.mod differ
diff --git a/INSTALL/grub/i386-pc/pata.mod b/INSTALL/grub/i386-pc/pata.mod
new file mode 100644 (file)
index 0000000..0f8a55e
Binary files /dev/null and b/INSTALL/grub/i386-pc/pata.mod differ
diff --git a/INSTALL/grub/i386-pc/pbkdf2_test.mod b/INSTALL/grub/i386-pc/pbkdf2_test.mod
new file mode 100644 (file)
index 0000000..a204632
Binary files /dev/null and b/INSTALL/grub/i386-pc/pbkdf2_test.mod differ
diff --git a/INSTALL/grub/i386-pc/pcidump.mod b/INSTALL/grub/i386-pc/pcidump.mod
new file mode 100644 (file)
index 0000000..66c1649
Binary files /dev/null and b/INSTALL/grub/i386-pc/pcidump.mod differ
diff --git a/INSTALL/grub/i386-pc/pgp.mod b/INSTALL/grub/i386-pc/pgp.mod
new file mode 100644 (file)
index 0000000..3270fff
Binary files /dev/null and b/INSTALL/grub/i386-pc/pgp.mod differ
diff --git a/INSTALL/grub/i386-pc/plan9.mod b/INSTALL/grub/i386-pc/plan9.mod
new file mode 100644 (file)
index 0000000..4845df3
Binary files /dev/null and b/INSTALL/grub/i386-pc/plan9.mod differ
diff --git a/INSTALL/grub/i386-pc/play.mod b/INSTALL/grub/i386-pc/play.mod
new file mode 100644 (file)
index 0000000..9317d39
Binary files /dev/null and b/INSTALL/grub/i386-pc/play.mod differ
diff --git a/INSTALL/grub/i386-pc/priority_queue.mod b/INSTALL/grub/i386-pc/priority_queue.mod
new file mode 100644 (file)
index 0000000..4a1e167
Binary files /dev/null and b/INSTALL/grub/i386-pc/priority_queue.mod differ
diff --git a/INSTALL/grub/i386-pc/probe.mod b/INSTALL/grub/i386-pc/probe.mod
new file mode 100644 (file)
index 0000000..f880f85
Binary files /dev/null and b/INSTALL/grub/i386-pc/probe.mod differ
diff --git a/INSTALL/grub/i386-pc/procfs.mod b/INSTALL/grub/i386-pc/procfs.mod
new file mode 100644 (file)
index 0000000..a0e20ec
Binary files /dev/null and b/INSTALL/grub/i386-pc/procfs.mod differ
diff --git a/INSTALL/grub/i386-pc/progress.mod b/INSTALL/grub/i386-pc/progress.mod
new file mode 100644 (file)
index 0000000..67dd96e
Binary files /dev/null and b/INSTALL/grub/i386-pc/progress.mod differ
diff --git a/INSTALL/grub/i386-pc/pxe.mod b/INSTALL/grub/i386-pc/pxe.mod
new file mode 100644 (file)
index 0000000..1795ffd
Binary files /dev/null and b/INSTALL/grub/i386-pc/pxe.mod differ
diff --git a/INSTALL/grub/i386-pc/pxechain.mod b/INSTALL/grub/i386-pc/pxechain.mod
new file mode 100644 (file)
index 0000000..2a1bc6a
Binary files /dev/null and b/INSTALL/grub/i386-pc/pxechain.mod differ
diff --git a/INSTALL/grub/i386-pc/raid5rec.mod b/INSTALL/grub/i386-pc/raid5rec.mod
new file mode 100644 (file)
index 0000000..c31877f
Binary files /dev/null and b/INSTALL/grub/i386-pc/raid5rec.mod differ
diff --git a/INSTALL/grub/i386-pc/raid6rec.mod b/INSTALL/grub/i386-pc/raid6rec.mod
new file mode 100644 (file)
index 0000000..f16634f
Binary files /dev/null and b/INSTALL/grub/i386-pc/raid6rec.mod differ
diff --git a/INSTALL/grub/i386-pc/random.mod b/INSTALL/grub/i386-pc/random.mod
new file mode 100644 (file)
index 0000000..e15beb7
Binary files /dev/null and b/INSTALL/grub/i386-pc/random.mod differ
diff --git a/INSTALL/grub/i386-pc/rdmsr.mod b/INSTALL/grub/i386-pc/rdmsr.mod
new file mode 100644 (file)
index 0000000..02db116
Binary files /dev/null and b/INSTALL/grub/i386-pc/rdmsr.mod differ
diff --git a/INSTALL/grub/i386-pc/reiserfs.mod b/INSTALL/grub/i386-pc/reiserfs.mod
new file mode 100644 (file)
index 0000000..c51d8f6
Binary files /dev/null and b/INSTALL/grub/i386-pc/reiserfs.mod differ
diff --git a/INSTALL/grub/i386-pc/relocator.mod b/INSTALL/grub/i386-pc/relocator.mod
new file mode 100644 (file)
index 0000000..aadaeae
Binary files /dev/null and b/INSTALL/grub/i386-pc/relocator.mod differ
diff --git a/INSTALL/grub/i386-pc/romfs.mod b/INSTALL/grub/i386-pc/romfs.mod
new file mode 100644 (file)
index 0000000..d420e23
Binary files /dev/null and b/INSTALL/grub/i386-pc/romfs.mod differ
diff --git a/INSTALL/grub/i386-pc/scsi.mod b/INSTALL/grub/i386-pc/scsi.mod
new file mode 100644 (file)
index 0000000..e764bcd
Binary files /dev/null and b/INSTALL/grub/i386-pc/scsi.mod differ
diff --git a/INSTALL/grub/i386-pc/search_fs_file.mod b/INSTALL/grub/i386-pc/search_fs_file.mod
new file mode 100644 (file)
index 0000000..2ec7850
Binary files /dev/null and b/INSTALL/grub/i386-pc/search_fs_file.mod differ
diff --git a/INSTALL/grub/i386-pc/search_fs_uuid.mod b/INSTALL/grub/i386-pc/search_fs_uuid.mod
new file mode 100644 (file)
index 0000000..218adc7
Binary files /dev/null and b/INSTALL/grub/i386-pc/search_fs_uuid.mod differ
diff --git a/INSTALL/grub/i386-pc/search_label.mod b/INSTALL/grub/i386-pc/search_label.mod
new file mode 100644 (file)
index 0000000..71f941a
Binary files /dev/null and b/INSTALL/grub/i386-pc/search_label.mod differ
diff --git a/INSTALL/grub/i386-pc/sendkey.mod b/INSTALL/grub/i386-pc/sendkey.mod
new file mode 100644 (file)
index 0000000..d8605d6
Binary files /dev/null and b/INSTALL/grub/i386-pc/sendkey.mod differ
diff --git a/INSTALL/grub/i386-pc/serial.mod b/INSTALL/grub/i386-pc/serial.mod
new file mode 100644 (file)
index 0000000..521e28e
Binary files /dev/null and b/INSTALL/grub/i386-pc/serial.mod differ
diff --git a/INSTALL/grub/i386-pc/setjmp.mod b/INSTALL/grub/i386-pc/setjmp.mod
new file mode 100644 (file)
index 0000000..2d35023
Binary files /dev/null and b/INSTALL/grub/i386-pc/setjmp.mod differ
diff --git a/INSTALL/grub/i386-pc/setjmp_test.mod b/INSTALL/grub/i386-pc/setjmp_test.mod
new file mode 100644 (file)
index 0000000..b337f7b
Binary files /dev/null and b/INSTALL/grub/i386-pc/setjmp_test.mod differ
diff --git a/INSTALL/grub/i386-pc/setpci.mod b/INSTALL/grub/i386-pc/setpci.mod
new file mode 100644 (file)
index 0000000..f0b84d9
Binary files /dev/null and b/INSTALL/grub/i386-pc/setpci.mod differ
diff --git a/INSTALL/grub/i386-pc/sfs.mod b/INSTALL/grub/i386-pc/sfs.mod
new file mode 100644 (file)
index 0000000..3cf881b
Binary files /dev/null and b/INSTALL/grub/i386-pc/sfs.mod differ
diff --git a/INSTALL/grub/i386-pc/shift_test.mod b/INSTALL/grub/i386-pc/shift_test.mod
new file mode 100644 (file)
index 0000000..8236137
Binary files /dev/null and b/INSTALL/grub/i386-pc/shift_test.mod differ
diff --git a/INSTALL/grub/i386-pc/signature_test.mod b/INSTALL/grub/i386-pc/signature_test.mod
new file mode 100644 (file)
index 0000000..62c1e53
Binary files /dev/null and b/INSTALL/grub/i386-pc/signature_test.mod differ
diff --git a/INSTALL/grub/i386-pc/sleep_test.mod b/INSTALL/grub/i386-pc/sleep_test.mod
new file mode 100644 (file)
index 0000000..78d6648
Binary files /dev/null and b/INSTALL/grub/i386-pc/sleep_test.mod differ
diff --git a/INSTALL/grub/i386-pc/spkmodem.mod b/INSTALL/grub/i386-pc/spkmodem.mod
new file mode 100644 (file)
index 0000000..c5e06b5
Binary files /dev/null and b/INSTALL/grub/i386-pc/spkmodem.mod differ
diff --git a/INSTALL/grub/i386-pc/strtoull_test.mod b/INSTALL/grub/i386-pc/strtoull_test.mod
new file mode 100644 (file)
index 0000000..38de07e
Binary files /dev/null and b/INSTALL/grub/i386-pc/strtoull_test.mod differ
diff --git a/INSTALL/grub/i386-pc/syslinuxcfg.mod b/INSTALL/grub/i386-pc/syslinuxcfg.mod
new file mode 100644 (file)
index 0000000..ebeda65
Binary files /dev/null and b/INSTALL/grub/i386-pc/syslinuxcfg.mod differ
diff --git a/INSTALL/grub/i386-pc/terminal.lst b/INSTALL/grub/i386-pc/terminal.lst
new file mode 100644 (file)
index 0000000..2cb224c
--- /dev/null
@@ -0,0 +1,11 @@
+iat_keyboard: at_keyboard
+iserial: serial
+iserial_*: serial
+oaudio: morse
+ocbmemc: cbmemc
+ogfxterm: gfxterm
+omda_text: mda_text
+oserial: serial
+oserial_*: serial
+ospkmodem: spkmodem
+ovga_text: vga_text
diff --git a/INSTALL/grub/i386-pc/terminfo.mod b/INSTALL/grub/i386-pc/terminfo.mod
new file mode 100644 (file)
index 0000000..a925b17
Binary files /dev/null and b/INSTALL/grub/i386-pc/terminfo.mod differ
diff --git a/INSTALL/grub/i386-pc/test_blockarg.mod b/INSTALL/grub/i386-pc/test_blockarg.mod
new file mode 100644 (file)
index 0000000..dde95fc
Binary files /dev/null and b/INSTALL/grub/i386-pc/test_blockarg.mod differ
diff --git a/INSTALL/grub/i386-pc/testload.mod b/INSTALL/grub/i386-pc/testload.mod
new file mode 100644 (file)
index 0000000..1d42881
Binary files /dev/null and b/INSTALL/grub/i386-pc/testload.mod differ
diff --git a/INSTALL/grub/i386-pc/testspeed.mod b/INSTALL/grub/i386-pc/testspeed.mod
new file mode 100644 (file)
index 0000000..aa33184
Binary files /dev/null and b/INSTALL/grub/i386-pc/testspeed.mod differ
diff --git a/INSTALL/grub/i386-pc/tga.mod b/INSTALL/grub/i386-pc/tga.mod
new file mode 100644 (file)
index 0000000..c8fcd0b
Binary files /dev/null and b/INSTALL/grub/i386-pc/tga.mod differ
diff --git a/INSTALL/grub/i386-pc/time.mod b/INSTALL/grub/i386-pc/time.mod
new file mode 100644 (file)
index 0000000..04d482d
Binary files /dev/null and b/INSTALL/grub/i386-pc/time.mod differ
diff --git a/INSTALL/grub/i386-pc/truecrypt.mod b/INSTALL/grub/i386-pc/truecrypt.mod
new file mode 100644 (file)
index 0000000..6730bcd
Binary files /dev/null and b/INSTALL/grub/i386-pc/truecrypt.mod differ
diff --git a/INSTALL/grub/i386-pc/ufs1.mod b/INSTALL/grub/i386-pc/ufs1.mod
new file mode 100644 (file)
index 0000000..4772a20
Binary files /dev/null and b/INSTALL/grub/i386-pc/ufs1.mod differ
diff --git a/INSTALL/grub/i386-pc/ufs1_be.mod b/INSTALL/grub/i386-pc/ufs1_be.mod
new file mode 100644 (file)
index 0000000..31a50d7
Binary files /dev/null and b/INSTALL/grub/i386-pc/ufs1_be.mod differ
diff --git a/INSTALL/grub/i386-pc/ufs2.mod b/INSTALL/grub/i386-pc/ufs2.mod
new file mode 100644 (file)
index 0000000..088fba3
Binary files /dev/null and b/INSTALL/grub/i386-pc/ufs2.mod differ
diff --git a/INSTALL/grub/i386-pc/uhci.mod b/INSTALL/grub/i386-pc/uhci.mod
new file mode 100644 (file)
index 0000000..0e71428
Binary files /dev/null and b/INSTALL/grub/i386-pc/uhci.mod differ
diff --git a/INSTALL/grub/i386-pc/usb.mod b/INSTALL/grub/i386-pc/usb.mod
new file mode 100644 (file)
index 0000000..3bf851a
Binary files /dev/null and b/INSTALL/grub/i386-pc/usb.mod differ
diff --git a/INSTALL/grub/i386-pc/usbms.mod b/INSTALL/grub/i386-pc/usbms.mod
new file mode 100644 (file)
index 0000000..3c41b5c
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbms.mod differ
diff --git a/INSTALL/grub/i386-pc/usbserial_common.mod b/INSTALL/grub/i386-pc/usbserial_common.mod
new file mode 100644 (file)
index 0000000..25d8b0a
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbserial_common.mod differ
diff --git a/INSTALL/grub/i386-pc/usbserial_ftdi.mod b/INSTALL/grub/i386-pc/usbserial_ftdi.mod
new file mode 100644 (file)
index 0000000..41eac15
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbserial_ftdi.mod differ
diff --git a/INSTALL/grub/i386-pc/usbserial_pl2303.mod b/INSTALL/grub/i386-pc/usbserial_pl2303.mod
new file mode 100644 (file)
index 0000000..4dfbf9a
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbserial_pl2303.mod differ
diff --git a/INSTALL/grub/i386-pc/usbserial_usbdebug.mod b/INSTALL/grub/i386-pc/usbserial_usbdebug.mod
new file mode 100644 (file)
index 0000000..e8f3c41
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbserial_usbdebug.mod differ
diff --git a/INSTALL/grub/i386-pc/usbtest.mod b/INSTALL/grub/i386-pc/usbtest.mod
new file mode 100644 (file)
index 0000000..5c3a7fc
Binary files /dev/null and b/INSTALL/grub/i386-pc/usbtest.mod differ
diff --git a/INSTALL/grub/i386-pc/verifiers.mod b/INSTALL/grub/i386-pc/verifiers.mod
new file mode 100644 (file)
index 0000000..f7b8ab9
Binary files /dev/null and b/INSTALL/grub/i386-pc/verifiers.mod differ
diff --git a/INSTALL/grub/i386-pc/video.lst b/INSTALL/grub/i386-pc/video.lst
new file mode 100644 (file)
index 0000000..6ca853e
--- /dev/null
@@ -0,0 +1,4 @@
+vbe
+vga
+video_bochs
+video_cirrus
diff --git a/INSTALL/grub/i386-pc/wrmsr.mod b/INSTALL/grub/i386-pc/wrmsr.mod
new file mode 100644 (file)
index 0000000..1d7d257
Binary files /dev/null and b/INSTALL/grub/i386-pc/wrmsr.mod differ
diff --git a/INSTALL/grub/i386-pc/xnu.mod b/INSTALL/grub/i386-pc/xnu.mod
new file mode 100644 (file)
index 0000000..96c2e58
Binary files /dev/null and b/INSTALL/grub/i386-pc/xnu.mod differ
diff --git a/INSTALL/grub/i386-pc/xnu_uuid.mod b/INSTALL/grub/i386-pc/xnu_uuid.mod
new file mode 100644 (file)
index 0000000..499f0b5
Binary files /dev/null and b/INSTALL/grub/i386-pc/xnu_uuid.mod differ
diff --git a/INSTALL/grub/i386-pc/xnu_uuid_test.mod b/INSTALL/grub/i386-pc/xnu_uuid_test.mod
new file mode 100644 (file)
index 0000000..a853235
Binary files /dev/null and b/INSTALL/grub/i386-pc/xnu_uuid_test.mod differ
diff --git a/INSTALL/grub/i386-pc/zfs.mod b/INSTALL/grub/i386-pc/zfs.mod
new file mode 100644 (file)
index 0000000..28adaa6
Binary files /dev/null and b/INSTALL/grub/i386-pc/zfs.mod differ
diff --git a/INSTALL/grub/i386-pc/zfscrypt.mod b/INSTALL/grub/i386-pc/zfscrypt.mod
new file mode 100644 (file)
index 0000000..e684ccd
Binary files /dev/null and b/INSTALL/grub/i386-pc/zfscrypt.mod differ
diff --git a/INSTALL/grub/i386-pc/zfsinfo.mod b/INSTALL/grub/i386-pc/zfsinfo.mod
new file mode 100644 (file)
index 0000000..68844f4
Binary files /dev/null and b/INSTALL/grub/i386-pc/zfsinfo.mod differ
diff --git a/INSTALL/grub/i386-pc/zstd.mod b/INSTALL/grub/i386-pc/zstd.mod
new file mode 100644 (file)
index 0000000..721fe20
Binary files /dev/null and b/INSTALL/grub/i386-pc/zstd.mod differ
index d84158750bc879bd3d0bc1a30ecb557bb8f0bdc0..b60d54fcb6b8188635c31c2b723639efa24a77f9 100644 (file)
@@ -60,6 +60,6 @@ else
 
 fi
 
-menuentry 'Return to menu [Esc]' --class=vtoyret VTOY_RET {
+menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
     echo 'Return ...'
 }
index 7f6249f0bddf0e52f280bcc3cf70e6739fcba115..ede844c2bfba7df05c757cad9f6c51eb85520ea2 100644 (file)
@@ -10,6 +10,6 @@ menuentry Halt --class=power_halt {
     halt
 }
 
-menuentry 'Return to menu [Esc]' --class=vtoyret VTOY_RET {
+menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
     echo 'Return ...'
 }
index b0190fc67e4f9046f608f497a5831be832506dc6..8a4ac9433b5b6e424c37fa301955084d2bef1ad7 100644 (file)
Binary files a/INSTALL/grub/themes/ventoy/background.png and b/INSTALL/grub/themes/ventoy/background.png differ
diff --git a/INSTALL/grub/x86_64-efi/adler32.mod b/INSTALL/grub/x86_64-efi/adler32.mod
new file mode 100644 (file)
index 0000000..8df78d1
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/adler32.mod differ
diff --git a/INSTALL/grub/x86_64-efi/affs.mod b/INSTALL/grub/x86_64-efi/affs.mod
new file mode 100644 (file)
index 0000000..8c67092
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/affs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/afs.mod b/INSTALL/grub/x86_64-efi/afs.mod
new file mode 100644 (file)
index 0000000..9815777
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/afs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ahci.mod b/INSTALL/grub/x86_64-efi/ahci.mod
new file mode 100644 (file)
index 0000000..86b274d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ahci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/aout.mod b/INSTALL/grub/x86_64-efi/aout.mod
new file mode 100644 (file)
index 0000000..db8ab3e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/aout.mod differ
diff --git a/INSTALL/grub/x86_64-efi/appleldr.mod b/INSTALL/grub/x86_64-efi/appleldr.mod
new file mode 100644 (file)
index 0000000..a4505c3
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/appleldr.mod differ
diff --git a/INSTALL/grub/x86_64-efi/archelp.mod b/INSTALL/grub/x86_64-efi/archelp.mod
new file mode 100644 (file)
index 0000000..62463ee
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/archelp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ata.mod b/INSTALL/grub/x86_64-efi/ata.mod
new file mode 100644 (file)
index 0000000..825e494
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ata.mod differ
diff --git a/INSTALL/grub/x86_64-efi/backtrace.mod b/INSTALL/grub/x86_64-efi/backtrace.mod
new file mode 100644 (file)
index 0000000..29f9fef
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/backtrace.mod differ
diff --git a/INSTALL/grub/x86_64-efi/bfs.mod b/INSTALL/grub/x86_64-efi/bfs.mod
new file mode 100644 (file)
index 0000000..3065049
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/bfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/bsd.mod b/INSTALL/grub/x86_64-efi/bsd.mod
new file mode 100644 (file)
index 0000000..9f5235b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/bsd.mod differ
diff --git a/INSTALL/grub/x86_64-efi/bswap_test.mod b/INSTALL/grub/x86_64-efi/bswap_test.mod
new file mode 100644 (file)
index 0000000..b80415a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/bswap_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/btrfs.mod b/INSTALL/grub/x86_64-efi/btrfs.mod
new file mode 100644 (file)
index 0000000..af470c3
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/btrfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cbfs.mod b/INSTALL/grub/x86_64-efi/cbfs.mod
new file mode 100644 (file)
index 0000000..385069b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cbfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cbls.mod b/INSTALL/grub/x86_64-efi/cbls.mod
new file mode 100644 (file)
index 0000000..325251e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cbls.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cbmemc.mod b/INSTALL/grub/x86_64-efi/cbmemc.mod
new file mode 100644 (file)
index 0000000..1245aac
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cbmemc.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cbtable.mod b/INSTALL/grub/x86_64-efi/cbtable.mod
new file mode 100644 (file)
index 0000000..f46fe4f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cbtable.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cbtime.mod b/INSTALL/grub/x86_64-efi/cbtime.mod
new file mode 100644 (file)
index 0000000..f685e5e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cbtime.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cmdline_cat_test.mod b/INSTALL/grub/x86_64-efi/cmdline_cat_test.mod
new file mode 100644 (file)
index 0000000..57c7bbe
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cmdline_cat_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cmp.mod b/INSTALL/grub/x86_64-efi/cmp.mod
new file mode 100644 (file)
index 0000000..29dbd13
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cmp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cmp_test.mod b/INSTALL/grub/x86_64-efi/cmp_test.mod
new file mode 100644 (file)
index 0000000..e750bdb
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cmp_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/command.lst b/INSTALL/grub/x86_64-efi/command.lst
new file mode 100644 (file)
index 0000000..7239dd6
--- /dev/null
@@ -0,0 +1,190 @@
+*acpi: acpi
+*all_functional_test: functional_test
+*background_image: gfxterm_background
+*cat: cat
+*cpuid: cpuid
+*crc: hashsum
+*cryptomount: cryptodisk
+*echo: echo
+*extract_syslinux_entries_configfile: syslinuxcfg
+*extract_syslinux_entries_source: syslinuxcfg
+*file: file
+*functional_test: functional_test
+*gettext: gettext
+*hashsum: hashsum
+*hdparm: hdparm
+*hello: hello
+*help: help
+*hexdump: hexdump
+*inb: iorw
+*inl: iorw
+*inw: iorw
+*keystatus: keystatus
+*kfreebsd: bsd
+*knetbsd: bsd
+*kopenbsd: bsd
+*list_env: loadenv
+*load_env: loadenv
+*loopback: loopback
+*ls: ls
+*lsacpi: lsacpi
+*lspci: lspci
+*md5sum: hashsum
+*menuentry: normal
+*pcidump: pcidump
+*probe: probe
+*rdmsr: rdmsr
+*read_byte: memrw
+*read_dword: memrw
+*read_word: memrw
+*regexp: regexp
+*save_env: loadenv
+*search: search
+*serial: serial
+*setpci: setpci
+*sha1sum: hashsum
+*sha256sum: hashsum
+*sha512sum: hashsum
+*sleep: sleep
+*submenu: normal
+*syslinux_configfile: syslinuxcfg
+*syslinux_source: syslinuxcfg
+*terminfo: terminfo
+*test_blockarg: test_blockarg
+*testspeed: testspeed
+*tr: tr
+*trust: pgp
+*verify_detached: pgp
+*xnu_splash: xnu
+*zfskey: zfscrypt
+.: configfile
+[: test
+appleloader: appleldr
+authenticate: normal
+background_color: gfxterm_background
+backtrace: backtrace
+badram: mmap
+blocklist: blocklist
+boot: boot
+break: normal
+cat: minicmd
+cbmemc: cbmemc
+chainloader: chain
+clear: normal
+cmp: cmp
+configfile: configfile
+continue: normal
+coreboot_boottime: cbtime
+cutmem: mmap
+date: date
+distrust: pgp
+dump: minicmd
+eval: eval
+exit: minicmd
+export: normal
+extract_entries_configfile: configfile
+extract_entries_source: configfile
+extract_legacy_entries_configfile: legacycfg
+extract_legacy_entries_source: legacycfg
+fakebios: loadbios
+false: true
+fix_video: fixvideo
+fwsetup: efifwsetup
+gptsync: gptsync
+halt: halt
+help: minicmd
+hexdump_random: random
+initrd16: linux16
+initrd: linux
+keymap: keylayouts
+kfreebsd_loadenv: bsd
+kfreebsd_module: bsd
+kfreebsd_module_elf: bsd
+knetbsd_module: bsd
+knetbsd_module_elf: bsd
+kopenbsd_ramdisk: bsd
+legacy_check_password: legacycfg
+legacy_configfile: legacycfg
+legacy_initrd: legacycfg
+legacy_initrd_nounzip: legacycfg
+legacy_kernel: legacycfg
+legacy_password: legacycfg
+legacy_source: legacycfg
+linux16: linux16
+linux: linux
+list_trusted: pgp
+loadbios: loadbios
+loadfont: font
+lscoreboot: cbls
+lsefi: lsefi
+lsefimmap: lsefimmap
+lsefisystab: lsefisystab
+lsfonts: font
+lsmmap: lsmmap
+lsmod: minicmd
+lssal: lssal
+macppcbless: macbless
+mactelbless: macbless
+module2: multiboot2
+module: multiboot
+multiboot2: multiboot2
+multiboot: multiboot
+nativedisk: nativedisk
+net_add_addr: net
+net_add_dns: net
+net_add_route: net
+net_bootp: net
+net_del_addr: net
+net_del_dns: net
+net_del_route: net
+net_dhcp: net
+net_get_dhcp_option: net
+net_ipv6_autoconf: net
+net_ls_addr: net
+net_ls_cards: net
+net_ls_dns: net
+net_ls_routes: net
+net_nslookup: net
+normal: normal
+normal_exit: normal
+outb: iorw
+outl: iorw
+outw: iorw
+parttool: parttool
+password: password
+password_pbkdf2: password_pbkdf2
+play: play
+read: read
+reboot: reboot
+return: normal
+rmmod: minicmd
+search.file: search_fs_file
+search.fs_label: search_label
+search.fs_uuid: search_fs_uuid
+setparams: normal
+shift: normal
+source: configfile
+terminal_input: terminal
+terminal_output: terminal
+test: test
+testload: testload
+time: time
+true: true
+usb: usbtest
+videoinfo: videoinfo
+videotest: videotest
+write_byte: memrw
+write_dword: memrw
+write_word: memrw
+wrmsr: wrmsr
+xnu_devprop_load: xnu
+xnu_kernel64: xnu
+xnu_kernel: xnu
+xnu_kext: xnu
+xnu_kextdir: xnu
+xnu_mkext: xnu
+xnu_ramdisk: xnu
+xnu_resume: xnu
+xnu_uuid: xnu_uuid
+zfs-bootfs: zfsinfo
+zfsinfo: zfsinfo
diff --git a/INSTALL/grub/x86_64-efi/cpio.mod b/INSTALL/grub/x86_64-efi/cpio.mod
new file mode 100644 (file)
index 0000000..e774c23
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cpio.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cpio_be.mod b/INSTALL/grub/x86_64-efi/cpio_be.mod
new file mode 100644 (file)
index 0000000..621213f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cpio_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cpuid.mod b/INSTALL/grub/x86_64-efi/cpuid.mod
new file mode 100644 (file)
index 0000000..03e9389
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cpuid.mod differ
diff --git a/INSTALL/grub/x86_64-efi/crc64.mod b/INSTALL/grub/x86_64-efi/crc64.mod
new file mode 100644 (file)
index 0000000..ec5e9c0
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/crc64.mod differ
diff --git a/INSTALL/grub/x86_64-efi/crypto.lst b/INSTALL/grub/x86_64-efi/crypto.lst
new file mode 100644 (file)
index 0000000..77d9efc
--- /dev/null
@@ -0,0 +1,45 @@
+RIJNDAEL: gcry_rijndael
+RIJNDAEL192: gcry_rijndael
+RIJNDAEL256: gcry_rijndael
+AES128: gcry_rijndael
+AES-128: gcry_rijndael
+AES-192: gcry_rijndael
+AES-256: gcry_rijndael
+ADLER32: adler32
+CRC64: crc64
+ARCFOUR: gcry_arcfour
+BLOWFISH: gcry_blowfish
+CAMELLIA128: gcry_camellia
+CAMELLIA192: gcry_camellia
+CAMELLIA256: gcry_camellia
+CAST5: gcry_cast5
+CRC32: gcry_crc
+CRC32RFC1510: gcry_crc
+CRC24RFC2440: gcry_crc
+DES: gcry_des
+3DES: gcry_des
+DSA: gcry_dsa
+IDEA: gcry_idea
+MD4: gcry_md4
+MD5: gcry_md5
+RFC2268_40: gcry_rfc2268
+AES: gcry_rijndael
+AES192: gcry_rijndael
+AES256: gcry_rijndael
+RIPEMD160: gcry_rmd160
+RSA: gcry_rsa
+SEED: gcry_seed
+SERPENT128: gcry_serpent
+SERPENT192: gcry_serpent
+SERPENT256: gcry_serpent
+SHA1: gcry_sha1
+SHA224: gcry_sha256
+SHA256: gcry_sha256
+SHA512: gcry_sha512
+SHA384: gcry_sha512
+TIGER192: gcry_tiger
+TIGER: gcry_tiger
+TIGER2: gcry_tiger
+TWOFISH: gcry_twofish
+TWOFISH128: gcry_twofish
+WHIRLPOOL: gcry_whirlpool
diff --git a/INSTALL/grub/x86_64-efi/cryptodisk.mod b/INSTALL/grub/x86_64-efi/cryptodisk.mod
new file mode 100644 (file)
index 0000000..c56ebf5
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cryptodisk.mod differ
diff --git a/INSTALL/grub/x86_64-efi/cs5536.mod b/INSTALL/grub/x86_64-efi/cs5536.mod
new file mode 100644 (file)
index 0000000..b52ab08
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/cs5536.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ctz_test.mod b/INSTALL/grub/x86_64-efi/ctz_test.mod
new file mode 100644 (file)
index 0000000..e602fd1
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ctz_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/date.mod b/INSTALL/grub/x86_64-efi/date.mod
new file mode 100644 (file)
index 0000000..5fec5bb
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/date.mod differ
diff --git a/INSTALL/grub/x86_64-efi/datehook.mod b/INSTALL/grub/x86_64-efi/datehook.mod
new file mode 100644 (file)
index 0000000..f398c92
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/datehook.mod differ
diff --git a/INSTALL/grub/x86_64-efi/disk.mod b/INSTALL/grub/x86_64-efi/disk.mod
new file mode 100644 (file)
index 0000000..aab241b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/disk.mod differ
diff --git a/INSTALL/grub/x86_64-efi/div.mod b/INSTALL/grub/x86_64-efi/div.mod
new file mode 100644 (file)
index 0000000..374129f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/div.mod differ
diff --git a/INSTALL/grub/x86_64-efi/div_test.mod b/INSTALL/grub/x86_64-efi/div_test.mod
new file mode 100644 (file)
index 0000000..ede46a0
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/div_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/dm_nv.mod b/INSTALL/grub/x86_64-efi/dm_nv.mod
new file mode 100644 (file)
index 0000000..19a4608
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/dm_nv.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ehci.mod b/INSTALL/grub/x86_64-efi/ehci.mod
new file mode 100644 (file)
index 0000000..841296f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ehci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/eval.mod b/INSTALL/grub/x86_64-efi/eval.mod
new file mode 100644 (file)
index 0000000..4c401f8
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/eval.mod differ
diff --git a/INSTALL/grub/x86_64-efi/exfctest.mod b/INSTALL/grub/x86_64-efi/exfctest.mod
new file mode 100644 (file)
index 0000000..fc8d158
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/exfctest.mod differ
diff --git a/INSTALL/grub/x86_64-efi/f2fs.mod b/INSTALL/grub/x86_64-efi/f2fs.mod
new file mode 100644 (file)
index 0000000..4d9e530
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/f2fs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/fdt.lst b/INSTALL/grub/x86_64-efi/fdt.lst
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/INSTALL/grub/x86_64-efi/fixvideo.mod b/INSTALL/grub/x86_64-efi/fixvideo.mod
new file mode 100644 (file)
index 0000000..625c52e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/fixvideo.mod differ
diff --git a/INSTALL/grub/x86_64-efi/fs.lst b/INSTALL/grub/x86_64-efi/fs.lst
new file mode 100644 (file)
index 0000000..0acd240
--- /dev/null
@@ -0,0 +1,37 @@
+affs
+afs
+bfs
+btrfs
+cbfs
+cpio
+cpio_be
+exfat
+ext2
+f2fs
+fat
+hfs
+hfsplus
+iso9660
+jfs
+minix
+minix2
+minix2_be
+minix3
+minix3_be
+minix_be
+newc
+nilfs2
+ntfs
+odc
+procfs
+reiserfs
+romfs
+sfs
+squash4
+tar
+udf
+ufs1
+ufs1_be
+ufs2
+xfs
+zfs
diff --git a/INSTALL/grub/x86_64-efi/functional_test.mod b/INSTALL/grub/x86_64-efi/functional_test.mod
new file mode 100644 (file)
index 0000000..0b2d146
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/functional_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_arcfour.mod b/INSTALL/grub/x86_64-efi/gcry_arcfour.mod
new file mode 100644 (file)
index 0000000..97568f7
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_arcfour.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_blowfish.mod b/INSTALL/grub/x86_64-efi/gcry_blowfish.mod
new file mode 100644 (file)
index 0000000..5d962f4
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_blowfish.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_camellia.mod b/INSTALL/grub/x86_64-efi/gcry_camellia.mod
new file mode 100644 (file)
index 0000000..b44663b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_camellia.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_cast5.mod b/INSTALL/grub/x86_64-efi/gcry_cast5.mod
new file mode 100644 (file)
index 0000000..8a264bf
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_cast5.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_crc.mod b/INSTALL/grub/x86_64-efi/gcry_crc.mod
new file mode 100644 (file)
index 0000000..7f71a65
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_crc.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_des.mod b/INSTALL/grub/x86_64-efi/gcry_des.mod
new file mode 100644 (file)
index 0000000..919d2c3
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_des.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_dsa.mod b/INSTALL/grub/x86_64-efi/gcry_dsa.mod
new file mode 100644 (file)
index 0000000..1413441
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_dsa.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_idea.mod b/INSTALL/grub/x86_64-efi/gcry_idea.mod
new file mode 100644 (file)
index 0000000..b304320
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_idea.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_md4.mod b/INSTALL/grub/x86_64-efi/gcry_md4.mod
new file mode 100644 (file)
index 0000000..b4e2e60
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_md4.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_rfc2268.mod b/INSTALL/grub/x86_64-efi/gcry_rfc2268.mod
new file mode 100644 (file)
index 0000000..fed34c0
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_rfc2268.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_rijndael.mod b/INSTALL/grub/x86_64-efi/gcry_rijndael.mod
new file mode 100644 (file)
index 0000000..29ac30e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_rijndael.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_rmd160.mod b/INSTALL/grub/x86_64-efi/gcry_rmd160.mod
new file mode 100644 (file)
index 0000000..b8c35dc
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_rmd160.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_rsa.mod b/INSTALL/grub/x86_64-efi/gcry_rsa.mod
new file mode 100644 (file)
index 0000000..e3a5899
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_rsa.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_seed.mod b/INSTALL/grub/x86_64-efi/gcry_seed.mod
new file mode 100644 (file)
index 0000000..1fa8178
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_seed.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_serpent.mod b/INSTALL/grub/x86_64-efi/gcry_serpent.mod
new file mode 100644 (file)
index 0000000..fd12f88
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_serpent.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_sha1.mod b/INSTALL/grub/x86_64-efi/gcry_sha1.mod
new file mode 100644 (file)
index 0000000..9c6a843
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_sha1.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_sha256.mod b/INSTALL/grub/x86_64-efi/gcry_sha256.mod
new file mode 100644 (file)
index 0000000..973d765
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_sha256.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_tiger.mod b/INSTALL/grub/x86_64-efi/gcry_tiger.mod
new file mode 100644 (file)
index 0000000..686e70b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_tiger.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_twofish.mod b/INSTALL/grub/x86_64-efi/gcry_twofish.mod
new file mode 100644 (file)
index 0000000..013c91f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_twofish.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gcry_whirlpool.mod b/INSTALL/grub/x86_64-efi/gcry_whirlpool.mod
new file mode 100644 (file)
index 0000000..e10c785
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gcry_whirlpool.mod differ
diff --git a/INSTALL/grub/x86_64-efi/geli.mod b/INSTALL/grub/x86_64-efi/geli.mod
new file mode 100644 (file)
index 0000000..c5db646
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/geli.mod differ
diff --git a/INSTALL/grub/x86_64-efi/gptsync.mod b/INSTALL/grub/x86_64-efi/gptsync.mod
new file mode 100644 (file)
index 0000000..86ecbbf
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/gptsync.mod differ
diff --git a/INSTALL/grub/x86_64-efi/hdparm.mod b/INSTALL/grub/x86_64-efi/hdparm.mod
new file mode 100644 (file)
index 0000000..bd19f3f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/hdparm.mod differ
diff --git a/INSTALL/grub/x86_64-efi/hello.mod b/INSTALL/grub/x86_64-efi/hello.mod
new file mode 100644 (file)
index 0000000..5692186
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/hello.mod differ
diff --git a/INSTALL/grub/x86_64-efi/hexdump.mod b/INSTALL/grub/x86_64-efi/hexdump.mod
new file mode 100644 (file)
index 0000000..05c5722
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/hexdump.mod differ
diff --git a/INSTALL/grub/x86_64-efi/hfs.mod b/INSTALL/grub/x86_64-efi/hfs.mod
new file mode 100644 (file)
index 0000000..d04180a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/hfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/hfspluscomp.mod b/INSTALL/grub/x86_64-efi/hfspluscomp.mod
new file mode 100644 (file)
index 0000000..e206005
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/hfspluscomp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/iorw.mod b/INSTALL/grub/x86_64-efi/iorw.mod
new file mode 100644 (file)
index 0000000..707b405
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/iorw.mod differ
diff --git a/INSTALL/grub/x86_64-efi/jfs.mod b/INSTALL/grub/x86_64-efi/jfs.mod
new file mode 100644 (file)
index 0000000..776a758
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/jfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/keylayouts.mod b/INSTALL/grub/x86_64-efi/keylayouts.mod
new file mode 100644 (file)
index 0000000..2c2f9e7
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/keylayouts.mod differ
diff --git a/INSTALL/grub/x86_64-efi/keystatus.mod b/INSTALL/grub/x86_64-efi/keystatus.mod
new file mode 100644 (file)
index 0000000..3cd5d7c
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/keystatus.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ldm.mod b/INSTALL/grub/x86_64-efi/ldm.mod
new file mode 100644 (file)
index 0000000..baa88e7
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ldm.mod differ
diff --git a/INSTALL/grub/x86_64-efi/legacy_password_test.mod b/INSTALL/grub/x86_64-efi/legacy_password_test.mod
new file mode 100644 (file)
index 0000000..225082a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/legacy_password_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/legacycfg.mod b/INSTALL/grub/x86_64-efi/legacycfg.mod
new file mode 100644 (file)
index 0000000..752af40
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/legacycfg.mod differ
diff --git a/INSTALL/grub/x86_64-efi/linux16.mod b/INSTALL/grub/x86_64-efi/linux16.mod
new file mode 100644 (file)
index 0000000..1aa94ef
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/linux16.mod differ
diff --git a/INSTALL/grub/x86_64-efi/loadbios.mod b/INSTALL/grub/x86_64-efi/loadbios.mod
new file mode 100644 (file)
index 0000000..9dae568
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/loadbios.mod differ
diff --git a/INSTALL/grub/x86_64-efi/loadenv.mod b/INSTALL/grub/x86_64-efi/loadenv.mod
new file mode 100644 (file)
index 0000000..6bfde6b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/loadenv.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lsacpi.mod b/INSTALL/grub/x86_64-efi/lsacpi.mod
new file mode 100644 (file)
index 0000000..5bda6c1
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lsacpi.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lsefi.mod b/INSTALL/grub/x86_64-efi/lsefi.mod
new file mode 100644 (file)
index 0000000..23e7674
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lsefi.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lsefimmap.mod b/INSTALL/grub/x86_64-efi/lsefimmap.mod
new file mode 100644 (file)
index 0000000..3cef1a2
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lsefimmap.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lsefisystab.mod b/INSTALL/grub/x86_64-efi/lsefisystab.mod
new file mode 100644 (file)
index 0000000..ebc59df
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lsefisystab.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lsmmap.mod b/INSTALL/grub/x86_64-efi/lsmmap.mod
new file mode 100644 (file)
index 0000000..b02fe98
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lsmmap.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lspci.mod b/INSTALL/grub/x86_64-efi/lspci.mod
new file mode 100644 (file)
index 0000000..39ef1be
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lspci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lssal.mod b/INSTALL/grub/x86_64-efi/lssal.mod
new file mode 100644 (file)
index 0000000..7cfb71c
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lssal.mod differ
diff --git a/INSTALL/grub/x86_64-efi/luks.mod b/INSTALL/grub/x86_64-efi/luks.mod
new file mode 100644 (file)
index 0000000..e0d290f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/luks.mod differ
diff --git a/INSTALL/grub/x86_64-efi/lvm.mod b/INSTALL/grub/x86_64-efi/lvm.mod
new file mode 100644 (file)
index 0000000..68a8152
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/lvm.mod differ
diff --git a/INSTALL/grub/x86_64-efi/macbless.mod b/INSTALL/grub/x86_64-efi/macbless.mod
new file mode 100644 (file)
index 0000000..4631c36
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/macbless.mod differ
diff --git a/INSTALL/grub/x86_64-efi/mdraid09.mod b/INSTALL/grub/x86_64-efi/mdraid09.mod
new file mode 100644 (file)
index 0000000..b676846
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/mdraid09.mod differ
diff --git a/INSTALL/grub/x86_64-efi/mdraid09_be.mod b/INSTALL/grub/x86_64-efi/mdraid09_be.mod
new file mode 100644 (file)
index 0000000..c47e089
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/mdraid09_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/mdraid1x.mod b/INSTALL/grub/x86_64-efi/mdraid1x.mod
new file mode 100644 (file)
index 0000000..8cc6418
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/mdraid1x.mod differ
diff --git a/INSTALL/grub/x86_64-efi/memdisk.mod b/INSTALL/grub/x86_64-efi/memdisk.mod
new file mode 100644 (file)
index 0000000..41c1270
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/memdisk.mod differ
diff --git a/INSTALL/grub/x86_64-efi/memrw.mod b/INSTALL/grub/x86_64-efi/memrw.mod
new file mode 100644 (file)
index 0000000..8d9893e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/memrw.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix.mod b/INSTALL/grub/x86_64-efi/minix.mod
new file mode 100644 (file)
index 0000000..2154827
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix2.mod b/INSTALL/grub/x86_64-efi/minix2.mod
new file mode 100644 (file)
index 0000000..402eb73
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix2.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix2_be.mod b/INSTALL/grub/x86_64-efi/minix2_be.mod
new file mode 100644 (file)
index 0000000..1fd15f3
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix2_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix3.mod b/INSTALL/grub/x86_64-efi/minix3.mod
new file mode 100644 (file)
index 0000000..b631283
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix3.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix3_be.mod b/INSTALL/grub/x86_64-efi/minix3_be.mod
new file mode 100644 (file)
index 0000000..2d24bad
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix3_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/minix_be.mod b/INSTALL/grub/x86_64-efi/minix_be.mod
new file mode 100644 (file)
index 0000000..a039b6d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/minix_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/moddep.lst b/INSTALL/grub/x86_64-efi/moddep.lst
new file mode 100644 (file)
index 0000000..97ee978
--- /dev/null
@@ -0,0 +1,265 @@
+videotest: font video gfxmenu
+odc: archelp
+loopback: extcmd
+macho:
+gcry_des: crypto
+memrw: extcmd
+terminfo: extcmd
+f2fs: fshelp
+part_gpt:
+romfs: fshelp
+read:
+lsefimmap:
+aout:
+gcry_arcfour: crypto
+tftp: net priority_queue
+newc: archelp
+minix2_be:
+elf:
+videotest_checksum: font functional_test video_fb
+password_pbkdf2: crypto gcry_sha512 pbkdf2 normal
+gcry_seed: crypto
+pcidump: extcmd
+bsd: elf serial crypto gcry_md5 verifiers extcmd aout video boot cpuid relocator mmap
+sfs: fshelp
+reiserfs: fshelp
+part_sunpc:
+zstd:
+gfxmenu: video_colors trig bitmap_scale gfxterm font normal bitmap video
+backtrace:
+jfs:
+help: extcmd normal
+configfile: normal
+cbls: cbtable
+gfxterm_menu: font functional_test procfs normal video_fb
+gcry_idea: crypto
+tr: extcmd
+shift_test: functional_test
+ohci: cs5536 usb boot
+afs: fshelp
+spkmodem: terminfo
+usb_keyboard: keylayouts usb
+xzio: crypto
+syslinuxcfg: extcmd normal
+search_fs_file:
+wrmsr:
+usbms: scsi usb
+test_blockarg: extcmd normal
+true:
+affs: fshelp
+iso9660: fshelp
+exfat: fshelp
+setjmp_test: setjmp functional_test
+gfxterm: font video
+efinet: net
+disk:
+appleldr: boot
+xfs: fshelp
+testspeed: extcmd normal
+cpio_be: archelp
+functional_test: btrfs extcmd video video_fb
+bswap_test: functional_test
+sleep: extcmd normal
+memdisk:
+gcry_rijndael: crypto
+mdraid09_be: diskfilter
+gettext:
+gcry_sha1: crypto
+hfspluscomp: gzio hfsplus
+cmp:
+random: hexdump
+offsetio:
+file: elf macho extcmd offsetio
+usbserial_usbdebug: serial usb usbserial_common
+video_colors:
+morse:
+hashsum: crypto extcmd normal
+usb:
+halt: acpi
+gfxterm_background: video_colors bitmap_scale gfxterm extcmd video bitmap
+search_fs_uuid:
+gcry_dsa: pgp mpi
+keystatus: extcmd
+linux: verifiers video boot relocator mmap
+geli: cryptodisk crypto gcry_sha512 pbkdf2 gcry_sha256
+cmdline_cat_test: font functional_test normal procfs video_fb
+rdmsr: extcmd
+part_sun:
+cbtable:
+pbkdf2_test: functional_test pbkdf2 gcry_sha1
+video_bochs: video video_fb
+verifiers:
+bufio:
+usbserial_ftdi: serial usb usbserial_common
+legacy_password_test: functional_test legacycfg
+cpuid: extcmd
+hdparm: extcmd hexdump
+bfs: fshelp
+gcry_blowfish: crypto
+test:
+nilfs2: fshelp
+gcry_rsa: pgp mpi
+cryptodisk: crypto extcmd procfs
+nativedisk:
+minicmd:
+signature_test: functional_test procfs
+ata: scsi
+udf: fshelp
+gzio: gcry_crc
+xnu_uuid: gcry_md5
+uhci: usb
+pata: ata
+mul_test: functional_test
+adler32: crypto
+terminal:
+shim_lock: verifiers
+div:
+ehci: cs5536 usb boot
+crypto:
+part_bsd: part_msdos
+cs5536:
+ventoy: ext2 fshelp font crypto exfat udf extcmd normal gcry_sha1 iso9660
+gcry_sha512: crypto
+password: crypto normal
+fshelp:
+sleep_test: functional_test datetime
+iorw: extcmd
+xnu: macho bitmap_scale random verifiers extcmd boot video bitmap relocator mmap
+mmap:
+exfctest: functional_test
+zfsinfo: zfs
+ldm: part_gpt diskfilter part_msdos
+eval: normal
+part_dvh:
+lssal:
+blocklist:
+ext2: fshelp
+net: priority_queue bufio datetime boot
+part_acorn:
+videoinfo: video
+btrfs: zstd lzopio raid6rec gzio
+lsmmap: mmap
+strtoull_test: functional_test
+bitmap:
+ntfs: fshelp
+multiboot: net linux video boot relocator mmap
+tpm: verifiers
+gcry_crc: crypto
+png: bufio bitmap
+jpeg: bufio bitmap
+macbless: disk
+div_test: functional_test div
+regexp: extcmd normal
+parttool: normal
+usbserial_pl2303: serial usb usbserial_common
+cpio: archelp
+gcry_rmd160: crypto
+fat: fshelp
+ufs1_be:
+archelp:
+http: net
+zfs: gzio
+raid6rec: diskfilter
+lsefisystab:
+minix2:
+lsacpi: extcmd acpi
+datehook: datetime normal
+loadenv: disk extcmd
+bitmap_scale: bitmap
+probe: extcmd
+minix3:
+tar: archelp
+loadbios:
+hfs: fshelp
+procfs: archelp
+boot:
+keylayouts:
+progress: normal
+kernel:
+usbtest: usb
+relocator: mmap
+acpi: extcmd mmap
+tga: bufio bitmap
+reboot:
+serial: extcmd terminfo
+zfscrypt: crypto pbkdf2 extcmd zfs gcry_sha1 gcry_rijndael
+efi_uga: video video_fb
+dm_nv: diskfilter
+cmp_test: functional_test
+luks: cryptodisk crypto pbkdf2
+font: bufio video
+raid5rec: diskfilter
+crc64: crypto
+datetime:
+efifwsetup:
+ctz_test: functional_test
+video:
+cbmemc: cbtable normal terminfo
+hfsplus: fshelp
+gcry_cast5: crypto
+extcmd:
+squash4: fshelp lzopio xzio gzio
+part_plan:
+minix_be:
+gcry_whirlpool: crypto
+gcry_tiger: crypto
+fixvideo:
+search: search_fs_uuid search_fs_file extcmd search_label
+lspci: extcmd
+cbtime: cbtable
+video_fb:
+minix3_be:
+trig:
+msdospart: disk parttool
+priority_queue:
+gcry_twofish: crypto
+part_dfly:
+xnu_uuid_test: functional_test
+diskfilter:
+testload:
+part_apple:
+hexdump: extcmd
+date: datetime normal
+pbkdf2: crypto
+gcry_sha256: crypto
+ls: extcmd normal
+usbserial_common: serial usb
+ntfscomp: ntfs
+lzopio: crypto
+video_cirrus: video video_fb
+hello: extcmd
+scsi:
+linux16: linux boot video relocator mmap
+cat: extcmd
+ahci: ata boot
+pgp: crypto verifiers extcmd mpi gcry_sha1
+normal: terminal crypto verifiers bufio extcmd boot gettext
+ufs1:
+mdraid09: diskfilter
+lvm: diskfilter
+chain: net efinet boot
+cbfs: archelp
+ufs2:
+time:
+setpci: extcmd
+gptsync: disk
+search_label:
+setjmp:
+multiboot2: linux net video boot relocator acpi mmap
+gcry_rfc2268: crypto
+mdraid1x: diskfilter
+mpi: crypto
+legacycfg: crypto password gcry_md5 normal
+play:
+part_amiga:
+efi_gop: video video_fb
+minix:
+echo: extcmd
+lsefi:
+gcry_serpent: crypto
+gcry_md4: crypto
+gcry_md5: crypto
+part_msdos:
+gcry_camellia: crypto
+at_keyboard: keylayouts boot
+all_video: efi_gop efi_uga video_bochs video_cirrus
diff --git a/INSTALL/grub/x86_64-efi/morse.mod b/INSTALL/grub/x86_64-efi/morse.mod
new file mode 100644 (file)
index 0000000..123c9f4
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/morse.mod differ
diff --git a/INSTALL/grub/x86_64-efi/mpi.mod b/INSTALL/grub/x86_64-efi/mpi.mod
new file mode 100644 (file)
index 0000000..5468955
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/mpi.mod differ
diff --git a/INSTALL/grub/x86_64-efi/msdospart.mod b/INSTALL/grub/x86_64-efi/msdospart.mod
new file mode 100644 (file)
index 0000000..96e3e8e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/msdospart.mod differ
diff --git a/INSTALL/grub/x86_64-efi/mul_test.mod b/INSTALL/grub/x86_64-efi/mul_test.mod
new file mode 100644 (file)
index 0000000..4a37424
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/mul_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/multiboot.mod b/INSTALL/grub/x86_64-efi/multiboot.mod
new file mode 100644 (file)
index 0000000..9a827f2
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/multiboot.mod differ
diff --git a/INSTALL/grub/x86_64-efi/multiboot2.mod b/INSTALL/grub/x86_64-efi/multiboot2.mod
new file mode 100644 (file)
index 0000000..057693d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/multiboot2.mod differ
diff --git a/INSTALL/grub/x86_64-efi/nativedisk.mod b/INSTALL/grub/x86_64-efi/nativedisk.mod
new file mode 100644 (file)
index 0000000..3061804
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/nativedisk.mod differ
diff --git a/INSTALL/grub/x86_64-efi/newc.mod b/INSTALL/grub/x86_64-efi/newc.mod
new file mode 100644 (file)
index 0000000..484fdf5
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/newc.mod differ
diff --git a/INSTALL/grub/x86_64-efi/nilfs2.mod b/INSTALL/grub/x86_64-efi/nilfs2.mod
new file mode 100644 (file)
index 0000000..2aa661d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/nilfs2.mod differ
index 2acecccc1ef950d31a2773bb3c390763a8b5149b..d2c83bb1521428c0e3d38130619e0bf5b73ea788 100644 (file)
Binary files a/INSTALL/grub/x86_64-efi/normal.mod and b/INSTALL/grub/x86_64-efi/normal.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ntfscomp.mod b/INSTALL/grub/x86_64-efi/ntfscomp.mod
new file mode 100644 (file)
index 0000000..9f35f83
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ntfscomp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/odc.mod b/INSTALL/grub/x86_64-efi/odc.mod
new file mode 100644 (file)
index 0000000..512d7e7
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/odc.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ohci.mod b/INSTALL/grub/x86_64-efi/ohci.mod
new file mode 100644 (file)
index 0000000..de29f2b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ohci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_acorn.mod b/INSTALL/grub/x86_64-efi/part_acorn.mod
new file mode 100644 (file)
index 0000000..323854a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_acorn.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_amiga.mod b/INSTALL/grub/x86_64-efi/part_amiga.mod
new file mode 100644 (file)
index 0000000..b16590f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_amiga.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_bsd.mod b/INSTALL/grub/x86_64-efi/part_bsd.mod
new file mode 100644 (file)
index 0000000..d4bf05e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_bsd.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_dfly.mod b/INSTALL/grub/x86_64-efi/part_dfly.mod
new file mode 100644 (file)
index 0000000..d7b1d8e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_dfly.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_dvh.mod b/INSTALL/grub/x86_64-efi/part_dvh.mod
new file mode 100644 (file)
index 0000000..509c3a6
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_dvh.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_plan.mod b/INSTALL/grub/x86_64-efi/part_plan.mod
new file mode 100644 (file)
index 0000000..826f54d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_plan.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_sun.mod b/INSTALL/grub/x86_64-efi/part_sun.mod
new file mode 100644 (file)
index 0000000..d054e87
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_sun.mod differ
diff --git a/INSTALL/grub/x86_64-efi/part_sunpc.mod b/INSTALL/grub/x86_64-efi/part_sunpc.mod
new file mode 100644 (file)
index 0000000..b17db00
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/part_sunpc.mod differ
diff --git a/INSTALL/grub/x86_64-efi/partmap.lst b/INSTALL/grub/x86_64-efi/partmap.lst
new file mode 100644 (file)
index 0000000..761233a
--- /dev/null
@@ -0,0 +1,11 @@
+part_acorn
+part_amiga
+part_apple
+part_bsd
+part_dfly
+part_dvh
+part_gpt
+part_msdos
+part_plan
+part_sun
+part_sunpc
diff --git a/INSTALL/grub/x86_64-efi/parttool.lst b/INSTALL/grub/x86_64-efi/parttool.lst
new file mode 100644 (file)
index 0000000..68b4b5c
--- /dev/null
@@ -0,0 +1 @@
+msdos: msdospart
diff --git a/INSTALL/grub/x86_64-efi/parttool.mod b/INSTALL/grub/x86_64-efi/parttool.mod
new file mode 100644 (file)
index 0000000..fd631c0
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/parttool.mod differ
diff --git a/INSTALL/grub/x86_64-efi/password.mod b/INSTALL/grub/x86_64-efi/password.mod
new file mode 100644 (file)
index 0000000..a2dd92d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/password.mod differ
diff --git a/INSTALL/grub/x86_64-efi/pata.mod b/INSTALL/grub/x86_64-efi/pata.mod
new file mode 100644 (file)
index 0000000..d61ef8d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/pata.mod differ
diff --git a/INSTALL/grub/x86_64-efi/pbkdf2_test.mod b/INSTALL/grub/x86_64-efi/pbkdf2_test.mod
new file mode 100644 (file)
index 0000000..80c9e52
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/pbkdf2_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/pcidump.mod b/INSTALL/grub/x86_64-efi/pcidump.mod
new file mode 100644 (file)
index 0000000..1cecc62
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/pcidump.mod differ
diff --git a/INSTALL/grub/x86_64-efi/pgp.mod b/INSTALL/grub/x86_64-efi/pgp.mod
new file mode 100644 (file)
index 0000000..309f613
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/pgp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/play.mod b/INSTALL/grub/x86_64-efi/play.mod
new file mode 100644 (file)
index 0000000..e101c82
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/play.mod differ
diff --git a/INSTALL/grub/x86_64-efi/probe.mod b/INSTALL/grub/x86_64-efi/probe.mod
new file mode 100644 (file)
index 0000000..af84602
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/probe.mod differ
diff --git a/INSTALL/grub/x86_64-efi/procfs.mod b/INSTALL/grub/x86_64-efi/procfs.mod
new file mode 100644 (file)
index 0000000..01d42e9
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/procfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/progress.mod b/INSTALL/grub/x86_64-efi/progress.mod
new file mode 100644 (file)
index 0000000..e844836
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/progress.mod differ
diff --git a/INSTALL/grub/x86_64-efi/raid5rec.mod b/INSTALL/grub/x86_64-efi/raid5rec.mod
new file mode 100644 (file)
index 0000000..b4786b2
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/raid5rec.mod differ
diff --git a/INSTALL/grub/x86_64-efi/raid6rec.mod b/INSTALL/grub/x86_64-efi/raid6rec.mod
new file mode 100644 (file)
index 0000000..bfd0d1b
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/raid6rec.mod differ
diff --git a/INSTALL/grub/x86_64-efi/random.mod b/INSTALL/grub/x86_64-efi/random.mod
new file mode 100644 (file)
index 0000000..83a6c80
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/random.mod differ
diff --git a/INSTALL/grub/x86_64-efi/rdmsr.mod b/INSTALL/grub/x86_64-efi/rdmsr.mod
new file mode 100644 (file)
index 0000000..9bf3269
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/rdmsr.mod differ
diff --git a/INSTALL/grub/x86_64-efi/reiserfs.mod b/INSTALL/grub/x86_64-efi/reiserfs.mod
new file mode 100644 (file)
index 0000000..542ae3c
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/reiserfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/romfs.mod b/INSTALL/grub/x86_64-efi/romfs.mod
new file mode 100644 (file)
index 0000000..c42d9c7
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/romfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/scsi.mod b/INSTALL/grub/x86_64-efi/scsi.mod
new file mode 100644 (file)
index 0000000..a5e5e85
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/scsi.mod differ
diff --git a/INSTALL/grub/x86_64-efi/search_fs_file.mod b/INSTALL/grub/x86_64-efi/search_fs_file.mod
new file mode 100644 (file)
index 0000000..8372039
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/search_fs_file.mod differ
diff --git a/INSTALL/grub/x86_64-efi/search_fs_uuid.mod b/INSTALL/grub/x86_64-efi/search_fs_uuid.mod
new file mode 100644 (file)
index 0000000..63701d1
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/search_fs_uuid.mod differ
diff --git a/INSTALL/grub/x86_64-efi/search_label.mod b/INSTALL/grub/x86_64-efi/search_label.mod
new file mode 100644 (file)
index 0000000..f1b8265
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/search_label.mod differ
diff --git a/INSTALL/grub/x86_64-efi/setjmp.mod b/INSTALL/grub/x86_64-efi/setjmp.mod
new file mode 100644 (file)
index 0000000..a0b4e57
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/setjmp.mod differ
diff --git a/INSTALL/grub/x86_64-efi/setjmp_test.mod b/INSTALL/grub/x86_64-efi/setjmp_test.mod
new file mode 100644 (file)
index 0000000..291d987
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/setjmp_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/setpci.mod b/INSTALL/grub/x86_64-efi/setpci.mod
new file mode 100644 (file)
index 0000000..908a3ad
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/setpci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/sfs.mod b/INSTALL/grub/x86_64-efi/sfs.mod
new file mode 100644 (file)
index 0000000..2e3a214
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/sfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/shift_test.mod b/INSTALL/grub/x86_64-efi/shift_test.mod
new file mode 100644 (file)
index 0000000..5a1321a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/shift_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/shim_lock.mod b/INSTALL/grub/x86_64-efi/shim_lock.mod
new file mode 100644 (file)
index 0000000..3e4123a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/shim_lock.mod differ
diff --git a/INSTALL/grub/x86_64-efi/signature_test.mod b/INSTALL/grub/x86_64-efi/signature_test.mod
new file mode 100644 (file)
index 0000000..54a3545
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/signature_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/sleep_test.mod b/INSTALL/grub/x86_64-efi/sleep_test.mod
new file mode 100644 (file)
index 0000000..2722f35
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/sleep_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/spkmodem.mod b/INSTALL/grub/x86_64-efi/spkmodem.mod
new file mode 100644 (file)
index 0000000..eac5b90
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/spkmodem.mod differ
diff --git a/INSTALL/grub/x86_64-efi/strtoull_test.mod b/INSTALL/grub/x86_64-efi/strtoull_test.mod
new file mode 100644 (file)
index 0000000..24b4245
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/strtoull_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/syslinuxcfg.mod b/INSTALL/grub/x86_64-efi/syslinuxcfg.mod
new file mode 100644 (file)
index 0000000..fc621e9
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/syslinuxcfg.mod differ
diff --git a/INSTALL/grub/x86_64-efi/terminal.lst b/INSTALL/grub/x86_64-efi/terminal.lst
new file mode 100644 (file)
index 0000000..3c9a5a3
--- /dev/null
@@ -0,0 +1,9 @@
+iat_keyboard: at_keyboard
+iserial: serial
+iserial_*: serial
+oaudio: morse
+ocbmemc: cbmemc
+ogfxterm: gfxterm
+oserial: serial
+oserial_*: serial
+ospkmodem: spkmodem
diff --git a/INSTALL/grub/x86_64-efi/test_blockarg.mod b/INSTALL/grub/x86_64-efi/test_blockarg.mod
new file mode 100644 (file)
index 0000000..742a480
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/test_blockarg.mod differ
diff --git a/INSTALL/grub/x86_64-efi/testload.mod b/INSTALL/grub/x86_64-efi/testload.mod
new file mode 100644 (file)
index 0000000..1b58c21
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/testload.mod differ
diff --git a/INSTALL/grub/x86_64-efi/testspeed.mod b/INSTALL/grub/x86_64-efi/testspeed.mod
new file mode 100644 (file)
index 0000000..609b3a5
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/testspeed.mod differ
diff --git a/INSTALL/grub/x86_64-efi/tga.mod b/INSTALL/grub/x86_64-efi/tga.mod
new file mode 100644 (file)
index 0000000..02ce149
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/tga.mod differ
diff --git a/INSTALL/grub/x86_64-efi/tpm.mod b/INSTALL/grub/x86_64-efi/tpm.mod
new file mode 100644 (file)
index 0000000..811b7ce
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/tpm.mod differ
diff --git a/INSTALL/grub/x86_64-efi/tr.mod b/INSTALL/grub/x86_64-efi/tr.mod
new file mode 100644 (file)
index 0000000..cc01528
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/tr.mod differ
diff --git a/INSTALL/grub/x86_64-efi/true.mod b/INSTALL/grub/x86_64-efi/true.mod
new file mode 100644 (file)
index 0000000..253c5e2
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/true.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ufs1.mod b/INSTALL/grub/x86_64-efi/ufs1.mod
new file mode 100644 (file)
index 0000000..ab79b21
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ufs1.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ufs1_be.mod b/INSTALL/grub/x86_64-efi/ufs1_be.mod
new file mode 100644 (file)
index 0000000..296c2fc
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ufs1_be.mod differ
diff --git a/INSTALL/grub/x86_64-efi/ufs2.mod b/INSTALL/grub/x86_64-efi/ufs2.mod
new file mode 100644 (file)
index 0000000..c84e55a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/ufs2.mod differ
diff --git a/INSTALL/grub/x86_64-efi/uhci.mod b/INSTALL/grub/x86_64-efi/uhci.mod
new file mode 100644 (file)
index 0000000..a9a490c
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/uhci.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usb.mod b/INSTALL/grub/x86_64-efi/usb.mod
new file mode 100644 (file)
index 0000000..423a463
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usb.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbms.mod b/INSTALL/grub/x86_64-efi/usbms.mod
new file mode 100644 (file)
index 0000000..ab5848d
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbms.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbserial_common.mod b/INSTALL/grub/x86_64-efi/usbserial_common.mod
new file mode 100644 (file)
index 0000000..5a33d89
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbserial_common.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbserial_ftdi.mod b/INSTALL/grub/x86_64-efi/usbserial_ftdi.mod
new file mode 100644 (file)
index 0000000..35cc7af
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbserial_ftdi.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbserial_pl2303.mod b/INSTALL/grub/x86_64-efi/usbserial_pl2303.mod
new file mode 100644 (file)
index 0000000..1b93dec
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbserial_pl2303.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbserial_usbdebug.mod b/INSTALL/grub/x86_64-efi/usbserial_usbdebug.mod
new file mode 100644 (file)
index 0000000..6fd988a
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbserial_usbdebug.mod differ
diff --git a/INSTALL/grub/x86_64-efi/usbtest.mod b/INSTALL/grub/x86_64-efi/usbtest.mod
new file mode 100644 (file)
index 0000000..b2cc766
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/usbtest.mod differ
diff --git a/INSTALL/grub/x86_64-efi/verifiers.mod b/INSTALL/grub/x86_64-efi/verifiers.mod
new file mode 100644 (file)
index 0000000..6cb24d3
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/verifiers.mod differ
diff --git a/INSTALL/grub/x86_64-efi/video.lst b/INSTALL/grub/x86_64-efi/video.lst
new file mode 100644 (file)
index 0000000..ae9ba23
--- /dev/null
@@ -0,0 +1,4 @@
+efi_gop
+efi_uga
+video_bochs
+video_cirrus
diff --git a/INSTALL/grub/x86_64-efi/videoinfo.mod b/INSTALL/grub/x86_64-efi/videoinfo.mod
new file mode 100644 (file)
index 0000000..d30ab12
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/videoinfo.mod differ
diff --git a/INSTALL/grub/x86_64-efi/videotest.mod b/INSTALL/grub/x86_64-efi/videotest.mod
new file mode 100644 (file)
index 0000000..9cd7cc5
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/videotest.mod differ
diff --git a/INSTALL/grub/x86_64-efi/videotest_checksum.mod b/INSTALL/grub/x86_64-efi/videotest_checksum.mod
new file mode 100644 (file)
index 0000000..afba542
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/videotest_checksum.mod differ
diff --git a/INSTALL/grub/x86_64-efi/wrmsr.mod b/INSTALL/grub/x86_64-efi/wrmsr.mod
new file mode 100644 (file)
index 0000000..6624182
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/wrmsr.mod differ
diff --git a/INSTALL/grub/x86_64-efi/xnu.mod b/INSTALL/grub/x86_64-efi/xnu.mod
new file mode 100644 (file)
index 0000000..ad4d811
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/xnu.mod differ
diff --git a/INSTALL/grub/x86_64-efi/xnu_uuid.mod b/INSTALL/grub/x86_64-efi/xnu_uuid.mod
new file mode 100644 (file)
index 0000000..f5cc67f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/xnu_uuid.mod differ
diff --git a/INSTALL/grub/x86_64-efi/xnu_uuid_test.mod b/INSTALL/grub/x86_64-efi/xnu_uuid_test.mod
new file mode 100644 (file)
index 0000000..d39261e
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/xnu_uuid_test.mod differ
diff --git a/INSTALL/grub/x86_64-efi/zfs.mod b/INSTALL/grub/x86_64-efi/zfs.mod
new file mode 100644 (file)
index 0000000..70f1d91
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/zfs.mod differ
diff --git a/INSTALL/grub/x86_64-efi/zfscrypt.mod b/INSTALL/grub/x86_64-efi/zfscrypt.mod
new file mode 100644 (file)
index 0000000..cb2e7f8
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/zfscrypt.mod differ
diff --git a/INSTALL/grub/x86_64-efi/zfsinfo.mod b/INSTALL/grub/x86_64-efi/zfsinfo.mod
new file mode 100644 (file)
index 0000000..7a3af4c
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/zfsinfo.mod differ
diff --git a/INSTALL/grub/x86_64-efi/zstd.mod b/INSTALL/grub/x86_64-efi/zstd.mod
new file mode 100644 (file)
index 0000000..9ba950f
Binary files /dev/null and b/INSTALL/grub/x86_64-efi/zstd.mod differ
diff --git a/INSTALL/ventoy/7z/32/7za.exe b/INSTALL/ventoy/7z/32/7za.exe
new file mode 100644 (file)
index 0000000..2bdd57d
Binary files /dev/null and b/INSTALL/ventoy/7z/32/7za.exe differ
diff --git a/INSTALL/ventoy/7z/64/7za.exe b/INSTALL/ventoy/7z/64/7za.exe
new file mode 100644 (file)
index 0000000..9f27b20
Binary files /dev/null and b/INSTALL/ventoy/7z/64/7za.exe differ
index e71b2b2e8fd2b4ac808f360378ccff9f672841d8..82db8c5f2996593b9b4fc0bf6ce39c1faf17ee90 100644 (file)
Binary files a/INSTALL/ventoy/ventoy.cpio and b/INSTALL/ventoy/ventoy.cpio differ
index 6290a3350dece01471a89b674d0eb48661fefa63..df670586bdeb927041ea4439a14673c61118f274 100644 (file)
Binary files a/INSTALL/ventoy/ventoy_x64.efi and b/INSTALL/ventoy/ventoy_x64.efi differ
index cb054e7496e0cabde48a0378e9c6e18306f56926..c88bb8dcbda031efad48a004954b6e3ea625617d 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump32.exe and b/INSTALL/ventoy/vtoyjump32.exe differ
index 9273282ea8ee510211cab9026628b81fbdce9892..f4cb00963b23e95b9b482e5bee27e50c57daa2c1 100644 (file)
Binary files a/INSTALL/ventoy/vtoyjump64.exe and b/INSTALL/ventoy/vtoyjump64.exe differ
index 988d4e13d2ec972f4ebf25207b9d42421a5b0b30..91c7840d8529f3a431702906ce1d6640c2d62817 100644 (file)
@@ -62,7 +62,7 @@ cp -a ./tool/ENROLL_THIS_KEY_IN_MOKMANAGER.cer $tmpmnt/
 mkdir -p $tmpmnt/tool
 cp -a ./tool/mount*     $tmpmnt/tool/
 
-rm -f $tmpmnt/grub/i386-pc/*
+rm -f $tmpmnt/grub/i386-pc/*.img
 
 
 umount $tmpmnt && rm -rf $tmpmnt
@@ -79,6 +79,7 @@ xz --check=crc32 $tmpdir/boot/core.img
 cp -a ./tool $tmpdir/
 rm -f $tmpdir/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
 cp -a Ventoy2Disk.sh $tmpdir/
+cp -a README $tmpdir/
 cp -a CreatePersistentImg.sh $tmpdir/
 dos2unix -q $tmpdir/Ventoy2Disk.sh
 dos2unix -q $tmpdir/CreatePersistentImg.sh
@@ -109,6 +110,7 @@ cp -a Ventoy2Disk*.exe $tmpdir/
 cp -a $LANG_DIR/languages.ini $tmpdir/ventoy/
 rm -rf $tmpdir/tool
 rm -f $tmpdir/*.sh
+rm -f $tmpdir/README
 
 
 zip -r ventoy-${curver}-windows.zip $tmpdir/
index ee1445afe3c07ca44be71064480b1be93cece130..86bc100a117a2f105ae0da3338b2771f663bbd48 100644 (file)
Binary files a/LANGUAGES/languages.ini and b/LANGUAGES/languages.ini differ
diff --git a/License/lgpl-3.0.txt b/License/lgpl-3.0.txt
new file mode 100644 (file)
index 0000000..80d241e
--- /dev/null
@@ -0,0 +1,165 @@
+                   GNU LESSER GENERAL PUBLIC LICENSE\r
+                       Version 3, 29 June 2007\r
+\r
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+\r
+  This version of the GNU Lesser General Public License incorporates\r
+the terms and conditions of version 3 of the GNU General Public\r
+License, supplemented by the additional permissions listed below.\r
+\r
+  0. Additional Definitions.\r
+\r
+  As used herein, "this License" refers to version 3 of the GNU Lesser\r
+General Public License, and the "GNU GPL" refers to version 3 of the GNU\r
+General Public License.\r
+\r
+  "The Library" refers to a covered work governed by this License,\r
+other than an Application or a Combined Work as defined below.\r
+\r
+  An "Application" is any work that makes use of an interface provided\r
+by the Library, but which is not otherwise based on the Library.\r
+Defining a subclass of a class defined by the Library is deemed a mode\r
+of using an interface provided by the Library.\r
+\r
+  A "Combined Work" is a work produced by combining or linking an\r
+Application with the Library.  The particular version of the Library\r
+with which the Combined Work was made is also called the "Linked\r
+Version".\r
+\r
+  The "Minimal Corresponding Source" for a Combined Work means the\r
+Corresponding Source for the Combined Work, excluding any source code\r
+for portions of the Combined Work that, considered in isolation, are\r
+based on the Application, and not on the Linked Version.\r
+\r
+  The "Corresponding Application Code" for a Combined Work means the\r
+object code and/or source code for the Application, including any data\r
+and utility programs needed for reproducing the Combined Work from the\r
+Application, but excluding the System Libraries of the Combined Work.\r
+\r
+  1. Exception to Section 3 of the GNU GPL.\r
+\r
+  You may convey a covered work under sections 3 and 4 of this License\r
+without being bound by section 3 of the GNU GPL.\r
+\r
+  2. Conveying Modified Versions.\r
+\r
+  If you modify a copy of the Library, and, in your modifications, a\r
+facility refers to a function or data to be supplied by an Application\r
+that uses the facility (other than as an argument passed when the\r
+facility is invoked), then you may convey a copy of the modified\r
+version:\r
+\r
+   a) under this License, provided that you make a good faith effort to\r
+   ensure that, in the event an Application does not supply the\r
+   function or data, the facility still operates, and performs\r
+   whatever part of its purpose remains meaningful, or\r
+\r
+   b) under the GNU GPL, with none of the additional permissions of\r
+   this License applicable to that copy.\r
+\r
+  3. Object Code Incorporating Material from Library Header Files.\r
+\r
+  The object code form of an Application may incorporate material from\r
+a header file that is part of the Library.  You may convey such object\r
+code under terms of your choice, provided that, if the incorporated\r
+material is not limited to numerical parameters, data structure\r
+layouts and accessors, or small macros, inline functions and templates\r
+(ten or fewer lines in length), you do both of the following:\r
+\r
+   a) Give prominent notice with each copy of the object code that the\r
+   Library is used in it and that the Library and its use are\r
+   covered by this License.\r
+\r
+   b) Accompany the object code with a copy of the GNU GPL and this license\r
+   document.\r
+\r
+  4. Combined Works.\r
+\r
+  You may convey a Combined Work under terms of your choice that,\r
+taken together, effectively do not restrict modification of the\r
+portions of the Library contained in the Combined Work and reverse\r
+engineering for debugging such modifications, if you also do each of\r
+the following:\r
+\r
+   a) Give prominent notice with each copy of the Combined Work that\r
+   the Library is used in it and that the Library and its use are\r
+   covered by this License.\r
+\r
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license\r
+   document.\r
+\r
+   c) For a Combined Work that displays copyright notices during\r
+   execution, include the copyright notice for the Library among\r
+   these notices, as well as a reference directing the user to the\r
+   copies of the GNU GPL and this license document.\r
+\r
+   d) Do one of the following:\r
+\r
+       0) Convey the Minimal Corresponding Source under the terms of this\r
+       License, and the Corresponding Application Code in a form\r
+       suitable for, and under terms that permit, the user to\r
+       recombine or relink the Application with a modified version of\r
+       the Linked Version to produce a modified Combined Work, in the\r
+       manner specified by section 6 of the GNU GPL for conveying\r
+       Corresponding Source.\r
+\r
+       1) Use a suitable shared library mechanism for linking with the\r
+       Library.  A suitable mechanism is one that (a) uses at run time\r
+       a copy of the Library already present on the user's computer\r
+       system, and (b) will operate properly with a modified version\r
+       of the Library that is interface-compatible with the Linked\r
+       Version.\r
+\r
+   e) Provide Installation Information, but only if you would otherwise\r
+   be required to provide such information under section 6 of the\r
+   GNU GPL, and only to the extent that such information is\r
+   necessary to install and execute a modified version of the\r
+   Combined Work produced by recombining or relinking the\r
+   Application with a modified version of the Linked Version. (If\r
+   you use option 4d0, the Installation Information must accompany\r
+   the Minimal Corresponding Source and Corresponding Application\r
+   Code. If you use option 4d1, you must provide the Installation\r
+   Information in the manner specified by section 6 of the GNU GPL\r
+   for conveying Corresponding Source.)\r
+\r
+  5. Combined Libraries.\r
+\r
+  You may place library facilities that are a work based on the\r
+Library side by side in a single library together with other library\r
+facilities that are not Applications and are not covered by this\r
+License, and convey such a combined library under terms of your\r
+choice, if you do both of the following:\r
+\r
+   a) Accompany the combined library with a copy of the same work based\r
+   on the Library, uncombined with any other library facilities,\r
+   conveyed under the terms of this License.\r
+\r
+   b) Give prominent notice with the combined library that part of it\r
+   is a work based on the Library, and explaining where to find the\r
+   accompanying uncombined form of the same work.\r
+\r
+  6. Revised Versions of the GNU Lesser General Public License.\r
+\r
+  The Free Software Foundation may publish revised and/or new versions\r
+of the GNU Lesser General Public License from time to time. Such new\r
+versions will be similar in spirit to the present version, but may\r
+differ in detail to address new problems or concerns.\r
+\r
+  Each version is given a distinguishing version number. If the\r
+Library as you received it specifies that a certain numbered version\r
+of the GNU Lesser General Public License "or any later version"\r
+applies to it, you have the option of following the terms and\r
+conditions either of that published version or of any later version\r
+published by the Free Software Foundation. If the Library as you\r
+received it does not specify a version number of the GNU Lesser\r
+General Public License, you may choose any version of the GNU Lesser\r
+General Public License ever published by the Free Software Foundation.\r
+\r
+  If the Library as you received it specifies that a proxy can decide\r
+whether future versions of the GNU Lesser General Public License shall\r
+apply, that proxy's public statement of acceptance of any version is\r
+permanent authorization for you to choose that version for the\r
+Library.
\ No newline at end of file
diff --git a/License/license-7z.txt b/License/license-7z.txt
new file mode 100644 (file)
index 0000000..41cc032
--- /dev/null
@@ -0,0 +1,37 @@
+      \r
+imdisk follows LGPL license (see lgpl-3.0.txt)\r
+\r
+Ventoy only use its binaries 7za.exe\r
+      \r
+========7zip License Information===============      \r
+      7-Zip Extra\r
+      ~~~~~~~~~~~\r
+      License for use and distribution\r
+      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+\r
+      Copyright (C) 1999-2019 Igor Pavlov.\r
+\r
+      7-Zip Extra files are under the GNU LGPL license.\r
+\r
+      \r
+      Notes: \r
+        You can use 7-Zip Extra on any computer, including a computer in a commercial \r
+        organization. You don't need to register or pay for 7-Zip.\r
+\r
+\r
+      GNU LGPL information\r
+      --------------------\r
+\r
+        This library is free software; you can redistribute it and/or\r
+        modify it under the terms of the GNU Lesser General Public\r
+        License as published by the Free Software Foundation; either\r
+        version 2.1 of the License, or (at your option) any later version.\r
+\r
+        This library is distributed in the hope that it will be useful,\r
+        but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+        Lesser General Public License for more details.\r
+\r
+        You can receive a copy of the GNU Lesser General Public License from \r
+        http://www.gnu.org/\r
+\r
index 2dc33f182c4513d63a6be5c3b5126977d5dfd2b0..2820cb0f9214d1e1bfd35127f71ffed81f7a8cdd 100644 (file)
-/******************************************************************************
- * Ventoy2Disk.c
- *
- * Copyright (c) 2020, longpanda <admin@ventoy.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#include <Windows.h>
-#include "resource.h"
-#include "Language.h"
-#include "Ventoy2Disk.h"
-
-PHY_DRIVE_INFO *g_PhyDriveList = NULL;
-DWORD g_PhyDriveCount = 0;
-static int g_FilterRemovable = 0;
-static int g_FilterUSB = 1;
-int g_ForceOperation = 1;
-
-int ParseCmdLineOption(LPSTR lpCmdLine)
-{
-    int i;
-    char cfgfile[MAX_PATH];
-
-    if (lpCmdLine && lpCmdLine[0])
-    {
-        Log("CmdLine:<%s>", lpCmdLine);
-    }
-
-    for (i = 0; i < __argc; i++)
-    {
-        if (strncmp(__argv[i], "-U", 2) == 0 ||
-                       strncmp(__argv[i], "-u", 2) == 0)
-        {
-            g_FilterUSB = 0;
-        }
-        else if (strncmp(__argv[i], "-F", 2) == 0)
-        {
-            g_ForceOperation = 1;
-        }
-    }
-
-    GetCurrentDirectoryA(sizeof(cfgfile), cfgfile);
-    strcat_s(cfgfile, sizeof(cfgfile), "\\Ventoy2Disk.ini");
-
-    if (0 == GetPrivateProfileIntA("Filter", "USB", 1, cfgfile))
-    {
-        g_FilterUSB = 0;
-    }
-
-    if (1 == GetPrivateProfileIntA("Operation", "Force", 0, cfgfile))
-    {
-        g_ForceOperation = 1;
-    }
-
-    Log("Control Flag: %d %d %d", g_FilterRemovable, g_FilterUSB, g_ForceOperation);
-
-    return 0;
-}
-
-static BOOL IsVentoyPhyDrive(int PhyDrive, UINT64 SizeBytes, MBR_HEAD *pMBR, UINT64 *Part2StartSector)
-{
-    int i;
-    BOOL bRet;
-    DWORD dwSize;
-    HANDLE hDrive;
-    MBR_HEAD MBR;
-    UINT32 PartStartSector;
-    UINT32 PartSectorCount;
-    CHAR PhyDrivePath[128];
-       VTOY_GPT_INFO *pGpt = NULL;
-
-    safe_sprintf(PhyDrivePath, "\\\\.\\PhysicalDrive%d", PhyDrive);
-    hDrive = CreateFileA(PhyDrivePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
-    Log("Create file Handle:%p %s status:%u", hDrive, PhyDrivePath, LASTERR);
-
-    if (hDrive == INVALID_HANDLE_VALUE)
-    {
-        return FALSE;
-    }
-
-       bRet = ReadFile(hDrive, &MBR, sizeof(MBR), &dwSize, NULL);
-       Log("Read MBR Ret:%u Size:%u code:%u", bRet, dwSize, LASTERR);
-
-    if ((!bRet) || (dwSize != sizeof(MBR)))
-    {
-               CHECK_CLOSE_HANDLE(hDrive);
-        return FALSE;
-    }
-
-    if (MBR.Byte55 != 0x55 || MBR.ByteAA != 0xAA)
-    {
-        Log("Byte55 ByteAA not match 0x%x 0x%x", MBR.Byte55, MBR.ByteAA);
-               CHECK_CLOSE_HANDLE(hDrive);
-        return FALSE;
-    }
-
-       for (i = 0; i < 4; i++)
-       {
-               Log("=========== Partition Table %d ============", i + 1);
-               Log("PartTbl.Active = 0x%x", MBR.PartTbl[i].Active);
-               Log("PartTbl.FsFlag = 0x%x", MBR.PartTbl[i].FsFlag);
-               Log("PartTbl.StartSectorId = %u", MBR.PartTbl[i].StartSectorId);
-               Log("PartTbl.SectorCount = %u", MBR.PartTbl[i].SectorCount);
-               Log("PartTbl.StartHead = %u", MBR.PartTbl[i].StartHead);
-               Log("PartTbl.StartSector = %u", MBR.PartTbl[i].StartSector);
-               Log("PartTbl.StartCylinder = %u", MBR.PartTbl[i].StartCylinder);
-               Log("PartTbl.EndHead = %u", MBR.PartTbl[i].EndHead);
-               Log("PartTbl.EndSector = %u", MBR.PartTbl[i].EndSector);
-               Log("PartTbl.EndCylinder = %u", MBR.PartTbl[i].EndCylinder);
-       }
-
-       if (MBR.PartTbl[0].FsFlag == 0xEE)
-       {
-               pGpt = malloc(sizeof(VTOY_GPT_INFO));
-               if (!pGpt)
-               {
-                       CHECK_CLOSE_HANDLE(hDrive);
-                       return FALSE;
-               }
-
-               SetFilePointer(hDrive, 0, NULL, FILE_BEGIN);
-               bRet = ReadFile(hDrive, pGpt, sizeof(VTOY_GPT_INFO), &dwSize, NULL);
-               CHECK_CLOSE_HANDLE(hDrive);
-               if ((!bRet) || (dwSize != sizeof(VTOY_GPT_INFO)))
-               {
-                       Log("Failed to read gpt info %d %u %d", bRet, dwSize, LASTERR);
-                       return FALSE;
-               }
-
-               if (memcmp(pGpt->Head.Signature, "EFI PART", 8))
-               {
-                       Log("Invalid GPT signature");
-                       return FALSE;
-               }
-
-               if (memcmp(pGpt->PartTbl[1].Name, L"VTOYEFI", 7 * 2))
-               {
-                       Log("Invalid ventoy efi part name");
-                       return FALSE;
-               }
-
-               *Part2StartSector = pGpt->PartTbl[1].StartLBA;
-       }
-       else
-       {
-               CHECK_CLOSE_HANDLE(hDrive);
-
-               if (MBR.PartTbl[0].StartSectorId != 2048)
-               {
-                       Log("Part1 not match %u", MBR.PartTbl[0].StartSectorId);
-                       return FALSE;
-               }
-
-               PartStartSector = MBR.PartTbl[0].StartSectorId + MBR.PartTbl[0].SectorCount;
-               PartSectorCount = VENTOY_EFI_PART_SIZE / 512;
-
-               if (MBR.PartTbl[1].FsFlag != 0xEF ||
-                       MBR.PartTbl[1].StartSectorId != PartStartSector ||
-                       MBR.PartTbl[1].SectorCount != PartSectorCount)
-               {
-                       Log("Part2 not match [0x%x 0x%x] [%u %u] [%u %u]",
-                               MBR.PartTbl[1].FsFlag, 0xEF,
-                               MBR.PartTbl[1].StartSectorId, PartStartSector,
-                               MBR.PartTbl[1].SectorCount, PartSectorCount);
-                       return FALSE;
-               }
-
-               if (MBR.PartTbl[0].Active != 0x80 && MBR.PartTbl[1].Active != 0x80)
-               {
-                       Log("Part1 and Part2 are both NOT active 0x%x 0x%x", MBR.PartTbl[0].Active, MBR.PartTbl[1].Active);
-                       return FALSE;
-               }
-
-               *Part2StartSector = MBR.PartTbl[1].StartSectorId;
-       }
-
-       memcpy(pMBR, &MBR, sizeof(MBR_HEAD));
-    Log("PhysicalDrive%d is ventoy disk", PhyDrive);
-    return TRUE;
-}
-
-
-static int FilterPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount)
-{
-    DWORD i; 
-    DWORD LogDrive;
-    int Letter = 'A';
-    int Id = 0;
-    int LetterCount = 0;
-       UINT64 Part2StartSector = 0;
-    PHY_DRIVE_INFO *CurDrive;
-       MBR_HEAD MBR;
-    int LogLetter[VENTOY_MAX_PHY_DRIVE];
-    int PhyDriveId[VENTOY_MAX_PHY_DRIVE];
-
-    for (LogDrive = GetLogicalDrives(); LogDrive > 0; LogDrive >>= 1)
-    {
-        if (LogDrive & 0x01)
-        {
-            LogLetter[LetterCount] = Letter;
-            PhyDriveId[LetterCount] = GetPhyDriveByLogicalDrive(Letter);
-
-            Log("Logical Drive:%C  ===> PhyDrive:%d", LogLetter[LetterCount], PhyDriveId[LetterCount]);
-            LetterCount++;
-        }
-        
-        Letter++;
-    }    
-
-    for (i = 0; i < DriveCount; i++)
-    {
-        CurDrive = pDriveList + i;
-
-        CurDrive->Id = -1;
-        CurDrive->FirstDriveLetter = -1;
-
-        // Too big for MBR
-        if (CurDrive->SizeInBytes > 2199023255552ULL)
-        {
-            Log("<%s %s> is filtered for too big for MBR.", CurDrive->VendorId, CurDrive->ProductId);
-            continue;
-        }
-
-        if (g_FilterRemovable && (!CurDrive->RemovableMedia))
-        {
-            Log("<%s %s> is filtered for not removable.", CurDrive->VendorId, CurDrive->ProductId);
-            continue;
-        }
-
-        if (g_FilterUSB && CurDrive->BusType != BusTypeUsb)
-        {
-            Log("<%s %s> is filtered for not USB type.", CurDrive->VendorId, CurDrive->ProductId);
-            continue;
-        }
-        
-        CurDrive->Id = Id++;
-
-        for (Letter = 0; Letter < LetterCount; Letter++)
-        {
-            if (PhyDriveId[Letter] == CurDrive->PhyDrive)
-            {
-                CurDrive->FirstDriveLetter = LogLetter[Letter];
-                break;
-            }
-        }
-
-               if (IsVentoyPhyDrive(CurDrive->PhyDrive, CurDrive->SizeInBytes, &MBR, &Part2StartSector))
-        {
-            CurDrive->PartStyle = (MBR.PartTbl[0].FsFlag == 0xEE) ? 1 : 0;
-                       GetVentoyVerInPhyDrive(CurDrive, Part2StartSector, CurDrive->VentoyVersion, sizeof(CurDrive->VentoyVersion));
-        }
-    }
-
-    // for safe
-    for (i = 0; i < DriveCount; i++)
-    {
-        CurDrive = pDriveList + i;
-        if (CurDrive->Id < 0)
-        {
-            CurDrive->PhyDrive = 0x00FFFFFF;
-        }
-    }
-
-    return Id;
-}
-
-PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id)
-{
-    DWORD i;
-    for (i = 0; i < g_PhyDriveCount; i++)
-    {
-        if (g_PhyDriveList[i].Id >= 0 && g_PhyDriveList[i].Id == Id)
-        {
-            return g_PhyDriveList + i;
-        }
-    }
-
-    return NULL;
-}
-
-int SortPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount)
-{
-       DWORD i, j;
-       PHY_DRIVE_INFO TmpDriveInfo;
-
-       for (i = 0; i < DriveCount; i++)
-       {
-               for (j = i + 1; j < DriveCount; j++)
-               {
-                       if (pDriveList[i].BusType == BusTypeUsb && pDriveList[j].BusType == BusTypeUsb)
-                       {
-                               if (pDriveList[i].RemovableMedia == FALSE && pDriveList[j].RemovableMedia == TRUE)
-                               {
-                                       memcpy(&TmpDriveInfo, pDriveList + i, sizeof(PHY_DRIVE_INFO));
-                                       memcpy(pDriveList + i, pDriveList + j, sizeof(PHY_DRIVE_INFO));
-                                       memcpy(pDriveList + j, &TmpDriveInfo, sizeof(PHY_DRIVE_INFO));
-                               }
-                       }
-               }
-       }
-
-       return 0;
-}
-
-int Ventoy2DiskInit(void)
-{
-    Log("\n===================== Enum All PhyDrives =====================");
-    g_PhyDriveList = (PHY_DRIVE_INFO *)malloc(sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);
-    if (NULL == g_PhyDriveList)
-    {
-        Log("Failed to alloc phy drive memory");
-        return FALSE;
-    }
-    memset(g_PhyDriveList, 0, sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);
-
-    GetAllPhysicalDriveInfo(g_PhyDriveList, &g_PhyDriveCount);
-
-       SortPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);
-
-    FilterPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);
-
-    return 0;
-}
-
-int Ventoy2DiskDestroy(void)
-{
-    free(g_PhyDriveList);
-    return 0;
-}
+/******************************************************************************\r
+ * Ventoy2Disk.c\r
+ *\r
+ * Copyright (c) 2020, longpanda <admin@ventoy.net>\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License as\r
+ * published by the Free Software Foundation; either version 3 of the\r
+ * License, or (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ * General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.\r
+ *\r
+ */\r
+\r
+#include <Windows.h>\r
+#include "resource.h"\r
+#include "Language.h"\r
+#include "Ventoy2Disk.h"\r
+\r
+PHY_DRIVE_INFO *g_PhyDriveList = NULL;\r
+DWORD g_PhyDriveCount = 0;\r
+static int g_FilterRemovable = 0;\r
+static int g_FilterUSB = 1;\r
+int g_ForceOperation = 1;\r
+\r
+int ParseCmdLineOption(LPSTR lpCmdLine)\r
+{\r
+    int i;\r
+    char cfgfile[MAX_PATH];\r
+\r
+    if (lpCmdLine && lpCmdLine[0])\r
+    {\r
+        Log("CmdLine:<%s>", lpCmdLine);\r
+    }\r
+\r
+    for (i = 0; i < __argc; i++)\r
+    {\r
+        if (strncmp(__argv[i], "-U", 2) == 0 ||\r
+                       strncmp(__argv[i], "-u", 2) == 0)\r
+        {\r
+            g_FilterUSB = 0;\r
+        }\r
+        else if (strncmp(__argv[i], "-F", 2) == 0)\r
+        {\r
+            g_ForceOperation = 1;\r
+        }\r
+    }\r
+\r
+    GetCurrentDirectoryA(sizeof(cfgfile), cfgfile);\r
+    strcat_s(cfgfile, sizeof(cfgfile), "\\Ventoy2Disk.ini");\r
+\r
+    if (0 == GetPrivateProfileIntA("Filter", "USB", 1, cfgfile))\r
+    {\r
+        g_FilterUSB = 0;\r
+    }\r
+\r
+    if (1 == GetPrivateProfileIntA("Operation", "Force", 0, cfgfile))\r
+    {\r
+        g_ForceOperation = 1;\r
+    }\r
+\r
+    Log("Control Flag: %d %d %d", g_FilterRemovable, g_FilterUSB, g_ForceOperation);\r
+\r
+    return 0;\r
+}\r
+\r
+static BOOL IsVentoyPhyDrive(int PhyDrive, UINT64 SizeBytes, MBR_HEAD *pMBR, UINT64 *Part2StartSector)\r
+{\r
+    int i;\r
+    BOOL bRet;\r
+    DWORD dwSize;\r
+    HANDLE hDrive;\r
+    MBR_HEAD MBR;\r
+    UINT32 PartStartSector;\r
+    UINT32 PartSectorCount;\r
+    CHAR PhyDrivePath[128];\r
+       VTOY_GPT_INFO *pGpt = NULL;\r
+\r
+    safe_sprintf(PhyDrivePath, "\\\\.\\PhysicalDrive%d", PhyDrive);\r
+    hDrive = CreateFileA(PhyDrivePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);\r
+    Log("Create file Handle:%p %s status:%u", hDrive, PhyDrivePath, LASTERR);\r
+\r
+    if (hDrive == INVALID_HANDLE_VALUE)\r
+    {\r
+        return FALSE;\r
+    }\r
+\r
+       bRet = ReadFile(hDrive, &MBR, sizeof(MBR), &dwSize, NULL);\r
+       Log("Read MBR Ret:%u Size:%u code:%u", bRet, dwSize, LASTERR);\r
+\r
+    if ((!bRet) || (dwSize != sizeof(MBR)))\r
+    {\r
+               CHECK_CLOSE_HANDLE(hDrive);\r
+        return FALSE;\r
+    }\r
+\r
+    if (MBR.Byte55 != 0x55 || MBR.ByteAA != 0xAA)\r
+    {\r
+        Log("Byte55 ByteAA not match 0x%x 0x%x", MBR.Byte55, MBR.ByteAA);\r
+               CHECK_CLOSE_HANDLE(hDrive);\r
+        return FALSE;\r
+    }\r
+\r
+       for (i = 0; i < 4; i++)\r
+       {\r
+               Log("=========== Partition Table %d ============", i + 1);\r
+               Log("PartTbl.Active = 0x%x", MBR.PartTbl[i].Active);\r
+               Log("PartTbl.FsFlag = 0x%x", MBR.PartTbl[i].FsFlag);\r
+               Log("PartTbl.StartSectorId = %u", MBR.PartTbl[i].StartSectorId);\r
+               Log("PartTbl.SectorCount = %u", MBR.PartTbl[i].SectorCount);\r
+               Log("PartTbl.StartHead = %u", MBR.PartTbl[i].StartHead);\r
+               Log("PartTbl.StartSector = %u", MBR.PartTbl[i].StartSector);\r
+               Log("PartTbl.StartCylinder = %u", MBR.PartTbl[i].StartCylinder);\r
+               Log("PartTbl.EndHead = %u", MBR.PartTbl[i].EndHead);\r
+               Log("PartTbl.EndSector = %u", MBR.PartTbl[i].EndSector);\r
+               Log("PartTbl.EndCylinder = %u", MBR.PartTbl[i].EndCylinder);\r
+       }\r
+\r
+       if (MBR.PartTbl[0].FsFlag == 0xEE)\r
+       {\r
+               pGpt = malloc(sizeof(VTOY_GPT_INFO));\r
+               if (!pGpt)\r
+               {\r
+                       CHECK_CLOSE_HANDLE(hDrive);\r
+                       return FALSE;\r
+               }\r
+\r
+               SetFilePointer(hDrive, 0, NULL, FILE_BEGIN);\r
+               bRet = ReadFile(hDrive, pGpt, sizeof(VTOY_GPT_INFO), &dwSize, NULL);\r
+               CHECK_CLOSE_HANDLE(hDrive);\r
+               if ((!bRet) || (dwSize != sizeof(VTOY_GPT_INFO)))\r
+               {\r
+                       Log("Failed to read gpt info %d %u %d", bRet, dwSize, LASTERR);\r
+                       return FALSE;\r
+               }\r
+\r
+               if (memcmp(pGpt->Head.Signature, "EFI PART", 8))\r
+               {\r
+                       Log("Invalid GPT signature");\r
+                       return FALSE;\r
+               }\r
+\r
+               if (memcmp(pGpt->PartTbl[1].Name, L"VTOYEFI", 7 * 2))\r
+               {\r
+                       Log("Invalid ventoy efi part name");\r
+                       return FALSE;\r
+               }\r
+\r
+               *Part2StartSector = pGpt->PartTbl[1].StartLBA;\r
+       }\r
+       else\r
+       {\r
+               CHECK_CLOSE_HANDLE(hDrive);\r
+\r
+               if (MBR.PartTbl[0].StartSectorId != 2048)\r
+               {\r
+                       Log("Part1 not match %u", MBR.PartTbl[0].StartSectorId);\r
+                       return FALSE;\r
+               }\r
+\r
+               PartStartSector = MBR.PartTbl[0].StartSectorId + MBR.PartTbl[0].SectorCount;\r
+               PartSectorCount = VENTOY_EFI_PART_SIZE / 512;\r
+\r
+               if (MBR.PartTbl[1].FsFlag != 0xEF ||\r
+                       MBR.PartTbl[1].StartSectorId != PartStartSector ||\r
+                       MBR.PartTbl[1].SectorCount != PartSectorCount)\r
+               {\r
+                       Log("Part2 not match [0x%x 0x%x] [%u %u] [%u %u]",\r
+                               MBR.PartTbl[1].FsFlag, 0xEF,\r
+                               MBR.PartTbl[1].StartSectorId, PartStartSector,\r
+                               MBR.PartTbl[1].SectorCount, PartSectorCount);\r
+                       return FALSE;\r
+               }\r
+\r
+               if (MBR.PartTbl[0].Active != 0x80 && MBR.PartTbl[1].Active != 0x80)\r
+               {\r
+                       Log("Part1 and Part2 are both NOT active 0x%x 0x%x", MBR.PartTbl[0].Active, MBR.PartTbl[1].Active);\r
+                       return FALSE;\r
+               }\r
+\r
+               *Part2StartSector = MBR.PartTbl[1].StartSectorId;\r
+       }\r
+\r
+       memcpy(pMBR, &MBR, sizeof(MBR_HEAD));\r
+    Log("PhysicalDrive%d is ventoy disk", PhyDrive);\r
+    return TRUE;\r
+}\r
+\r
+\r
+static int FilterPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount)\r
+{\r
+    DWORD i; \r
+    DWORD LogDrive;\r
+    int Count = 0;\r
+    int Letter = 'A';\r
+    int Id = 0;\r
+    int LetterCount = 0;\r
+       UINT64 Part2StartSector = 0;\r
+    PHY_DRIVE_INFO *CurDrive;\r
+       MBR_HEAD MBR;\r
+    int LogLetter[VENTOY_MAX_PHY_DRIVE];\r
+    int PhyDriveId[VENTOY_MAX_PHY_DRIVE];\r
+\r
+    for (LogDrive = GetLogicalDrives(); LogDrive > 0; LogDrive >>= 1)\r
+    {\r
+        if (LogDrive & 0x01)\r
+        {\r
+            LogLetter[LetterCount] = Letter;\r
+            PhyDriveId[LetterCount] = GetPhyDriveByLogicalDrive(Letter);\r
+\r
+            Log("Logical Drive:%C  ===> PhyDrive:%d", LogLetter[LetterCount], PhyDriveId[LetterCount]);\r
+            LetterCount++;\r
+        }\r
+        \r
+        Letter++;\r
+    }    \r
+\r
+    for (i = 0; i < DriveCount; i++)\r
+    {\r
+        CurDrive = pDriveList + i;\r
+\r
+        CurDrive->Id = -1;\r
+        memset(CurDrive->DriveLetters, 0, sizeof(CurDrive->DriveLetters));\r
+\r
+        // Too big for MBR\r
+        if (CurDrive->SizeInBytes > 2199023255552ULL)\r
+        {\r
+            Log("<%s %s> is filtered for too big for MBR.", CurDrive->VendorId, CurDrive->ProductId);\r
+            continue;\r
+        }\r
+\r
+        if (g_FilterRemovable && (!CurDrive->RemovableMedia))\r
+        {\r
+            Log("<%s %s> is filtered for not removable.", CurDrive->VendorId, CurDrive->ProductId);\r
+            continue;\r
+        }\r
+\r
+        if (g_FilterUSB && CurDrive->BusType != BusTypeUsb)\r
+        {\r
+            Log("<%s %s> is filtered for not USB type.", CurDrive->VendorId, CurDrive->ProductId);\r
+            continue;\r
+        }\r
+        \r
+        CurDrive->Id = Id++;\r
+\r
+        for (Count = 0, Letter = 0; Letter < LetterCount; Letter++)\r
+        {\r
+            if (PhyDriveId[Letter] == CurDrive->PhyDrive)\r
+            {\r
+                if (Count + 1 < sizeof(CurDrive->DriveLetters) / sizeof(CHAR))\r
+                {\r
+                    CurDrive->DriveLetters[Count] = LogLetter[Letter];\r
+                }\r
+                Count++;\r
+            }\r
+        }\r
+\r
+               if (IsVentoyPhyDrive(CurDrive->PhyDrive, CurDrive->SizeInBytes, &MBR, &Part2StartSector))\r
+        {\r
+            CurDrive->PartStyle = (MBR.PartTbl[0].FsFlag == 0xEE) ? 1 : 0;\r
+                       GetVentoyVerInPhyDrive(CurDrive, Part2StartSector, CurDrive->VentoyVersion, sizeof(CurDrive->VentoyVersion));\r
+        }\r
+    }\r
+\r
+    // for safe\r
+    for (i = 0; i < DriveCount; i++)\r
+    {\r
+        CurDrive = pDriveList + i;\r
+        if (CurDrive->Id < 0)\r
+        {\r
+            CurDrive->PhyDrive = 0x00FFFFFF;\r
+        }\r
+    }\r
+\r
+    return Id;\r
+}\r
+\r
+PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id)\r
+{\r
+    DWORD i;\r
+    for (i = 0; i < g_PhyDriveCount; i++)\r
+    {\r
+        if (g_PhyDriveList[i].Id >= 0 && g_PhyDriveList[i].Id == Id)\r
+        {\r
+            return g_PhyDriveList + i;\r
+        }\r
+    }\r
+\r
+    return NULL;\r
+}\r
+\r
+int SortPhysicalDrive(PHY_DRIVE_INFO *pDriveList, DWORD DriveCount)\r
+{\r
+       DWORD i, j;\r
+       PHY_DRIVE_INFO TmpDriveInfo;\r
+\r
+       for (i = 0; i < DriveCount; i++)\r
+       {\r
+               for (j = i + 1; j < DriveCount; j++)\r
+               {\r
+                       if (pDriveList[i].BusType == BusTypeUsb && pDriveList[j].BusType == BusTypeUsb)\r
+                       {\r
+                               if (pDriveList[i].RemovableMedia == FALSE && pDriveList[j].RemovableMedia == TRUE)\r
+                               {\r
+                                       memcpy(&TmpDriveInfo, pDriveList + i, sizeof(PHY_DRIVE_INFO));\r
+                                       memcpy(pDriveList + i, pDriveList + j, sizeof(PHY_DRIVE_INFO));\r
+                                       memcpy(pDriveList + j, &TmpDriveInfo, sizeof(PHY_DRIVE_INFO));\r
+                               }\r
+                       }\r
+               }\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+int Ventoy2DiskInit(void)\r
+{\r
+    Log("\n===================== Enum All PhyDrives =====================");\r
+    g_PhyDriveList = (PHY_DRIVE_INFO *)malloc(sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);\r
+    if (NULL == g_PhyDriveList)\r
+    {\r
+        Log("Failed to alloc phy drive memory");\r
+        return FALSE;\r
+    }\r
+    memset(g_PhyDriveList, 0, sizeof(PHY_DRIVE_INFO)* VENTOY_MAX_PHY_DRIVE);\r
+\r
+    GetAllPhysicalDriveInfo(g_PhyDriveList, &g_PhyDriveCount);\r
+\r
+       SortPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);\r
+\r
+    FilterPhysicalDrive(g_PhyDriveList, g_PhyDriveCount);\r
+\r
+    return 0;\r
+}\r
+\r
+int Ventoy2DiskDestroy(void)\r
+{\r
+    free(g_PhyDriveList);\r
+    return 0;\r
+}\r
index f305ea03caadeeec33cf58478d4f6640caf4260b..61566bf813b1642e76221d1131e2c3e3c4ddea71 100644 (file)
-/******************************************************************************
- * Ventoy2Disk.h
- *
- * Copyright (c) 2020, longpanda <admin@ventoy.net>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef __VENTOY2DISK_H__
-#define __VENTOY2DISK_H__
-
-#include <stdio.h>
-
-#define SIZE_1MB                    (1024 * 1024)
-#define VENTOY_EFI_PART_SIZE       (32 * SIZE_1MB)
-#define VENTOY_PART1_START_SECTOR    2048
-
-#define VENTOY_FILE_BOOT_IMG    "boot\\boot.img"
-#define VENTOY_FILE_STG1_IMG    "boot\\core.img.xz"
-#define VENTOY_FILE_DISK_IMG    "ventoy\\ventoy.disk.img.xz"
-#define VENTOY_FILE_LOG         "log.txt"
-#define VENTOY_FILE_VERSION     "ventoy\\version"
-
-#define DRIVE_ACCESS_TIMEOUT        15000              // How long we should retry drive access (in ms)
-#define DRIVE_ACCESS_RETRIES        150                        // How many times we should retry
-
-#define IsFileExist(Fmt, ...) IsPathExist(FALSE, Fmt, __VA_ARGS__)
-#define IsDirExist(Fmt, ...)  IsPathExist(TRUE, Fmt, __VA_ARGS__)
-
-#define safe_sprintf(dst, fmt, ...) sprintf_s(dst, sizeof(dst), fmt, __VA_ARGS__)
-#define safe_strcpy(dst, src)  strcpy_s(dst, sizeof(dst), src)
-
-#define CHECK_CLOSE_HANDLE(Handle) \
-{\
-    if (Handle != INVALID_HANDLE_VALUE) \
-    {\
-        CloseHandle(Handle); \
-        Handle = INVALID_HANDLE_VALUE; \
-    }\
-}
-
-#define LASTERR     GetLastError()
-
-#pragma pack(1)
-typedef struct PART_TABLE
-{
-    UINT8  Active; // 0x00  0x80
-
-    UINT8  StartHead;
-    UINT16 StartSector : 6;
-    UINT16 StartCylinder : 10;
-
-    UINT8  FsFlag;
-
-    UINT8  EndHead;
-    UINT16 EndSector : 6;
-    UINT16 EndCylinder : 10;
-
-    UINT32 StartSectorId;
-    UINT32 SectorCount;
-}PART_TABLE;
-
-typedef struct MBR_HEAD
-{
-    UINT8 BootCode[446];
-    PART_TABLE PartTbl[4];
-    UINT8 Byte55;
-    UINT8 ByteAA;
-}MBR_HEAD;
-
-typedef struct VTOY_GPT_HDR
-{
-    CHAR   Signature[8]; /* EFI PART */
-    UINT8  Version[4];
-    UINT32 Length;
-    UINT32 Crc;
-    UINT8  Reserved1[4];
-    UINT64 EfiStartLBA;
-    UINT64 EfiBackupLBA;
-    UINT64 PartAreaStartLBA;
-    UINT64 PartAreaEndLBA;
-    GUID   DiskGuid;
-    UINT64 PartTblStartLBA;
-    UINT32 PartTblTotNum;
-    UINT32 PartTblEntryLen;
-    UINT32 PartTblCrc;
-    UINT8  Reserved2[420];
-}VTOY_GPT_HDR;
-
-typedef struct VTOY_GPT_PART_TBL
-{
-    GUID   PartType;
-    GUID   PartGuid;
-    UINT64 StartLBA;
-    UINT64 LastLBA;
-    UINT64 Attr;
-    UINT16 Name[36];
-}VTOY_GPT_PART_TBL;
-
-typedef struct VTOY_GPT_INFO
-{
-    MBR_HEAD MBR;
-    VTOY_GPT_HDR Head;
-    VTOY_GPT_PART_TBL PartTbl[128];
-}VTOY_GPT_INFO;
-
-#pragma pack()
-
-#define VENTOY_MAX_PHY_DRIVE  128
-
-typedef struct PHY_DRIVE_INFO
-{
-    int Id;
-    int PhyDrive;
-    int PartStyle;//0:MBR 1:GPT
-    UINT64 SizeInBytes;
-    BYTE DeviceType;
-    BOOL RemovableMedia;
-    CHAR VendorId[128];
-    CHAR ProductId[128];
-    CHAR ProductRev[128];
-    CHAR SerialNumber[128];
-    STORAGE_BUS_TYPE BusType;
-
-    int FirstDriveLetter;
-    CHAR VentoyVersion[32];
-
-}PHY_DRIVE_INFO;
-
-typedef enum PROGRESS_POINT
-{
-    PT_START = 0,
-    PT_LOCK_FOR_CLEAN,
-    PT_DEL_ALL_PART,
-    PT_LOCK_FOR_WRITE,
-    PT_FORMAT_PART1,
-    PT_LOCK_VOLUME = PT_FORMAT_PART1,
-    PT_FORMAT_PART2,
-
-    PT_WRITE_VENTOY_START,
-    PT_WRITE_VENTOY_FINISH = PT_WRITE_VENTOY_START + 32,
-
-    PT_WRITE_STG1_IMG,
-    PT_WRITE_PART_TABLE,
-    PT_MOUNT_VOLUME,
-
-    PT_FINISH
-}PROGRESS_POINT;
-
-#define PROGRESS_BAR_SET_POS(pos)  SetProgressBarPos(pos)
-
-extern PHY_DRIVE_INFO *g_PhyDriveList;
-extern DWORD g_PhyDriveCount;
-extern int g_ForceOperation;
-extern HWND g_ProgressBarHwnd;
-extern HFONT g_language_normal_font;
-extern HFONT g_language_bold_font;
-
-void Log(const char *Fmt, ...);
-BOOL IsPathExist(BOOL Dir, const char *Fmt, ...);
-void DumpWindowsVersion(void);
-const CHAR* GetLocalVentoyVersion(void);
-const CHAR* ParseVentoyVersionFromString(CHAR *Buf);
-CHAR GetFirstUnusedDriveLetter(void);
-const CHAR * GetBusTypeString(STORAGE_BUS_TYPE Type);
-int VentoyGetLocalBootImg(MBR_HEAD *pMBR);
-int GetHumanReadableGBSize(UINT64 SizeBytes);
-void TrimString(CHAR *String);
-int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle);
-int VentoyFillGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo);
-BOOL IsVentoyLogicalDrive(CHAR DriveLetter);
-int GetRegDwordValue(HKEY Key, LPCSTR SubKey, LPCSTR ValueName, DWORD *pValue);
-int GetPhysicalDriveCount(void);
-int GetAllPhysicalDriveInfo(PHY_DRIVE_INFO *pDriveList, DWORD *pDriveCount);
-int GetPhyDriveByLogicalDrive(int DriveLetter);
-int GetVentoyVerInPhyDrive(const PHY_DRIVE_INFO *pDriveInfo, UINT64 Part2StartSector, CHAR *VerBuf, size_t BufLen);
-int Ventoy2DiskInit(void);
-int Ventoy2DiskDestroy(void);
-PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id);
-int ParseCmdLineOption(LPSTR lpCmdLine);
-int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle);
-int UpdateVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive);
-int VentoyFillBackupGptHead(VTOY_GPT_INFO *pInfo, VTOY_GPT_HDR *pHead);
-void SetProgressBarPos(int Pos);
-int ReadWholeFileToBuf(const CHAR *FileName, int ExtLen, void **Bufer, int *BufLen);
-int INIT unxz(unsigned char *in, int in_size,
-    int(*fill)(void *dest, unsigned int size),
-    int(*flush)(void *src, unsigned int size),
-    unsigned char *out, int *in_used,
-    void(*error)(char *x));
-void disk_io_set_param(HANDLE Handle, UINT64 SectorCount);
-INT_PTR CALLBACK PartDialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
-int GetReservedSpaceInMB(void);
-int FindProcessOccupyDisk(HANDLE hDrive, PHY_DRIVE_INFO *pPhyDrive);
-int VentoyFillLocation(UINT64 DiskSizeInBytes, UINT32 StartSectorId, UINT32 SectorCount, PART_TABLE *Table);
-int ClearVentoyFromPhyDrive(HWND hWnd, PHY_DRIVE_INFO *pPhyDrive, char *pDrvLetter);
-UINT32 VentoyCrc32(void *Buffer, UINT32 Length);
-
-#define SET_FILE_POS(pos) \
-    liCurrentPosition.QuadPart = pos; \
-    SetFilePointerEx(hDrive, liCurrentPosition, &liCurrentPosition, FILE_BEGIN)\
-
-
-#endif
+/******************************************************************************\r
+ * Ventoy2Disk.h\r
+ *\r
+ * Copyright (c) 2020, longpanda <admin@ventoy.net>\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License as\r
+ * published by the Free Software Foundation; either version 3 of the\r
+ * License, or (at your option) any later version.\r
+ * \r
+ * This program is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+ * General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.\r
+ *\r
+ */\r
+\r
+#ifndef __VENTOY2DISK_H__\r
+#define __VENTOY2DISK_H__\r
+\r
+#include <stdio.h>\r
+\r
+#define SIZE_1MB                    (1024 * 1024)\r
+#define VENTOY_EFI_PART_SIZE       (32 * SIZE_1MB)\r
+#define VENTOY_PART1_START_SECTOR    2048\r
+\r
+#define VENTOY_FILE_BOOT_IMG    "boot\\boot.img"\r
+#define VENTOY_FILE_STG1_IMG    "boot\\core.img.xz"\r
+#define VENTOY_FILE_DISK_IMG    "ventoy\\ventoy.disk.img.xz"\r
+#define VENTOY_FILE_LOG         "log.txt"\r
+#define VENTOY_FILE_VERSION     "ventoy\\version"\r
+\r
+#define DRIVE_ACCESS_TIMEOUT        15000              // How long we should retry drive access (in ms)\r
+#define DRIVE_ACCESS_RETRIES        150                        // How many times we should retry\r
+\r
+#define IsFileExist(Fmt, ...) IsPathExist(FALSE, Fmt, __VA_ARGS__)\r
+#define IsDirExist(Fmt, ...)  IsPathExist(TRUE, Fmt, __VA_ARGS__)\r
+\r
+#define safe_sprintf(dst, fmt, ...) sprintf_s(dst, sizeof(dst), fmt, __VA_ARGS__)\r
+#define safe_strcpy(dst, src)  strcpy_s(dst, sizeof(dst), src)\r
+\r
+#define CHECK_CLOSE_HANDLE(Handle) \\r
+{\\r
+    if (Handle != INVALID_HANDLE_VALUE) \\r
+    {\\r
+        CloseHandle(Handle); \\r
+        Handle = INVALID_HANDLE_VALUE; \\r
+    }\\r
+}\r
+\r
+#define LASTERR     GetLastError()\r
+\r
+#pragma pack(1)\r
+typedef struct PART_TABLE\r
+{\r
+    UINT8  Active; // 0x00  0x80\r
+\r
+    UINT8  StartHead;\r
+    UINT16 StartSector : 6;\r
+    UINT16 StartCylinder : 10;\r
+\r
+    UINT8  FsFlag;\r
+\r
+    UINT8  EndHead;\r
+    UINT16 EndSector : 6;\r
+    UINT16 EndCylinder : 10;\r
+\r
+    UINT32 StartSectorId;\r
+    UINT32 SectorCount;\r
+}PART_TABLE;\r
+\r
+typedef struct MBR_HEAD\r
+{\r
+    UINT8 BootCode[446];\r
+    PART_TABLE PartTbl[4];\r
+    UINT8 Byte55;\r
+    UINT8 ByteAA;\r
+}MBR_HEAD;\r
+\r
+typedef struct VTOY_GPT_HDR\r
+{\r
+    CHAR   Signature[8]; /* EFI PART */\r
+    UINT8  Version[4];\r
+    UINT32 Length;\r
+    UINT32 Crc;\r
+    UINT8  Reserved1[4];\r
+    UINT64 EfiStartLBA;\r
+    UINT64 EfiBackupLBA;\r
+    UINT64 PartAreaStartLBA;\r
+    UINT64 PartAreaEndLBA;\r
+    GUID   DiskGuid;\r
+    UINT64 PartTblStartLBA;\r
+    UINT32 PartTblTotNum;\r
+    UINT32 PartTblEntryLen;\r
+    UINT32 PartTblCrc;\r
+    UINT8  Reserved2[420];\r
+}VTOY_GPT_HDR;\r
+\r
+typedef struct VTOY_GPT_PART_TBL\r
+{\r
+    GUID   PartType;\r
+    GUID   PartGuid;\r
+    UINT64 StartLBA;\r
+    UINT64 LastLBA;\r
+    UINT64 Attr;\r
+    UINT16 Name[36];\r
+}VTOY_GPT_PART_TBL;\r
+\r
+typedef struct VTOY_GPT_INFO\r
+{\r
+    MBR_HEAD MBR;\r
+    VTOY_GPT_HDR Head;\r
+    VTOY_GPT_PART_TBL PartTbl[128];\r
+}VTOY_GPT_INFO;\r
+\r
+#pragma pack()\r
+\r
+#define VENTOY_MAX_PHY_DRIVE  128\r
+\r
+typedef struct PHY_DRIVE_INFO\r
+{\r
+    int Id;\r
+    int PhyDrive;\r
+    int PartStyle;//0:MBR 1:GPT\r
+    UINT64 SizeInBytes;\r
+    BYTE DeviceType;\r
+    BOOL RemovableMedia;\r
+    CHAR VendorId[128];\r
+    CHAR ProductId[128];\r
+    CHAR ProductRev[128];\r
+    CHAR SerialNumber[128];\r
+    STORAGE_BUS_TYPE BusType;\r
+\r
+    CHAR DriveLetters[64];\r
+\r
+    CHAR VentoyVersion[32];\r
+\r
+}PHY_DRIVE_INFO;\r
+\r
+typedef enum PROGRESS_POINT\r
+{\r
+    PT_START = 0,\r
+    PT_LOCK_FOR_CLEAN,\r
+    PT_DEL_ALL_PART,\r
+    PT_LOCK_FOR_WRITE,\r
+    PT_FORMAT_PART1,\r
+    PT_LOCK_VOLUME = PT_FORMAT_PART1,\r
+    PT_FORMAT_PART2,\r
+\r
+    PT_WRITE_VENTOY_START,\r
+    PT_WRITE_VENTOY_FINISH = PT_WRITE_VENTOY_START + 32,\r
+\r
+    PT_WRITE_STG1_IMG,\r
+    PT_WRITE_PART_TABLE,\r
+    PT_MOUNT_VOLUME,\r
+\r
+    PT_FINISH\r
+}PROGRESS_POINT;\r
+\r
+#define PROGRESS_BAR_SET_POS(pos)  SetProgressBarPos(pos)\r
+\r
+extern PHY_DRIVE_INFO *g_PhyDriveList;\r
+extern DWORD g_PhyDriveCount;\r
+extern int g_ForceOperation;\r
+extern HWND g_ProgressBarHwnd;\r
+extern HFONT g_language_normal_font;\r
+extern HFONT g_language_bold_font;\r
+\r
+void Log(const char *Fmt, ...);\r
+BOOL IsPathExist(BOOL Dir, const char *Fmt, ...);\r
+void DumpWindowsVersion(void);\r
+const CHAR* GetLocalVentoyVersion(void);\r
+const CHAR* ParseVentoyVersionFromString(CHAR *Buf);\r
+CHAR GetFirstUnusedDriveLetter(void);\r
+const CHAR * GetBusTypeString(STORAGE_BUS_TYPE Type);\r
+int VentoyGetLocalBootImg(MBR_HEAD *pMBR);\r
+int GetHumanReadableGBSize(UINT64 SizeBytes);\r
+void TrimString(CHAR *String);\r
+int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle);\r
+int VentoyFillGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo);\r
+BOOL IsVentoyLogicalDrive(CHAR DriveLetter);\r
+int GetRegDwordValue(HKEY Key, LPCSTR SubKey, LPCSTR ValueName, DWORD *pValue);\r
+int GetPhysicalDriveCount(void);\r
+int GetAllPhysicalDriveInfo(PHY_DRIVE_INFO *pDriveList, DWORD *pDriveCount);\r
+int GetPhyDriveByLogicalDrive(int DriveLetter);\r
+int GetVentoyVerInPhyDrive(const PHY_DRIVE_INFO *pDriveInfo, UINT64 Part2StartSector, CHAR *VerBuf, size_t BufLen);\r
+int Ventoy2DiskInit(void);\r
+int Ventoy2DiskDestroy(void);\r
+PHY_DRIVE_INFO * GetPhyDriveInfoById(int Id);\r
+int ParseCmdLineOption(LPSTR lpCmdLine);\r
+int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle);\r
+int UpdateVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive);\r
+int VentoyFillBackupGptHead(VTOY_GPT_INFO *pInfo, VTOY_GPT_HDR *pHead);\r
+void SetProgressBarPos(int Pos);\r
+int ReadWholeFileToBuf(const CHAR *FileName, int ExtLen, void **Bufer, int *BufLen);\r
+int INIT unxz(unsigned char *in, int in_size,\r
+    int(*fill)(void *dest, unsigned int size),\r
+    int(*flush)(void *src, unsigned int size),\r
+    unsigned char *out, int *in_used,\r
+    void(*error)(char *x));\r
+void disk_io_set_param(HANDLE Handle, UINT64 SectorCount);\r
+INT_PTR CALLBACK PartDialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);\r
+int GetReservedSpaceInMB(void);\r
+int FindProcessOccupyDisk(HANDLE hDrive, PHY_DRIVE_INFO *pPhyDrive);\r
+int VentoyFillLocation(UINT64 DiskSizeInBytes, UINT32 StartSectorId, UINT32 SectorCount, PART_TABLE *Table);\r
+int ClearVentoyFromPhyDrive(HWND hWnd, PHY_DRIVE_INFO *pPhyDrive, char *pDrvLetter);\r
+UINT32 VentoyCrc32(void *Buffer, UINT32 Length);\r
+\r
+#define SET_FILE_POS(pos) \\r
+    liCurrentPosition.QuadPart = pos; \\r
+    SetFilePointerEx(hDrive, liCurrentPosition, &liCurrentPosition, FILE_BEGIN)\\r
+\r
+\r
+#endif\r
index 759370553234e1ff81b2bada48571a134341dd7a..49179344e5fcb1f5de29986f703332ef0d37745a 100644 (file)
Binary files a/Ventoy2Disk/Ventoy2Disk/WinDialog.c and b/Ventoy2Disk/Ventoy2Disk/WinDialog.c differ
index 0ee4ae461054fd9243338143bdd8f553859c65cc..66efff6ab802472bcc31f3ad3541051e0e493d0f 100644 (file)
@@ -704,6 +704,73 @@ static int DeleteVentoyPart2MountPoint(DWORD PhyDrive)
     return 1;
 }
 
+static int DecompressInjectionArchive(const char *archive, DWORD PhyDrive)
+{
+    int rc = 1;
+    BOOL bRet;
+    DWORD dwBytes;
+    HANDLE hDrive;
+    CHAR PhyPath[MAX_PATH];
+    STARTUPINFOA Si;
+    PROCESS_INFORMATION Pi;
+    GET_LENGTH_INFORMATION LengthInfo;
+
+    Log("DecompressInjectionArchive %s", archive);
+
+    sprintf_s(PhyPath, sizeof(PhyPath), "\\\\.\\PhysicalDrive%d", PhyDrive);
+    hDrive = CreateFileA(PhyPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
+    if (hDrive == INVALID_HANDLE_VALUE)
+    {
+        Log("Could not open the disk<%s>, error:%u", PhyPath, GetLastError());
+        goto End;
+    }
+
+    bRet = DeviceIoControl(hDrive, IOCTL_DISK_GET_LENGTH_INFO, NULL, 0, &LengthInfo, sizeof(LengthInfo), &dwBytes, NULL);
+    if (!bRet)
+    {
+        Log("Could not get phy disk %s size, error:%u", PhyPath, GetLastError());
+        goto End;
+    }
+
+    g_FatPhyDrive = hDrive;
+    g_Part2StartSec = (LengthInfo.Length.QuadPart - VENTOY_EFI_PART_SIZE) / 512;
+
+    Log("Parse FAT fs...");
+
+    fl_init();
+
+    if (0 == fl_attach_media(VentoyFatDiskRead, NULL))
+    {
+        if (g_64bit_system)
+        {
+            CopyFileFromFatDisk("/ventoy/7z/64/7za.exe", "ventoy\\7za.exe");
+        }
+        else
+        {
+            CopyFileFromFatDisk("/ventoy/7z/32/7za.exe", "ventoy\\7za.exe");
+        }
+
+        sprintf_s(PhyPath, sizeof(PhyPath), "ventoy\\7za.exe x -y -aoa -oX:\\ %s", archive);
+
+        Log("extract inject to X:");
+
+        GetStartupInfoA(&Si);
+
+        Si.dwFlags |= STARTF_USESHOWWINDOW;
+        Si.wShowWindow = SW_HIDE;
+
+        CreateProcessA(NULL, PhyPath, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi);
+        WaitForSingleObject(Pi.hProcess, INFINITE);
+    }
+    fl_shutdown();
+
+End:
+
+    SAFE_CLOSE_HANDLE(hDrive);
+
+    return rc;
+}
+
 static int ProcessUnattendedInstallation(const char *script)
 {
     DWORD dw;
@@ -809,6 +876,24 @@ static int VentoyHook(ventoy_os_param *param)
         Log("auto install no need");
     }
 
+    if (g_windows_data.injection_archive[0])
+    {
+        sprintf_s(IsoPath, sizeof(IsoPath), "%C:%s", Letter, g_windows_data.injection_archive);
+        if (IsPathExist(FALSE, "%s", IsoPath))
+        {
+            Log("decompress injection archive %s...", IsoPath);
+            DecompressInjectionArchive(IsoPath, DiskExtent.DiskNumber);
+        }
+        else
+        {
+            Log("injection archive %s not exist", IsoPath);
+        }
+    }
+    else
+    {
+        Log("no injection archive found");
+    }
+
     return 0;
 }
 
index 35fa72768a343e794e7f881d29b1a3d786994878..b3bd22fbdb497682c4966f4029f16293eefcd5c2 100644 (file)
@@ -68,6 +68,7 @@ typedef struct ventoy_os_param
 typedef struct ventoy_windows_data
 {
     char auto_install_script[384];
+    char injection_archive[384];
     UINT8 reserved[128];
 }ventoy_windows_data;