Skip to content

Commit

Permalink
1.0.18 release
Browse files Browse the repository at this point in the history
  • Loading branch information
ventoy committed Aug 1, 2020
1 parent 4cb9134 commit 433d854
Show file tree
Hide file tree
Showing 31 changed files with 3,718 additions and 57 deletions.
82 changes: 82 additions & 0 deletions GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c
Original file line number Diff line number Diff line change
Expand Up @@ -2243,6 +2243,47 @@ static grub_err_t ventoy_cmd_find_bootable_hdd(grub_extcmd_context_t ctxt, int a
return 0;
}

static grub_err_t ventoy_cmd_read_1st_line(grub_extcmd_context_t ctxt, int argc, char **args)
{
int len = 1024;
grub_file_t file;
char *buf = NULL;

(void)ctxt;
(void)argc;

if (argc != 2)
{
return grub_error(GRUB_ERR_BAD_ARGUMENT, "Usage: %s file var \n", cmd_raw_name);
}

file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s", args[0]);
if (!file)
{
debug("failed to open file %s\n", args[0]);
return 0;
}

buf = grub_malloc(len);
if (!buf)
{
goto end;
}

buf[len - 1] = 0;
grub_file_read(file, buf, len - 1);

ventoy_get_line(buf);
ventoy_set_env(args[1], buf);

end:

grub_check_free(buf);
grub_file_close(file);

return 0;
}

static grub_err_t ventoy_cmd_parse_volume(grub_extcmd_context_t ctxt, int argc, char **args)
{
int len;
Expand Down Expand Up @@ -2287,6 +2328,44 @@ static grub_err_t ventoy_cmd_parse_volume(grub_extcmd_context_t ctxt, int argc,
return 0;
}

static grub_err_t ventoy_cmd_parse_create_date(grub_extcmd_context_t ctxt, int argc, char **args)
{
int len;
grub_file_t file;
char buf[64];

(void)ctxt;
(void)argc;

if (argc != 2)
{
return grub_error(GRUB_ERR_BAD_ARGUMENT, "Usage: %s var \n", cmd_raw_name);
}

file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s", args[0]);
if (!file)
{
debug("failed to open file %s\n", args[0]);
return 0;
}

grub_memset(buf, 0, sizeof(buf));
grub_file_seek(file, 16 * 2048 + 813);
len = (int)grub_file_read(file, buf, 17);
if (len != 17)
{
debug("failed to read create date %d\n", len);
goto end;
}

ventoy_set_env(args[1], buf);

end:
grub_file_close(file);

return 0;
}

grub_uint64_t ventoy_grub_get_file_size(const char *fmt, ...)
{
grub_uint64_t size = 0;
Expand Down Expand Up @@ -2468,7 +2547,10 @@ static cmd_para ventoy_cmds[] =
{ "vt_load_plugin", ventoy_cmd_load_plugin, 0, NULL, "", "", NULL },
{ "vt_check_plugin_json", ventoy_cmd_plugin_check_json, 0, NULL, "", "", NULL },

{ "vt_1st_line", ventoy_cmd_read_1st_line, 0, NULL, "", "", NULL },
{ "vt_parse_iso_volume", ventoy_cmd_parse_volume, 0, NULL, "", "", NULL },
{ "vt_parse_iso_create_date", ventoy_cmd_parse_create_date, 0, NULL, "", "", NULL },
{ "vt_parse_freenas_ver", ventoy_cmd_parse_freenas_ver, 0, NULL, "", "", NULL },
{ "vt_unix_parse_freebsd_ver", ventoy_cmd_unix_freebsd_ver, 0, NULL, "", "", NULL },
{ "vt_unix_reset", ventoy_cmd_unix_reset, 0, NULL, "", "", NULL },
{ "vt_unix_replace_conf", ventoy_cmd_unix_replace_conf, 0, NULL, "", "", NULL },
Expand Down
1 change: 1 addition & 0 deletions GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -721,6 +721,7 @@ grub_err_t ventoy_cmd_unix_reset(grub_extcmd_context_t ctxt, int argc, char **ar
grub_err_t ventoy_cmd_unix_replace_conf(grub_extcmd_context_t ctxt, int argc, char **args);
grub_err_t ventoy_cmd_unix_replace_ko(grub_extcmd_context_t ctxt, int argc, char **args);
grub_err_t ventoy_cmd_unix_freebsd_ver(grub_extcmd_context_t ctxt, int argc, char **args);
grub_err_t ventoy_cmd_parse_freenas_ver(grub_extcmd_context_t ctxt, int argc, char **args);

#endif /* __VENTOY_DEF_H__ */

4 changes: 1 addition & 3 deletions GRUB2/MOD_SRC/grub-2.04/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@ all_modules_legacy="date drivemap blocklist vga_text ntldr search at_keyboard us
net_modules_uefi="efinet net tftp http"
all_modules_uefi="blocklist ventoy test search at_keyboard usb_keyboard gcry_md5 hashsum gzio xzio lzopio ext2 xfs read halt sleep serial terminfo png password_pbkdf2 gcry_sha512 pbkdf2 part_gpt part_msdos ls tar squash4 loopback part_apple minicmd diskfilter linux relocator jpeg iso9660 udf hfsplus halt acpi mmap gfxmenu video_colors trig bitmap_scale gfxterm bitmap font fat exfat ntfs fshelp efifwsetup reboot echo configfile normal terminal gettext chain priority_queue bufio datetime cat extcmd crypto gzio boot all_video efi_gop efi_uga video_bochs video_cirrus video video_fb gfxterm_background gfxterm_menu"

all_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 "
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 "
Expand Down
10 changes: 8 additions & 2 deletions IMG/cpio/ventoy/hook/debian/tails-hook.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,11 @@
$SED "s#.*livefs_root=.*find_livefs.*#$BUSYBOX_PATH/mount -t iso9660 /dev/mapper/ventoy \$mountpoint; livefs_root=\$mountpoint#" -i /usr/lib/live/boot/9990-main.sh
$SED "s#.*livefs_root=.*find_livefs.*#$BUSYBOX_PATH/mount -t iso9660 /dev/mapper/ventoy \$mountpoint; livefs_root=\$mountpoint#" -i /usr/bin/boot/9990-main.sh

ventoy_systemd_udevd_work_around
ventoy_add_udev_rule "$VTOY_PATH/hook/debian/udev_disk_hook.sh %k"
if [ -e /init ] && $GREP -q '^mountroot$' /init; then
echo "Here before mountroot ..." >> $VTLOG
$SED "/^mountroot$/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/disk_mount_hook.sh" -i /init
else
echo "Use default hook ..." >> $VTLOG
ventoy_systemd_udevd_work_around
ventoy_add_udev_rule "$VTOY_PATH/hook/debian/udev_disk_hook.sh %k"
fi
Binary file modified INSTALL/EFI/BOOT/grubx64_real.efi
Binary file not shown.
115 changes: 93 additions & 22 deletions INSTALL/grub/grub.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,20 @@ function get_os_type {
if [ "$vtoy_os" = "Linux" ]; then
if vt_strstr "$vt_system_id" "FreeBSD"; then
set vtoy_os=Unix
set vt_unix_type=FreeBSD
elif [ -e (loop)/bin/freebsd-version ]; then
set vtoy_os=Unix
set vt_unix_type=FreeBSD


elif [ -e (loop)/boot/kernel/kernel ]; then
if file --is-x86-kfreebsd (loop)/boot/kernel/kernel; then
set vtoy_os=Unix
set vt_unix_type=FreeBSD
elif file --is-x86-knetbsd (loop)/boot/kernel/kernel; then
set vtoy_os=Unix
set vt_unix_type=NetBSD
fi
fi
fi

Expand Down Expand Up @@ -219,44 +231,101 @@ function distro_specify_initrd_file_phase2 {
fi
}

function ventoy_get_ghostbsd_ver {

# vt_parse_iso_create_date $1/${chosen_path} vt_create_date
# if regexp "^202005" "$vt_create_date"; then
# set vt_freebsd_ver=12.x
# fi

set vt_freebsd_ver=12.x
}

function ventoy_get_freenas_ver {
set vt_freebsd_ver=11.x

if [ -e (loop)/FreeNAS-MANIFEST ]; then
vt_parse_freenas_ver (loop)/FreeNAS-MANIFEST vt_freenas_ver
if regexp "^13\.[0-9]" "$vt_freenas_ver"; then
set vt_freebsd_ver=13.x
elif regexp "^12\.[0-9]" "$vt_freenas_ver"; then
set vt_freebsd_ver=12.x
elif regexp "^11\.[0-9]" "$vt_freenas_ver"; then
set vt_freebsd_ver=11.x
fi
fi
}

function ventoy_freebsd_proc {
if regexp "^12_[0-9]" $vt_volume_id; then
if vt_strstr "$vt_volume_id" "GHOSTBSD"; then
ventoy_get_ghostbsd_ver $1 ${chosen_path}
elif vt_strstr "$vt_volume_id" "FREENAS"; then
ventoy_get_freenas_ver $1 ${chosen_path}
elif regexp "^13_[0-9]" "$vt_volume_id"; then
set vt_freebsd_ver=13.x
elif regexp "^12_[0-9]" "$vt_volume_id"; then
set vt_freebsd_ver=12.x
elif regexp "^11_[0-9]" $vt_volume_id; then
elif regexp "^11_[0-9]" "$vt_volume_id"; then
set vt_freebsd_ver=11.x
elif regexp "^10_[0-9]" $vt_volume_id; then
elif regexp "^10_[0-9]" "$vt_volume_id"; then
set vt_freebsd_ver=10.x
elif regexp "^9_[0-9]" "$vt_volume_id"; then
set vt_freebsd_ver=9.x
elif [ -e (loop)/bin/freebsd-version ]; then
vt_unix_parse_freebsd_ver (loop)/bin/freebsd-version vt_userland_ver
if regexp "\"12\.[0-9]-" $vt_userland_ver; then
if regexp "\"13\.[0-9]-" "$vt_userland_ver"; then
set vt_freebsd_ver=13.x
elif regexp "\"12\.[0-9]-" "$vt_userland_ver"; then
set vt_freebsd_ver=12.x
elif regexp "\"11\.[0-9]-" $vt_userland_ver; then
elif regexp "\"11\.[0-9]-" "$vt_userland_ver"; then
set vt_freebsd_ver=11.x
elif regexp "\"10\.[0-9]-" $vt_userland_ver; then
elif regexp "\"10\.[0-9]-" "$vt_userland_ver"; then
set vt_freebsd_ver=10.x
elif regexp "\"9\.[0-9]-" "$vt_userland_ver"; then
set vt_freebsd_ver=9.x
fi
elif [ -e (loop)/README.TXT ]; then
vt_1st_line (loop)/README.TXT vt_freebsd_line1
if regexp "FreeBSD 13\.[0-9]-" "$vt_freebsd_line1"; then
set vt_freebsd_ver=13.x
elif regexp "FreeBSD 12\.[0-9]-" "$vt_freebsd_line1"; then
set vt_freebsd_ver=12.x
elif regexp "FreeBSD 11\.[0-9]-" "$vt_freebsd_line1"; then
set vt_freebsd_ver=11.x
elif regexp "FreeBSD 10\.[0-9]-" "$vt_freebsd_line1"; then
set vt_freebsd_ver=10.x
elif regexp "FreeBSD 9\.[0-9]-" "$vt_freebsd_line1"; then
set vt_freebsd_ver=9.x
fi
elif vt_strstr "${chosen_path}" "MidnightBSD"; then
set vt_freebsd_ver=9.x
else
set vt_freebsd_ver=12.x
fi
if file --is-i386-kfreebsd (loop)/boot/kernel/kernel; then
set vt_freebsd_bit=32
else
set vt_freebsd_bit=64
fi
set vt_freebsd_bit=64
for file in "/boot/kernel/kernel" "/boot/kernel/kernel.gz"; do
if [ -e (loop)/$file ]; then
if file --is-i386-kfreebsd (loop)/$file; then
set vt_freebsd_bit=32
fi
break
fi
done
if [ -n "${vtdebug_flag}" ]; then
echo "This is FreeBSD $vt_freebsd_ver ${vt_freebsd_bit}bit"
fi
for file in "geom_nop" "ipmi"; do
if [ -e (loop)/boot/kernel/${file}.ko ]; then
set vt_unix_ko=$file
unset vt_unix_mod_path
for file in "/COPYRIGHT" "/FreeNAS-MANIFEST" "/version"; do
if [ -e (loop)${file} ]; then
set vt_unix_mod_path=${file}
break
fi
done
vt_unix_replace_ko $vt_unix_ko (vtunix)/ventoy_unix/FreeBSD/geom_ventoy_ko/$vt_freebsd_ver/$vt_freebsd_bit/geom_ventoy.ko.xz
vt_unix_replace_ko $vt_unix_mod_path (vtunix)/ventoy_unix/FreeBSD/geom_ventoy_ko/$vt_freebsd_ver/$vt_freebsd_bit/geom_ventoy.ko.xz
vt_unix_replace_conf FreeBSD ${1}${chosen_path}
}
Expand All @@ -266,11 +335,13 @@ function ventoy_unix_comm_proc {
if [ "$ventoy_compatible" = "NO" ]; then
loopback vtunix $vtoy_efi_part/ventoy/ventoy_unix.cpio
set vt_unix_type=unknown
if vt_strstr "$vt_system_id" "FreeBSD"; then
ventoy_freebsd_proc $1 ${chosen_path}
elif [ -e (loop)/bin/freebsd-version ]; then
ventoy_freebsd_proc $1 ${chosen_path}
if [ "$vt_unix_type" = "FreeBSD" ]; then
ventoy_freebsd_proc $1 ${chosen_path}
elif [ "$vt_unix_type" = "NetBSD" ]; then
echo "NetBSD not supported"
else
if [ -n "${vtdebug_flag}" ]; then
echo "Unknown unix type"
Expand Down Expand Up @@ -731,7 +802,7 @@ function efi_unsupport_menuentry {
#############################################################
#############################################################
set VENTOY_VERSION="1.0.17"
set VENTOY_VERSION="1.0.18"
# Default menu display mode, you can change it as you want.
# 0: List mode
Expand Down
Binary file modified INSTALL/grub/i386-pc/core.img
Binary file not shown.
2 changes: 1 addition & 1 deletion INSTALL/grub/x86_64-efi/moddep.lst
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ ehci: cs5536 usb boot
crypto:
part_bsd: part_msdos
cs5536:
ventoy: ext2 fshelp font crypto exfat udf extcmd normal gcry_sha1 iso9660
ventoy: ext2 fshelp crypto font exfat udf extcmd normal gcry_sha1 iso9660
gcry_sha512: crypto
password: crypto normal
fshelp:
Expand Down
Binary file modified INSTALL/ventoy/ventoy.cpio
Binary file not shown.
Binary file modified INSTALL/ventoy/ventoy_unix.cpio
Binary file not shown.
Binary file modified Unix/ventoy_unix.cpio
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Loading

0 comments on commit 433d854

Please sign in to comment.