mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-17 01:11:19 +00:00
Compare commits
86 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
fd7e34b632 | ||
|
e85c02756b | ||
|
c1d68bd787 | ||
|
a35a822723 | ||
|
05137c83e2 | ||
|
8058856182 | ||
|
33b958e112 | ||
|
9eb50a85e4 | ||
|
3cc7e3772e | ||
|
9c8292867f | ||
|
a4053d2d05 | ||
|
5c14ea0a4a | ||
|
194e948cb6 | ||
|
c896c03efe | ||
|
574b4d850c | ||
|
68a98325e6 | ||
|
25b055bb0f | ||
|
bda74cd89b | ||
|
511b8091eb | ||
|
3be4aacd78 | ||
|
2d8b27b172 | ||
|
c174410d35 | ||
|
f83e84f868 | ||
|
a39078b87a | ||
|
2576235f97 | ||
|
ee04af5243 | ||
|
118bedd546 | ||
|
44ff3dd8d4 | ||
|
9da5a6ce65 | ||
|
604b25ec82 | ||
|
0918355035 | ||
|
ce76fd5649 | ||
|
42535f35bc | ||
|
68a9cebe19 | ||
|
cc77c74bf4 | ||
|
ee952e3f69 | ||
|
b11a499939 | ||
|
fdf4693433 | ||
|
ac65c0fb24 | ||
|
ea0afe7c8b | ||
|
f8ca8b13d3 | ||
|
678a2abdf1 | ||
|
e645301713 | ||
|
43b415c032 | ||
|
311d2961ca | ||
|
1d66584190 | ||
|
553c853865 | ||
|
7d90912a09 | ||
|
c2336f555a | ||
|
87391e8b32 | ||
|
f9c56c6686 | ||
|
1ab1799b72 | ||
|
4a42bdfce7 | ||
|
3f09fb9a23 | ||
|
c87ad1d734 | ||
|
5590208885 | ||
|
09a6d33d62 | ||
|
9852252aba | ||
|
0585d83a8f | ||
|
ebe0b7d282 | ||
|
261ddcef45 | ||
|
ebc5e2e993 | ||
|
d58bd8c3f7 | ||
|
17f9e2fd09 | ||
|
6b22a6200e | ||
|
860dce6683 | ||
|
7fc72d5ce6 | ||
|
b7c3cbd23b | ||
|
3de97bdf44 | ||
|
e79dc57ebe | ||
|
7bf85a1ef8 | ||
|
a5e0641226 | ||
|
2c65eec9ec | ||
|
0c310c5bd8 | ||
|
c81b49807b | ||
|
085e20f64d | ||
|
ff3ce4da66 | ||
|
81d3492a61 | ||
|
635b1a1c6c | ||
|
10b80f2690 | ||
|
36c21a21e4 | ||
|
13eb9829fa | ||
|
88f77c01e4 | ||
|
11b30dab5f | ||
|
fb729146de | ||
|
92bd6733dd |
12
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
12
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
@@ -21,7 +21,7 @@ body:
|
||||
attributes:
|
||||
label: Ventoy Version
|
||||
description: What version of ventoy are you running?
|
||||
placeholder: 1.0.79
|
||||
placeholder: 1.0.84
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -34,6 +34,16 @@ body:
|
||||
- No. I didn't try the latest release.
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: alternativemode
|
||||
attributes:
|
||||
label: Try alternative boot mode
|
||||
description: Have you tried alternative boot mode? (wimboot mode for Windows/WinPE, grub2 mode for linux)
|
||||
options:
|
||||
- Yes. I have tried them, but the bug still exist.
|
||||
- No. I didn't try these alternative boot modes.
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: bios
|
||||
attributes:
|
||||
|
@@ -85,7 +85,7 @@ body:
|
||||
- type: input
|
||||
id: testenv
|
||||
attributes:
|
||||
label: Test envrionment
|
||||
label: Test environment
|
||||
description: The manufacturer/model and other details about your computer (or VM).
|
||||
placeholder: Lenovo Thinkpad T420 laptop
|
||||
validations:
|
||||
|
@@ -34,7 +34,7 @@
|
||||
https://codeload.github.com/libfuse/libfuse/zip/fuse-2.9.9 ===> /home/Ventoy-master/ExFAT/libfuse-fuse-2.9.9.zip
|
||||
https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz ===> /opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
|
||||
https://toolchains.bootlin.com/downloads/releases/toolchains/aarch64/tarballs/aarch64--uclibc--stable-2020.08-1.tar.bz2 ===> /opt/aarch64--uclibc--stable-2020.08-1.tar.bz2
|
||||
http://ftp.loongnix.org/toolchain/gcc/release/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz ===> /opt/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz
|
||||
http://ftp.loongnix.cn/toolchain/gcc/release/mips/gcc7/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz ===> /opt/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz
|
||||
https://github.com/ventoy/musl-cross-make/releases/download/latest/output.tar.bz2 ===> /opt/output.tar.bz2
|
||||
|
||||
|
||||
|
@@ -25,6 +25,10 @@
|
||||
#include <grub/i18n.h>
|
||||
#include <grub/normal.h>
|
||||
|
||||
typedef const char * (*get_vmenu_title_pf)(const char *vMenu);
|
||||
static get_vmenu_title_pf g_pfvmenu_title = NULL;
|
||||
|
||||
|
||||
static const struct grub_arg_option options[] =
|
||||
{
|
||||
{"class", 1, GRUB_ARG_OPTION_REPEATABLE,
|
||||
@@ -86,6 +90,8 @@ grub_normal_add_menu_entry (int argc, const char **args,
|
||||
char *menu_title = NULL;
|
||||
char *menu_sourcecode = NULL;
|
||||
char *menu_id = NULL;
|
||||
const char *vmenu = NULL;
|
||||
const char *vaddr = NULL;
|
||||
struct grub_menu_entry_class *menu_classes = NULL;
|
||||
|
||||
grub_menu_t menu;
|
||||
@@ -145,7 +151,17 @@ grub_normal_add_menu_entry (int argc, const char **args,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
menu_title = grub_strdup (args[0]);
|
||||
if (!g_pfvmenu_title) {
|
||||
vaddr = grub_env_get("VTOY_VMENU_FUNC_ADDR");
|
||||
if (vaddr)
|
||||
g_pfvmenu_title = (get_vmenu_title_pf)(unsigned long)grub_strtoul(vaddr, NULL, 16);
|
||||
}
|
||||
|
||||
if (g_pfvmenu_title && grub_strncmp(args[0], "@VTMENU_", 8) == 0)
|
||||
vmenu = g_pfvmenu_title(args[0] + 1);
|
||||
|
||||
menu_title = grub_strdup (vmenu ? vmenu : args[0]);
|
||||
|
||||
if (! menu_title)
|
||||
goto fail;
|
||||
|
||||
|
@@ -229,6 +229,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-EQ") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
== grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[*argn + 1], "-ge") == 0)
|
||||
{
|
||||
@@ -237,6 +244,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-GE") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
>= grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[*argn + 1], "-gt") == 0)
|
||||
{
|
||||
@@ -245,6 +259,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-GT") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
> grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[*argn + 1], "-le") == 0)
|
||||
{
|
||||
@@ -253,6 +274,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-LE") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
<= grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[*argn + 1], "-lt") == 0)
|
||||
{
|
||||
@@ -261,6 +289,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-LT") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
< grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (grub_strcmp (args[*argn + 1], "-ne") == 0)
|
||||
{
|
||||
@@ -269,6 +304,13 @@ test_parse (char **args, int *argn, int argc)
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
if (grub_strcmp (args[*argn + 1], "-NE") == 0)
|
||||
{
|
||||
update_val (grub_strtoull (args[*argn], 0, 0)
|
||||
!= grub_strtoull (args[*argn + 2], 0, 0), &ctx);
|
||||
(*argn) += 3;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* GRUB extension: compare numbers skipping prefixes.
|
||||
Useful for comparing versions. E.g. vmlinuz-2 -plt vmlinuz-11. */
|
||||
|
@@ -31,6 +31,7 @@ extern int g_ventoy_iso_raw;
|
||||
extern int g_ventoy_grub2_mode;
|
||||
extern int g_ventoy_wimboot_mode;
|
||||
extern int g_ventoy_iso_uefi_drv;
|
||||
extern char g_ventoy_hotkey_tip[256];
|
||||
|
||||
static const char *align_options[] =
|
||||
{
|
||||
@@ -230,10 +231,7 @@ label_set_property (void *vself, const char *name, const char *value)
|
||||
value = g_ventoy_iso_uefi_drv ? grub_env_get("VTOY_ISO_UEFI_DRV_STR") : " ";
|
||||
}
|
||||
else if (grub_strcmp (value, "@VTOY_HOTKEY_TIP@") == 0) {
|
||||
value = grub_env_get("VTOY_HOTKEY_TIP");
|
||||
if (value == NULL) {
|
||||
value = _(" ");
|
||||
}
|
||||
value = g_ventoy_hotkey_tip;
|
||||
}
|
||||
|
||||
self->template = grub_strdup (value);
|
||||
|
@@ -48,10 +48,35 @@ int g_ventoy_suppress_esc = 0;
|
||||
int g_ventoy_suppress_esc_default = 1;
|
||||
int g_ventoy_menu_esc = 0;
|
||||
int g_ventoy_fn_mutex = 0;
|
||||
int g_ventoy_secondary_menu_on = 0;
|
||||
int g_ventoy_terminal_output = 0;
|
||||
char g_ventoy_hotkey_tip[256];
|
||||
|
||||
static int g_vt_key_num = 0;
|
||||
static int g_vt_key_code[128];
|
||||
|
||||
static int ventoy_menu_pop_key(void)
|
||||
{
|
||||
if (g_vt_key_num > 0 && g_vt_key_num < (int)(sizeof(g_vt_key_code) / sizeof(g_vt_key_code[0])))
|
||||
{
|
||||
g_vt_key_num--;
|
||||
return g_vt_key_code[g_vt_key_num];
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int ventoy_menu_push_key(int code)
|
||||
{
|
||||
if (g_vt_key_num >= 0 && g_vt_key_num < (int)(sizeof(g_vt_key_code) / sizeof(g_vt_key_code[0])))
|
||||
{
|
||||
g_vt_key_code[g_vt_key_num++] = code;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
#define VTOY_COMM_HOTKEY(cmdkey) \
|
||||
if (0 == g_ventoy_fn_mutex) { \
|
||||
if (0 == g_ventoy_fn_mutex && 0 == g_ventoy_secondary_menu_on) { \
|
||||
cmdstr = grub_env_get(cmdkey); \
|
||||
if (cmdstr) \
|
||||
{ \
|
||||
@@ -795,7 +820,11 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
||||
return default_entry;
|
||||
}
|
||||
|
||||
c = grub_getkey_noblock ();
|
||||
if (g_vt_key_num > 0) {
|
||||
c = ventoy_menu_pop_key();
|
||||
} else {
|
||||
c = grub_getkey_noblock ();
|
||||
}
|
||||
|
||||
/* Negative values are returned on error. */
|
||||
if ((c != GRUB_TERM_NO_KEY) && (c > 0))
|
||||
@@ -933,66 +962,99 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
||||
goto refresh;
|
||||
case GRUB_TERM_KEY_F1:
|
||||
case '1':
|
||||
menu_fini ();
|
||||
g_ventoy_memdisk_mode = 1 - g_ventoy_memdisk_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
|
||||
case (GRUB_TERM_CTRL | 'i'):
|
||||
menu_fini ();
|
||||
g_ventoy_iso_raw = 1 - g_ventoy_iso_raw;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
|
||||
case (GRUB_TERM_CTRL | 'r'):
|
||||
menu_fini ();
|
||||
g_ventoy_grub2_mode = 1 - g_ventoy_grub2_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
|
||||
case (GRUB_TERM_CTRL | 'w'):
|
||||
menu_fini ();
|
||||
g_ventoy_wimboot_mode = 1 - g_ventoy_wimboot_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
|
||||
case (GRUB_TERM_CTRL | 'u'):
|
||||
menu_fini ();
|
||||
g_ventoy_iso_uefi_drv = 1 - g_ventoy_iso_uefi_drv;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
|
||||
case (GRUB_TERM_CTRL | 'h'):
|
||||
case 'h':
|
||||
{
|
||||
cmdstr = grub_env_get("VTOY_HELP_CMD");
|
||||
if (cmdstr)
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
cmdstr = grub_env_get("VTOY_HELP_CMD");
|
||||
if (cmdstr)
|
||||
{
|
||||
grub_script_execute_sourcecode(cmdstr);
|
||||
while (grub_getkey() != GRUB_TERM_ESC)
|
||||
;
|
||||
menu_fini ();
|
||||
goto refresh;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'd'):
|
||||
case 'd':
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
grub_script_execute_sourcecode(cmdstr);
|
||||
while (grub_getkey() != GRUB_TERM_ESC)
|
||||
;
|
||||
menu_fini ();
|
||||
g_ventoy_memdisk_mode = 1 - g_ventoy_memdisk_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'i'):
|
||||
case 'i':
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
menu_fini ();
|
||||
g_ventoy_iso_raw = 1 - g_ventoy_iso_raw;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'r'):
|
||||
case 'r':
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
menu_fini ();
|
||||
g_ventoy_grub2_mode = 1 - g_ventoy_grub2_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'w'):
|
||||
case 'w':
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
menu_fini ();
|
||||
g_ventoy_wimboot_mode = 1 - g_ventoy_wimboot_mode;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'u'):
|
||||
case 'u':
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
menu_fini ();
|
||||
g_ventoy_iso_uefi_drv = 1 - g_ventoy_iso_uefi_drv;
|
||||
g_ventoy_menu_refresh = 1;
|
||||
goto refresh;
|
||||
}
|
||||
break;
|
||||
case (GRUB_TERM_CTRL | 'l'):
|
||||
case (GRUB_TERM_CTRL | 'L'):
|
||||
case (GRUB_TERM_SHIFT | 'l'):
|
||||
case (GRUB_TERM_SHIFT | 'L'):
|
||||
case 'l':
|
||||
case 'L':
|
||||
{
|
||||
VTOY_COMM_HOTKEY("VTOY_LANG_CMD");
|
||||
break;
|
||||
}
|
||||
case (GRUB_TERM_CTRL | 'm'):
|
||||
case 'm':
|
||||
{
|
||||
if (g_ventoy_cur_img_path)
|
||||
{
|
||||
grub_env_set("VTOY_CHKSUM_FILE_PATH", g_ventoy_cur_img_path);
|
||||
cmdstr = grub_env_get("VTOY_CHKSUM_CMD");
|
||||
if (cmdstr)
|
||||
if (0 == g_ventoy_secondary_menu_on)
|
||||
{
|
||||
if (g_ventoy_cur_img_path)
|
||||
{
|
||||
menu_fini();
|
||||
grub_script_execute_sourcecode(cmdstr);
|
||||
goto refresh;
|
||||
grub_env_set("VTOY_CHKSUM_FILE_PATH", g_ventoy_cur_img_path);
|
||||
cmdstr = grub_env_get("VTOY_CHKSUM_CMD");
|
||||
if (cmdstr)
|
||||
{
|
||||
menu_fini();
|
||||
grub_script_execute_sourcecode(cmdstr);
|
||||
goto refresh;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_env_set("VTOY_CHKSUM_FILE_PATH", "X");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_env_set("VTOY_CHKSUM_FILE_PATH", "X");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@@ -31,6 +31,8 @@
|
||||
static grub_uint8_t grub_color_menu_normal;
|
||||
static grub_uint8_t grub_color_menu_highlight;
|
||||
|
||||
extern char g_ventoy_hotkey_tip[256];
|
||||
|
||||
struct menu_viewer_data
|
||||
{
|
||||
int first, offset;
|
||||
@@ -204,7 +206,7 @@ command-line or ESC to discard edits and return to the GRUB menu."),
|
||||
ret += grub_print_message_indented_real(szLine, STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run);
|
||||
|
||||
ret += grub_print_message_indented_real("\n", STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run);
|
||||
ret += grub_print_message_indented_real(grub_env_get("VTOY_HOTKEY_TIP"),
|
||||
ret += grub_print_message_indented_real(g_ventoy_hotkey_tip,
|
||||
3, 6, term, dry_run);
|
||||
}
|
||||
}
|
||||
|
@@ -188,6 +188,21 @@ void * ventoy_alloc_chain(grub_size_t size)
|
||||
return p;
|
||||
}
|
||||
|
||||
void ventoy_memfile_env_set(const char *prefix, const void *buf, unsigned long long len)
|
||||
{
|
||||
char name[128];
|
||||
char val[64];
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_addr", prefix);
|
||||
grub_snprintf(val, sizeof(val), "0x%llx", (ulonglong)(ulong)buf);
|
||||
grub_env_set(name, val);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_size", prefix);
|
||||
grub_snprintf(val, sizeof(val), "%llu", len);
|
||||
grub_env_set(name, val);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static int ventoy_arch_mode_init(void)
|
||||
{
|
||||
|
@@ -616,13 +616,15 @@ grub_err_t ventoy_cmd_browser_disk(grub_extcmd_context_t ctxt, int argc, char **
|
||||
|
||||
if (g_tree_view_menu_style == 0)
|
||||
{
|
||||
browser_ssprintf(&mbuf, "menuentry \"%-10s [Return]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n}\n", "<--");
|
||||
browser_ssprintf(&mbuf, "menuentry \"%-10s [%s]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n}\n", "<--",
|
||||
ventoy_get_vmenu_title("VTMENU_BROWER_RETURN"));
|
||||
}
|
||||
else
|
||||
{
|
||||
browser_ssprintf(&mbuf, "menuentry \"[Return]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n}\n");
|
||||
browser_ssprintf(&mbuf, "menuentry \"[%s]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n}\n",
|
||||
ventoy_get_vmenu_title("VTMENU_BROWER_RETURN"));
|
||||
}
|
||||
|
||||
grub_disk_dev_iterate(ventoy_browser_iterate_disk, &mbuf);
|
||||
|
@@ -148,8 +148,6 @@ static char g_iso_vd_id_application[130];
|
||||
static int g_pager_flag = 0;
|
||||
static char g_old_pager[32];
|
||||
|
||||
static const char *g_vtoy_winpeshl_ini = "[LaunchApps]\r\nvtoyjump.exe";
|
||||
|
||||
const char *g_menu_class[img_type_max] =
|
||||
{
|
||||
"vtoyiso", "vtoywim", "vtoyefi", "vtoyimg", "vtoyvhd", "vtoyvtoy"
|
||||
@@ -160,6 +158,8 @@ const char *g_menu_prefix[img_type_max] =
|
||||
"iso", "wim", "efi", "img", "vhd", "vtoy"
|
||||
};
|
||||
|
||||
static int g_vtoy_secondary_need_recover = 0;
|
||||
|
||||
static int g_vtoy_load_prompt = 0;
|
||||
static char g_vtoy_prompt_msg[64];
|
||||
|
||||
@@ -1036,8 +1036,6 @@ static grub_err_t ventoy_cmd_concat_efi_iso(grub_extcmd_context_t ctxt, int argc
|
||||
int totlen = 0;
|
||||
int offset = 0;
|
||||
grub_file_t file;
|
||||
char name[32];
|
||||
char value[32];
|
||||
char *buf = NULL;
|
||||
char *data = NULL;
|
||||
ventoy_iso9660_override *dirent;
|
||||
@@ -1097,13 +1095,7 @@ static grub_err_t ventoy_cmd_concat_efi_iso(grub_extcmd_context_t ctxt, int argc
|
||||
grub_file_read(file, data + sizeof(ventoy_chain_head) + len, file->size);
|
||||
grub_file_close(file);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_addr", args[1]);
|
||||
grub_snprintf(value, sizeof(value), "0x%llx", (ulonglong)(ulong)data);
|
||||
grub_env_set(name, value);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_size", args[1]);
|
||||
grub_snprintf(value, sizeof(value), "%d", (int)(totlen));
|
||||
grub_env_set(name, value);
|
||||
ventoy_memfile_env_set(args[1], data, (ulonglong)totlen);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1148,6 +1140,10 @@ grub_ssize_t ventoy_load_file_with_prompt(grub_file_t file, void *buf, grub_ssiz
|
||||
left -= VTOY_SIZE_2MB;
|
||||
|
||||
div = grub_divmod64((grub_uint64_t)((size - left) * 100), (grub_uint64_t)size, &ro);
|
||||
if (div < 1)
|
||||
{
|
||||
div = 1;
|
||||
}
|
||||
grub_printf("\r%s %d%% ", g_vtoy_prompt_msg, (int)div);
|
||||
grub_refresh();
|
||||
}
|
||||
@@ -1166,8 +1162,6 @@ grub_ssize_t ventoy_load_file_with_prompt(grub_file_t file, void *buf, grub_ssiz
|
||||
static grub_err_t ventoy_cmd_load_file_to_mem(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int rc = 1;
|
||||
char name[32];
|
||||
char value[32];
|
||||
char *buf = NULL;
|
||||
grub_file_t file;
|
||||
enum grub_file_type type;
|
||||
@@ -1218,13 +1212,7 @@ static grub_err_t ventoy_cmd_load_file_to_mem(grub_extcmd_context_t ctxt, int ar
|
||||
grub_file_read(file, buf, file->size);
|
||||
}
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_addr", args[2]);
|
||||
grub_snprintf(value, sizeof(value), "0x%llx", (unsigned long long)(unsigned long)buf);
|
||||
grub_env_set(name, value);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_size", args[2]);
|
||||
grub_snprintf(value, sizeof(value), "%llu", (unsigned long long)file->size);
|
||||
grub_env_set(name, value);
|
||||
ventoy_memfile_env_set(args[2], buf, (ulonglong)(file->size));
|
||||
|
||||
grub_file_close(file);
|
||||
rc = 0;
|
||||
@@ -1236,8 +1224,6 @@ static grub_err_t ventoy_cmd_load_img_memdisk(grub_extcmd_context_t ctxt, int ar
|
||||
{
|
||||
int rc = 1;
|
||||
int headlen;
|
||||
char name[32];
|
||||
char value[32];
|
||||
char *buf = NULL;
|
||||
grub_file_t file;
|
||||
|
||||
@@ -1269,13 +1255,7 @@ static grub_err_t ventoy_cmd_load_img_memdisk(grub_extcmd_context_t ctxt, int ar
|
||||
|
||||
grub_file_read(file, buf + headlen, file->size);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_addr", args[1]);
|
||||
grub_snprintf(value, sizeof(value), "0x%llx", (unsigned long long)(unsigned long)buf);
|
||||
grub_env_set(name, value);
|
||||
|
||||
grub_snprintf(name, sizeof(name), "%s_size", args[1]);
|
||||
grub_snprintf(value, sizeof(value), "%llu", (unsigned long long)file->size);
|
||||
grub_env_set(name, value);
|
||||
ventoy_memfile_env_set(args[1], buf, (ulonglong)(file->size));
|
||||
|
||||
grub_file_close(file);
|
||||
rc = 0;
|
||||
@@ -2179,6 +2159,74 @@ int ventoy_fill_data(grub_uint32_t buflen, char *buffer)
|
||||
return len;
|
||||
}
|
||||
|
||||
static int
|
||||
ventoy_password_get (char buf[], unsigned buf_size)
|
||||
{
|
||||
unsigned i, cur_len = 0;
|
||||
int key;
|
||||
struct grub_term_coordinate *pos = grub_term_save_pos ();
|
||||
|
||||
while (1)
|
||||
{
|
||||
key = grub_getkey ();
|
||||
if (key == '\n' || key == '\r')
|
||||
break;
|
||||
|
||||
if (key == GRUB_TERM_ESC)
|
||||
{
|
||||
cur_len = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if (key == '\b')
|
||||
{
|
||||
if (cur_len)
|
||||
{
|
||||
grub_term_restore_pos (pos);
|
||||
for (i = 0; i < cur_len; i++)
|
||||
grub_xputs (" ");
|
||||
grub_term_restore_pos (pos);
|
||||
cur_len--;
|
||||
for (i = 0; i < cur_len; i++)
|
||||
grub_xputs ("*");
|
||||
grub_refresh ();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!grub_isprint (key))
|
||||
continue;
|
||||
|
||||
if (cur_len + 2 < buf_size)
|
||||
buf[cur_len++] = key;
|
||||
grub_xputs ("*");
|
||||
grub_refresh ();
|
||||
}
|
||||
|
||||
grub_memset (buf + cur_len, 0, buf_size - cur_len);
|
||||
|
||||
grub_xputs ("\n");
|
||||
grub_refresh ();
|
||||
grub_free (pos);
|
||||
|
||||
return (key != GRUB_TERM_ESC);
|
||||
}
|
||||
|
||||
static int ventoy_get_password(char buf[], unsigned buf_size)
|
||||
{
|
||||
const char *env = NULL;
|
||||
|
||||
env = grub_env_get("VTOY_SHOW_PASSWORD_ASTERISK");
|
||||
if (env && env[0] == '0' && env[1] == 0)
|
||||
{
|
||||
return grub_password_get(buf, buf_size);
|
||||
}
|
||||
else
|
||||
{
|
||||
return ventoy_password_get(buf, buf_size);
|
||||
}
|
||||
}
|
||||
|
||||
int ventoy_check_password(const vtoy_password *pwd, int retry)
|
||||
{
|
||||
int offset;
|
||||
@@ -2194,7 +2242,7 @@ int ventoy_check_password(const vtoy_password *pwd, int retry)
|
||||
|
||||
if (pwd->type == VTOY_PASSWORD_TXT)
|
||||
{
|
||||
grub_password_get(input, 128);
|
||||
ventoy_get_password(input, 128);
|
||||
if (grub_strcmp(pwd->text, input) == 0)
|
||||
{
|
||||
return 0;
|
||||
@@ -2202,7 +2250,7 @@ int ventoy_check_password(const vtoy_password *pwd, int retry)
|
||||
}
|
||||
else if (pwd->type == VTOY_PASSWORD_MD5)
|
||||
{
|
||||
grub_password_get(input, 128);
|
||||
ventoy_get_password(input, 128);
|
||||
grub_crypto_hash(GRUB_MD_MD5, md5, input, grub_strlen(input));
|
||||
if (grub_memcmp(pwd->md5, md5, 16) == 0)
|
||||
{
|
||||
@@ -2212,7 +2260,7 @@ int ventoy_check_password(const vtoy_password *pwd, int retry)
|
||||
else if (pwd->type == VTOY_PASSWORD_SALT_MD5)
|
||||
{
|
||||
offset = (int)grub_snprintf(input, 128, "%s", pwd->salt);
|
||||
grub_password_get(input + offset, 128);
|
||||
ventoy_get_password(input + offset, 128);
|
||||
|
||||
grub_crypto_hash(GRUB_MD_MD5, md5, input, grub_strlen(input));
|
||||
if (grub_memcmp(pwd->md5, md5, 16) == 0)
|
||||
@@ -2298,16 +2346,16 @@ static int ventoy_dynamic_tree_menu(img_iterator_node *node)
|
||||
if (g_tree_view_menu_style == 0)
|
||||
{
|
||||
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
||||
"menuentry \"%-10s [Return to ListView]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
"menuentry \"%-10s [%s]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n"
|
||||
"}\n", "<--");
|
||||
"}\n", "<--", ventoy_get_vmenu_title("VTMENU_RET_TO_LISTVIEW"));
|
||||
}
|
||||
else
|
||||
{
|
||||
vtoy_ssprintf(g_tree_script_buf, g_tree_script_pos,
|
||||
"menuentry \"[Return to ListView]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
"menuentry \"[%s]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n"
|
||||
"}\n");
|
||||
"}\n", ventoy_get_vmenu_title("VTMENU_RET_TO_LISTVIEW"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2886,9 +2934,9 @@ static grub_err_t ventoy_cmd_list_img(grub_extcmd_context_t ctxt, int argc, char
|
||||
if (g_default_menu_mode == 1)
|
||||
{
|
||||
vtoy_ssprintf(g_list_script_buf, g_list_script_pos,
|
||||
"menuentry \"%s [Return to TreeView]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
"menuentry \"%s [%s]\" --class=\"vtoyret\" VTOY_RET {\n "
|
||||
" echo 'return ...' \n"
|
||||
"}\n", "<--");
|
||||
"}\n", "<--", ventoy_get_vmenu_title("VTMENU_RET_TO_TREEVIEW"));
|
||||
}
|
||||
|
||||
for (cur = g_ventoy_img_list; cur; cur = cur->next)
|
||||
@@ -3657,13 +3705,14 @@ static grub_err_t ventoy_cmd_sel_auto_install(grub_extcmd_context_t ctxt, int ar
|
||||
vtoy_ssprintf(buf, pos, "set timeout=%d\n", node->timeout);
|
||||
}
|
||||
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"Boot without auto installation template\" {\n"
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"@VTMENU_NO_AUTOINS_SCRIPT\" --class=\"sel_auto_install\" {\n"
|
||||
" echo %s\n}\n", "");
|
||||
|
||||
for (i = 0; i < node->templatenum; i++)
|
||||
{
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"Boot with %s\"{\n"
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"%s %s\" --class=\"sel_auto_install\" {\n"
|
||||
" echo \"\"\n}\n",
|
||||
ventoy_get_vmenu_title("VTMENU_AUTOINS_USE"),
|
||||
node->templatepath[i].path);
|
||||
}
|
||||
|
||||
@@ -3763,13 +3812,14 @@ static grub_err_t ventoy_cmd_sel_persistence(grub_extcmd_context_t ctxt, int arg
|
||||
vtoy_ssprintf(buf, pos, "set timeout=%d\n", node->timeout);
|
||||
}
|
||||
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"Boot without persistence\" {\n"
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"@VTMENU_NO_PERSISTENCE\" --class=\"sel_persistence\" {\n"
|
||||
" echo %s\n}\n", "");
|
||||
|
||||
for (i = 0; i < node->backendnum; i++)
|
||||
{
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"Boot with %s\" {\n"
|
||||
vtoy_ssprintf(buf, pos, "menuentry \"%s %s\" --class=\"sel_persistence\" {\n"
|
||||
" echo \"\"\n}\n",
|
||||
ventoy_get_vmenu_title("VTMENU_PERSIST_USE"),
|
||||
node->backendpath[i].path);
|
||||
|
||||
}
|
||||
@@ -5956,6 +6006,195 @@ static grub_err_t ventoy_cmd_dump_rsv_page(grub_extcmd_context_t ctxt, int argc,
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_need_secondary_menu(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
const char *env = NULL;
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (g_ventoy_memdisk_mode || g_ventoy_grub2_mode || g_ventoy_wimboot_mode || g_ventoy_iso_raw)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ventoy_check_mode_by_name(args[0], "vtgrub2") ||
|
||||
ventoy_check_mode_by_name(args[0], "vtwimboot") ||
|
||||
ventoy_check_mode_by_name(args[0], "vtmemdisk") ||
|
||||
ventoy_check_mode_by_name(args[0], "vtnormal")
|
||||
)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
env = grub_env_get("VTOY_SECONDARY_BOOT_MENU");
|
||||
if (env && env[0] == '0' && env[1] == 0)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_show_secondary_menu(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int n = 0;
|
||||
int pos = 0;
|
||||
int len = 0;
|
||||
int select = 0;
|
||||
int timeout = 0;
|
||||
char *cmd = NULL;
|
||||
const char *env = NULL;
|
||||
ulonglong fsize = 0;
|
||||
char cfgfile[128];
|
||||
int seldata[16] = {0};
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
len = 8 * VTOY_SIZE_1KB;
|
||||
cmd = (char *)grub_malloc(len);
|
||||
if (!cmd)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
g_vtoy_secondary_need_recover = 0;
|
||||
grub_env_unset("VTOY_CHKSUM_FILE_PATH");
|
||||
|
||||
env = grub_env_get("VTOY_SECONDARY_TIMEOUT");
|
||||
if (env)
|
||||
{
|
||||
timeout = (int)grub_strtol(env, NULL, 10);
|
||||
}
|
||||
|
||||
if (timeout > 0)
|
||||
{
|
||||
vtoy_len_ssprintf(cmd, pos, len, "set timeout=%d\n", timeout);
|
||||
}
|
||||
|
||||
fsize = grub_strtoull(args[2], NULL, 10);
|
||||
|
||||
vtoy_dummy_menuentry(cmd, pos, len, "@VTMENU_NORMAL_MODE", "second_normal"); seldata[n++] = 1;
|
||||
|
||||
if (grub_strcmp(args[1], "Unix") != 0)
|
||||
{
|
||||
if (grub_strcmp(args[1], "Windows") == 0)
|
||||
{
|
||||
vtoy_dummy_menuentry(cmd, pos, len, "@VTMENU_WIMBOOT_MODE", "second_wimboot"); seldata[n++] = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
vtoy_dummy_menuentry(cmd, pos, len, "@VTMENU_GRUB2_MODE", "second_grub2"); seldata[n++] = 3;
|
||||
}
|
||||
|
||||
if (fsize <= VTOY_SIZE_1GB)
|
||||
{
|
||||
vtoy_dummy_menuentry(cmd, pos, len, "@VTMENU_MEMDISK_MODE", "second_memdisk"); seldata[n++] = 4;
|
||||
}
|
||||
}
|
||||
|
||||
vtoy_dummy_menuentry(cmd, pos, len, "@VTMENU_FILE_CHKSUM", "second_checksum"); seldata[n++] = 5;
|
||||
|
||||
do {
|
||||
g_ventoy_menu_esc = 1;
|
||||
g_ventoy_suppress_esc = 1;
|
||||
g_ventoy_suppress_esc_default = 0;
|
||||
g_ventoy_secondary_menu_on = 1;
|
||||
grub_snprintf(cfgfile, sizeof(cfgfile), "configfile mem:0x%llx:size:%d", (ulonglong)(ulong)cmd, pos);
|
||||
grub_script_execute_sourcecode(cfgfile);
|
||||
g_ventoy_menu_esc = 0;
|
||||
g_ventoy_suppress_esc = 0;
|
||||
g_ventoy_suppress_esc_default = 1;
|
||||
g_ventoy_secondary_menu_on = 0;
|
||||
|
||||
select = seldata[g_ventoy_last_entry];
|
||||
|
||||
if (select == 2)
|
||||
{
|
||||
g_ventoy_wimboot_mode = 1;
|
||||
g_vtoy_secondary_need_recover = 1;
|
||||
}
|
||||
else if (select == 3)
|
||||
{
|
||||
g_ventoy_grub2_mode = 1;
|
||||
g_vtoy_secondary_need_recover = 2;
|
||||
}
|
||||
else if (select == 4)
|
||||
{
|
||||
g_ventoy_memdisk_mode = 1;
|
||||
g_vtoy_secondary_need_recover = 3;
|
||||
}
|
||||
else if (select == 5)
|
||||
{
|
||||
grub_env_set("VTOY_CHKSUM_FILE_PATH", args[0]);
|
||||
grub_script_execute_sourcecode("configfile $vtoy_efi_part/grub/checksum.cfg");
|
||||
}
|
||||
}while (select == 5);
|
||||
|
||||
grub_free(cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_secondary_recover_mode(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
(void)args;
|
||||
|
||||
if (g_vtoy_secondary_need_recover == 1)
|
||||
{
|
||||
g_ventoy_wimboot_mode = 0;
|
||||
}
|
||||
else if (g_vtoy_secondary_need_recover == 2)
|
||||
{
|
||||
g_ventoy_grub2_mode = 0;
|
||||
}
|
||||
else if (g_vtoy_secondary_need_recover == 3)
|
||||
{
|
||||
g_ventoy_memdisk_mode = 0;
|
||||
}
|
||||
|
||||
g_vtoy_secondary_need_recover = 0;
|
||||
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_fs_ignore_case(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (args[0][0] == '0')
|
||||
{
|
||||
g_ventoy_case_insensitive = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_ventoy_case_insensitive = 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_init_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
ventoy_plugin_load_menu_lang(1, args[0]);
|
||||
VENTOY_CMD_RETURN(0);
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_load_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
ventoy_plugin_load_menu_lang(0, args[0]);
|
||||
VENTOY_CMD_RETURN(0);
|
||||
}
|
||||
|
||||
int ventoy_env_init(void)
|
||||
{
|
||||
int i;
|
||||
@@ -5987,12 +6226,6 @@ int ventoy_env_init(void)
|
||||
grub_env_export("ventoy_env_param");
|
||||
}
|
||||
|
||||
grub_snprintf(buf, sizeof(buf), "0x%lx", (ulong)g_vtoy_winpeshl_ini);
|
||||
grub_env_set("vtoy_winpeshl_ini_addr", buf);
|
||||
|
||||
grub_snprintf(buf, sizeof(buf), "%d", (int)grub_strlen(g_vtoy_winpeshl_ini));
|
||||
grub_env_set("vtoy_winpeshl_ini_size", buf);
|
||||
|
||||
grub_env_export("vtoy_winpeshl_ini_addr");
|
||||
grub_env_export("vtoy_winpeshl_ini_size");
|
||||
|
||||
@@ -6003,6 +6236,10 @@ int ventoy_env_init(void)
|
||||
grub_snprintf(buf, sizeof(buf), "0x%lx", (ulong)ventoy_chain_file_read);
|
||||
grub_env_set("vtoy_chain_file_read", buf);
|
||||
grub_env_export("vtoy_chain_file_read");
|
||||
|
||||
grub_snprintf(buf, sizeof(buf), "0x%lx", (ulong)ventoy_get_vmenu_title);
|
||||
grub_env_set("VTOY_VMENU_FUNC_ADDR", buf);
|
||||
grub_env_export("VTOY_VMENU_FUNC_ADDR");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -6162,6 +6399,17 @@ static cmd_para ventoy_cmds[] =
|
||||
{ "vt_iso_vd_id_begin", ventoy_cmd_iso_vd_id_begin, 0, NULL, "", "", NULL },
|
||||
{ "vt_fn_mutex_lock", ventoy_cmd_fn_mutex_lock, 0, NULL, "", "", NULL },
|
||||
{ "vt_efi_dump_rsv_page", ventoy_cmd_dump_rsv_page, 0, NULL, "", "", NULL },
|
||||
{ "vt_is_standard_winiso", ventoy_cmd_is_standard_winiso, 0, NULL, "", "", NULL },
|
||||
{ "vt_sel_winpe_wim", ventoy_cmd_sel_winpe_wim, 0, NULL, "", "", NULL },
|
||||
{ "vt_need_secondary_menu", ventoy_cmd_need_secondary_menu, 0, NULL, "", "", NULL },
|
||||
{ "vt_show_secondary_menu", ventoy_cmd_show_secondary_menu, 0, NULL, "", "", NULL },
|
||||
{ "vt_fs_ignore_case", ventoy_cmd_fs_ignore_case, 0, NULL, "", "", NULL },
|
||||
{ "vt_systemd_menu", ventoy_cmd_linux_systemd_menu, 0, NULL, "", "", NULL },
|
||||
{ "vt_limine_menu", ventoy_cmd_linux_limine_menu, 0, NULL, "", "", NULL },
|
||||
{ "vt_secondary_recover_mode", ventoy_cmd_secondary_recover_mode, 0, NULL, "", "", NULL },
|
||||
{ "vt_load_menu_lang", ventoy_cmd_load_menu_lang, 0, NULL, "", "", NULL },
|
||||
{ "vt_init_menu_lang", ventoy_cmd_init_menu_lang, 0, NULL, "", "", NULL },
|
||||
{ "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
|
||||
};
|
||||
|
||||
int ventoy_register_all_cmd(void)
|
||||
|
@@ -29,6 +29,8 @@
|
||||
|
||||
#define VTOY_FILT_MIN_FILE_SIZE 32768
|
||||
|
||||
#define VTOY_LINUX_SYSTEMD_MENU_MAX_BUF 16384
|
||||
|
||||
#define VTOY_SIZE_1GB 1073741824
|
||||
#define VTOY_SIZE_1MB (1024 * 1024)
|
||||
#define VTOY_SIZE_2MB (2 * 1024 * 1024)
|
||||
@@ -329,9 +331,16 @@ void ventoy_debug(const char *fmt, ...);
|
||||
#define vtoy_ssprintf(buf, pos, fmt, args...) \
|
||||
pos += grub_snprintf(buf + pos, VTOY_MAX_SCRIPT_BUF - pos, fmt, ##args)
|
||||
|
||||
#define vtoy_len_ssprintf(buf, pos, len, fmt, args...) \
|
||||
pos += grub_snprintf(buf + pos, len - pos, fmt, ##args)
|
||||
|
||||
#define browser_ssprintf(mbuf, fmt, args...) \
|
||||
(mbuf)->pos += grub_snprintf((mbuf)->buf + (mbuf)->pos, (mbuf)->max - (mbuf)->pos, fmt, ##args)
|
||||
|
||||
#define vtoy_dummy_menuentry(buf, pos, len, title, class) \
|
||||
vtoy_len_ssprintf(buf, pos, len, "menuentry \"%s\" --class=\"%s\" {\n echo \"\"\n}\n", title, class)
|
||||
|
||||
|
||||
#define FLAG_HEADER_RESERVED 0x00000001
|
||||
#define FLAG_HEADER_COMPRESSION 0x00000002
|
||||
#define FLAG_HEADER_READONLY 0x00000004
|
||||
@@ -613,6 +622,8 @@ grub_err_t ventoy_cmd_clear_initrd_list(grub_extcmd_context_t ctxt, int argc, ch
|
||||
grub_uint32_t ventoy_get_iso_boot_catlog(grub_file_t file);
|
||||
int ventoy_has_efi_eltorito(grub_file_t file, grub_uint32_t sector);
|
||||
grub_err_t ventoy_cmd_linux_chain_data(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_linux_systemd_menu(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_linux_limine_menu(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_linux_locate_initrd(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_valid_initrd_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
@@ -633,6 +644,7 @@ grub_err_t ventoy_cmd_windows_chain_data(grub_extcmd_context_t ctxt, int argc, c
|
||||
grub_err_t ventoy_cmd_windows_wimboot_data(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_wim_chain_data(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_wim_check_bootable(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_is_standard_winiso(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_dump_wim_patch(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_sel_wimboot(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_set_wim_prompt(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
@@ -1028,6 +1040,7 @@ typedef struct menu_password
|
||||
}menu_password;
|
||||
|
||||
extern int g_ventoy_menu_esc;
|
||||
extern int g_ventoy_secondary_menu_on;
|
||||
extern int g_ventoy_suppress_esc;
|
||||
extern int g_ventoy_suppress_esc_default;
|
||||
extern int g_ventoy_last_entry;
|
||||
@@ -1040,6 +1053,9 @@ extern int g_ventoy_case_insensitive;
|
||||
extern int g_ventoy_fn_mutex;
|
||||
extern grub_uint8_t g_ventoy_chain_type;
|
||||
extern int g_vhdboot_enable;
|
||||
extern int g_default_menu_mode;
|
||||
extern char g_ventoy_hotkey_tip[256];
|
||||
extern int g_ventoy_menu_refresh;
|
||||
|
||||
#define VENTOY_IMG_WHITE_LIST 1
|
||||
#define VENTOY_IMG_BLACK_LIST 2
|
||||
@@ -1111,6 +1127,7 @@ grub_err_t ventoy_cmd_linux_get_main_initrd_index(grub_extcmd_context_t ctxt, in
|
||||
grub_err_t ventoy_cmd_collect_wim_patch(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_wim_patch_count(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_locate_wim_patch(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_sel_winpe_wim(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
grub_err_t ventoy_cmd_unix_chain_data(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
int ventoy_get_disk_guid(const char *filename, grub_uint8_t *guid, grub_uint8_t *signature);
|
||||
grub_err_t ventoy_cmd_unix_reset(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
@@ -1218,6 +1235,16 @@ typedef struct var_node
|
||||
struct var_node *next;
|
||||
}var_node;
|
||||
|
||||
typedef struct systemd_menu_ctx
|
||||
{
|
||||
char *dev;
|
||||
char *buf;
|
||||
int pos;
|
||||
int len;
|
||||
}systemd_menu_ctx;
|
||||
|
||||
#define vtoy_check_goto_out(p) if (!p) goto out
|
||||
|
||||
extern char *g_tree_script_buf;
|
||||
extern int g_tree_script_pos;
|
||||
extern int g_tree_script_pre;
|
||||
@@ -1234,6 +1261,10 @@ grub_err_t ventoy_cmd_browser_disk(grub_extcmd_context_t ctxt, int argc, char **
|
||||
int ventoy_get_fs_type(const char *fs);
|
||||
int ventoy_img_name_valid(const char *filename, grub_size_t namelen);
|
||||
void * ventoy_alloc_chain(grub_size_t size);
|
||||
int ventoy_plugin_load_menu_lang(int init, const char *lang);
|
||||
const char *ventoy_get_vmenu_title(const char *vMenu);
|
||||
grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||
extern int ventoy_menu_push_key(int code);
|
||||
|
||||
#endif /* __VENTOY_DEF_H__ */
|
||||
|
||||
|
@@ -333,12 +333,84 @@ end:
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
static int ventoy_linux_initrd_collect_hook(const char *filename, const struct grub_dirhook_info *info, void *data)
|
||||
{
|
||||
int len;
|
||||
initrd_info *img = NULL;
|
||||
|
||||
(void)data;
|
||||
|
||||
if (0 == info->dir)
|
||||
{
|
||||
if (grub_strncmp(filename, "initrd", 6) == 0)
|
||||
{
|
||||
len = (int)grub_strlen(filename);
|
||||
if (grub_strcmp(filename + len - 4, ".img") == 0)
|
||||
{
|
||||
img = grub_zalloc(sizeof(initrd_info));
|
||||
if (img)
|
||||
{
|
||||
grub_snprintf(img->name, sizeof(img->name), "/boot/%s", filename);
|
||||
|
||||
if (ventoy_find_initrd_by_name(g_initrd_img_list, img->name))
|
||||
{
|
||||
grub_free(img);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_initrd_img_list)
|
||||
{
|
||||
img->prev = g_initrd_img_tail;
|
||||
g_initrd_img_tail->next = img;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_initrd_img_list = img;
|
||||
}
|
||||
|
||||
g_initrd_img_tail = img;
|
||||
g_initrd_img_count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ventoy_linux_collect_boot_initrds(void)
|
||||
{
|
||||
grub_fs_t fs;
|
||||
grub_device_t dev = NULL;
|
||||
|
||||
dev = grub_device_open("loop");
|
||||
if (!dev)
|
||||
{
|
||||
debug("failed to open device loop\n");
|
||||
goto end;
|
||||
}
|
||||
|
||||
fs = grub_fs_probe(dev);
|
||||
if (!fs)
|
||||
{
|
||||
debug("failed to probe fs %d\n", grub_errno);
|
||||
goto end;
|
||||
}
|
||||
|
||||
fs->fs_dir(dev, "/boot", ventoy_linux_initrd_collect_hook, NULL);
|
||||
|
||||
end:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
||||
{
|
||||
int i = 0;
|
||||
int len = 0;
|
||||
int dollar = 0;
|
||||
int quotation = 0;
|
||||
int initrd_dollar = 0;
|
||||
grub_file_t file = NULL;
|
||||
char *buf = NULL;
|
||||
char *start = NULL;
|
||||
@@ -421,6 +493,19 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
||||
debug("Remove quotation <%s>\n", img->name);
|
||||
}
|
||||
|
||||
/* special process for /boot/initrd$XXX.img */
|
||||
if (dollar == 1)
|
||||
{
|
||||
if (grub_strncmp(img->name, "/boot/initrd$", 13) == 0)
|
||||
{
|
||||
len = (int)grub_strlen(img->name);
|
||||
if (grub_strcmp(img->name + len - 4, ".img") == 0)
|
||||
{
|
||||
initrd_dollar++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (dollar == 1 || ventoy_find_initrd_by_name(g_initrd_img_list, img->name))
|
||||
{
|
||||
grub_free(img);
|
||||
@@ -458,6 +543,12 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
||||
grub_free(buf);
|
||||
grub_file_close(file);
|
||||
|
||||
if (initrd_dollar > 0 && grub_strncmp(fileName, "(loop)/", 7) == 0)
|
||||
{
|
||||
debug("collect initrd variable %d\n", initrd_dollar);
|
||||
ventoy_linux_collect_boot_initrds();
|
||||
}
|
||||
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
@@ -1481,7 +1572,6 @@ grub_err_t ventoy_cmd_trailer_cpio(grub_extcmd_context_t ctxt, int argc, char **
|
||||
grub_uint8_t *bufend;
|
||||
cpio_newc_header *head;
|
||||
grub_file_t file;
|
||||
char value[64];
|
||||
const grub_uint8_t trailler[124] = {
|
||||
0x30, 0x37, 0x30, 0x37, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
|
||||
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
|
||||
@@ -1552,11 +1642,8 @@ grub_err_t ventoy_cmd_trailer_cpio(grub_extcmd_context_t ctxt, int argc, char **
|
||||
name = (char *)(head + 1);
|
||||
}
|
||||
}
|
||||
|
||||
grub_snprintf(value, sizeof(value), "0x%llx", (ulonglong)(ulong)g_ventoy_cpio_buf);
|
||||
ventoy_set_env("ventoy_cpio_addr", value);
|
||||
grub_snprintf(value, sizeof(value), "%d", bufsize);
|
||||
ventoy_set_env("ventoy_cpio_size", value);
|
||||
|
||||
ventoy_memfile_env_set("ventoy_cpio", g_ventoy_cpio_buf, (ulonglong)bufsize);
|
||||
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
@@ -1578,7 +1665,6 @@ grub_err_t ventoy_cmd_linux_chain_data(grub_extcmd_context_t ctxt, int argc, cha
|
||||
const char *pLastChain = NULL;
|
||||
const char *compatible;
|
||||
ventoy_chain_head *chain;
|
||||
char envbuf[64];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
@@ -1666,10 +1752,7 @@ grub_err_t ventoy_cmd_linux_chain_data(grub_extcmd_context_t ctxt, int argc, cha
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_memset(chain, 0, sizeof(ventoy_chain_head));
|
||||
|
||||
@@ -1720,3 +1803,309 @@ grub_err_t ventoy_cmd_linux_chain_data(grub_extcmd_context_t ctxt, int argc, cha
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
static char *ventoy_systemd_conf_tag(char *buf, const char *tag, int optional)
|
||||
{
|
||||
int taglen = 0;
|
||||
char *start = NULL;
|
||||
char *nextline = NULL;
|
||||
|
||||
taglen = grub_strlen(tag);
|
||||
for (start = buf; start; start = nextline)
|
||||
{
|
||||
nextline = ventoy_get_line(start);
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
|
||||
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
||||
{
|
||||
start += taglen;
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
return start;
|
||||
}
|
||||
}
|
||||
|
||||
if (optional == 0)
|
||||
{
|
||||
debug("tag<%s> NOT found\n", tag);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int ventoy_systemd_conf_hook(const char *filename, const struct grub_dirhook_info *info, void *data)
|
||||
{
|
||||
int oldpos = 0;
|
||||
char *tag = NULL;
|
||||
char *bkbuf = NULL;
|
||||
char *filebuf = NULL;
|
||||
grub_file_t file = NULL;
|
||||
systemd_menu_ctx *ctx = (systemd_menu_ctx *)data;
|
||||
|
||||
debug("ventoy_systemd_conf_hook %s\n", filename);
|
||||
|
||||
if (info->dir || NULL == grub_strstr(filename, ".conf"))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s/loader/entries/%s", ctx->dev, filename);
|
||||
if (!file)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
filebuf = grub_zalloc(2 * file->size + 8);
|
||||
if (!filebuf)
|
||||
{
|
||||
goto out;
|
||||
}
|
||||
|
||||
bkbuf = filebuf + file->size + 4;
|
||||
grub_file_read(file, bkbuf, file->size);
|
||||
|
||||
oldpos = ctx->pos;
|
||||
|
||||
/* title --> menuentry */
|
||||
grub_memcpy(filebuf, bkbuf, file->size);
|
||||
tag = ventoy_systemd_conf_tag(filebuf, "title", 0);
|
||||
vtoy_check_goto_out(tag);
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, "menuentry \"%s\" {\n", tag);
|
||||
|
||||
/* linux xxx */
|
||||
grub_memcpy(filebuf, bkbuf, file->size);
|
||||
tag = ventoy_systemd_conf_tag(filebuf, "linux", 0);
|
||||
if (!tag)
|
||||
{
|
||||
ctx->pos = oldpos;
|
||||
goto out;
|
||||
}
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, " echo \"Downloading kernel ...\"\n linux %s ", tag);
|
||||
|
||||
/* kernel options */
|
||||
grub_memcpy(filebuf, bkbuf, file->size);
|
||||
tag = ventoy_systemd_conf_tag(filebuf, "options", 0);
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, "%s \n", tag ? tag : "");
|
||||
|
||||
|
||||
/* initrd xxx xxx xxx */
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, " echo \"Downloading initrd ...\"\n initrd ");
|
||||
grub_memcpy(filebuf, bkbuf, file->size);
|
||||
tag = ventoy_systemd_conf_tag(filebuf, "initrd", 1);
|
||||
while (tag)
|
||||
{
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, "%s ", tag);
|
||||
tag = ventoy_systemd_conf_tag(tag + grub_strlen(tag) + 1, "initrd", 1);
|
||||
}
|
||||
|
||||
vtoy_len_ssprintf(ctx->buf, ctx->pos, ctx->len, "\n boot\n}\n");
|
||||
|
||||
out:
|
||||
grub_check_free(filebuf);
|
||||
grub_file_close(file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_linux_systemd_menu(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
static char *buf = NULL;
|
||||
grub_fs_t fs;
|
||||
char *device_name = NULL;
|
||||
grub_device_t dev = NULL;
|
||||
systemd_menu_ctx ctx;
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (!buf)
|
||||
{
|
||||
buf = grub_malloc(VTOY_LINUX_SYSTEMD_MENU_MAX_BUF);
|
||||
if (!buf)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
device_name = grub_file_get_device_name(args[0]);
|
||||
if (!device_name)
|
||||
{
|
||||
debug("failed to get device name %s\n", args[0]);
|
||||
goto end;
|
||||
}
|
||||
|
||||
dev = grub_device_open(device_name);
|
||||
if (!dev)
|
||||
{
|
||||
debug("failed to open device %s\n", device_name);
|
||||
goto end;
|
||||
}
|
||||
|
||||
fs = grub_fs_probe(dev);
|
||||
if (!fs)
|
||||
{
|
||||
debug("failed to probe fs %d\n", grub_errno);
|
||||
goto end;
|
||||
}
|
||||
|
||||
ctx.dev = args[0];
|
||||
ctx.buf = buf;
|
||||
ctx.pos = 0;
|
||||
ctx.len = VTOY_LINUX_SYSTEMD_MENU_MAX_BUF;
|
||||
fs->fs_dir(dev, "/loader/entries", ventoy_systemd_conf_hook, &ctx);
|
||||
|
||||
ventoy_memfile_env_set(args[1], buf, (ulonglong)(ctx.pos));
|
||||
|
||||
end:
|
||||
grub_check_free(device_name);
|
||||
check_free(dev, grub_device_close);
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
static int ventoy_limine_path_convert(char *path)
|
||||
{
|
||||
char newpath[256] = {0};
|
||||
|
||||
if (grub_strncmp(path, "boot://2/", 9) == 0)
|
||||
{
|
||||
grub_snprintf(newpath, sizeof(newpath), "(vtimghd,2)/%s", path + 9);
|
||||
}
|
||||
else if (grub_strncmp(path, "boot://1/", 9) == 0)
|
||||
{
|
||||
grub_snprintf(newpath, sizeof(newpath), "(vtimghd,1)/%s", path + 9);
|
||||
}
|
||||
|
||||
if (newpath[0])
|
||||
{
|
||||
grub_snprintf(path, 1024, "%s", newpath);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_linux_limine_menu(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int pos = 0;
|
||||
int sub = 0;
|
||||
int len = VTOY_LINUX_SYSTEMD_MENU_MAX_BUF;
|
||||
char *filebuf = NULL;
|
||||
char *start = NULL;
|
||||
char *nextline = NULL;
|
||||
grub_file_t file = NULL;
|
||||
char *title = NULL;
|
||||
char *kernel = NULL;
|
||||
char *initrd = NULL;
|
||||
char *param = NULL;
|
||||
static char *buf = NULL;
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (!buf)
|
||||
{
|
||||
buf = grub_malloc(len + 4 * 1024);
|
||||
if (!buf)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
|
||||
title = buf + len;
|
||||
kernel = title + 1024;
|
||||
initrd = kernel + 1024;
|
||||
param = initrd + 1024;
|
||||
|
||||
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, args[0]);
|
||||
if (!file)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
filebuf = grub_zalloc(file->size + 8);
|
||||
if (!filebuf)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
|
||||
grub_file_read(file, filebuf, file->size);
|
||||
grub_file_close(file);
|
||||
|
||||
|
||||
title[0] = kernel[0] = initrd[0] = param[0] = 0;
|
||||
for (start = filebuf; start; start = nextline)
|
||||
{
|
||||
nextline = ventoy_get_line(start);
|
||||
while (ventoy_isspace(*start))
|
||||
{
|
||||
start++;
|
||||
}
|
||||
|
||||
if (start[0] == ':')
|
||||
{
|
||||
if (start[1] == ':')
|
||||
{
|
||||
grub_snprintf(title, 1024, "%s", start + 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sub)
|
||||
{
|
||||
vtoy_len_ssprintf(buf, pos, len, "}\n");
|
||||
sub = 0;
|
||||
}
|
||||
|
||||
if (nextline && nextline[0] == ':' && nextline[1] == ':')
|
||||
{
|
||||
vtoy_len_ssprintf(buf, pos, len, "submenu \"[+] %s\" {\n", start + 2);
|
||||
sub = 1;
|
||||
title[0] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_snprintf(title, 1024, "%s", start + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (grub_strncmp(start, "KERNEL_PATH=", 12) == 0)
|
||||
{
|
||||
grub_snprintf(kernel, 1024, "%s", start + 12);
|
||||
}
|
||||
else if (grub_strncmp(start, "MODULE_PATH=", 12) == 0)
|
||||
{
|
||||
grub_snprintf(initrd, 1024, "%s", start + 12);
|
||||
}
|
||||
else if (grub_strncmp(start, "KERNEL_CMDLINE=", 15) == 0)
|
||||
{
|
||||
grub_snprintf(param, 1024, "%s", start + 15);
|
||||
}
|
||||
|
||||
if (title[0] && kernel[0] && initrd[0] && param[0])
|
||||
{
|
||||
ventoy_limine_path_convert(kernel);
|
||||
ventoy_limine_path_convert(initrd);
|
||||
|
||||
vtoy_len_ssprintf(buf, pos, len, "menuentry \"%s\" {\n", title);
|
||||
vtoy_len_ssprintf(buf, pos, len, " echo \"Downloading kernel ...\"\n linux %s %s\n", kernel, param);
|
||||
vtoy_len_ssprintf(buf, pos, len, " echo \"Downloading initrd ...\"\n initrd %s\n", initrd);
|
||||
vtoy_len_ssprintf(buf, pos, len, "}\n");
|
||||
|
||||
title[0] = kernel[0] = initrd[0] = param[0] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (sub)
|
||||
{
|
||||
vtoy_len_ssprintf(buf, pos, len, "}\n");
|
||||
sub = 0;
|
||||
}
|
||||
|
||||
ventoy_memfile_env_set(args[1], buf, (ulonglong)pos);
|
||||
|
||||
end:
|
||||
grub_check_free(filebuf);
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
|
@@ -56,12 +56,14 @@ static injection_config *g_injection_head = NULL;
|
||||
static auto_memdisk *g_auto_memdisk_head = NULL;
|
||||
static image_list *g_image_list_head = NULL;
|
||||
static conf_replace *g_conf_replace_head = NULL;
|
||||
static VTOY_JSON *g_menu_lang_json = NULL;
|
||||
|
||||
static int g_theme_id = 0;
|
||||
static int g_theme_num = 0;
|
||||
static theme_list *g_theme_head = NULL;
|
||||
static int g_theme_random = vtoy_theme_random_boot_second;
|
||||
static char g_theme_single_file[256];
|
||||
static char g_cur_menu_language[32] = {0};
|
||||
|
||||
static int ventoy_plugin_is_parent(const char *pat, int patlen, const char *isopath)
|
||||
{
|
||||
@@ -3369,7 +3371,7 @@ grub_err_t ventoy_cmd_select_theme_cfg(grub_extcmd_context_t ctxt, int argc, cha
|
||||
}
|
||||
|
||||
pos += grub_snprintf(buf + pos, bufsize - pos,
|
||||
"menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {\n"
|
||||
"menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {\n"
|
||||
"echo 'Return ...'\n"
|
||||
"}\n");
|
||||
|
||||
@@ -3467,3 +3469,97 @@ grub_err_t ventoy_cmd_set_theme_path(grub_extcmd_context_t ctxt, int argc, char
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
const char *ventoy_get_vmenu_title(const char *vMenu)
|
||||
{
|
||||
return vtoy_json_get_string_ex(g_menu_lang_json->pstChild, vMenu);
|
||||
}
|
||||
|
||||
int ventoy_plugin_load_menu_lang(int init, const char *lang)
|
||||
{
|
||||
int ret = 1;
|
||||
grub_file_t file = NULL;
|
||||
char *buf = NULL;
|
||||
|
||||
if (grub_strcmp(lang, g_cur_menu_language) == 0)
|
||||
{
|
||||
debug("Same menu lang %s\n", lang);
|
||||
return 0;
|
||||
}
|
||||
grub_snprintf(g_cur_menu_language, sizeof(g_cur_menu_language), "%s", lang);
|
||||
|
||||
debug("Load menu lang %s\n", g_cur_menu_language);
|
||||
|
||||
if (g_menu_lang_json)
|
||||
{
|
||||
vtoy_json_destroy(g_menu_lang_json);
|
||||
g_menu_lang_json = NULL;
|
||||
}
|
||||
|
||||
g_menu_lang_json = vtoy_json_create();
|
||||
if (!g_menu_lang_json)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
|
||||
file = ventoy_grub_file_open(GRUB_FILE_TYPE_LINUX_INITRD, "(vt_menu_tarfs)/menu/%s.json", lang);
|
||||
if (!file)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
|
||||
buf = grub_malloc(file->size + 1);
|
||||
if (!buf)
|
||||
{
|
||||
grub_printf("Failed to malloc memory %lu.\n", (ulong)(file->size + 1));
|
||||
goto end;
|
||||
}
|
||||
|
||||
buf[file->size] = 0;
|
||||
grub_file_read(file, buf, file->size);
|
||||
|
||||
vtoy_json_parse(g_menu_lang_json, buf);
|
||||
|
||||
if (g_default_menu_mode == 0)
|
||||
{
|
||||
grub_snprintf(g_ventoy_hotkey_tip, sizeof(g_ventoy_hotkey_tip), "%s", ventoy_get_vmenu_title("VTMENU_STR_HOTKEY_TREE"));
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_snprintf(g_ventoy_hotkey_tip, sizeof(g_ventoy_hotkey_tip), "%s", ventoy_get_vmenu_title("VTMENU_STR_HOTKEY_LIST"));
|
||||
}
|
||||
|
||||
if (init == 0)
|
||||
{
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
ventoy_menu_push_key(GRUB_TERM_ESC);
|
||||
g_ventoy_menu_refresh = 1;
|
||||
}
|
||||
ret = 0;
|
||||
|
||||
end:
|
||||
|
||||
check_free(file, grub_file_close);
|
||||
grub_check_free(buf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (argc > 0)
|
||||
{
|
||||
grub_env_set(args[0], g_cur_menu_language);
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_printf("%s\n", g_cur_menu_language);
|
||||
grub_printf("%s\n", g_ventoy_hotkey_tip);
|
||||
grub_refresh();
|
||||
}
|
||||
|
||||
VENTOY_CMD_RETURN(0);
|
||||
}
|
||||
|
||||
|
@@ -1118,7 +1118,6 @@ grub_err_t ventoy_cmd_unix_chain_data(grub_extcmd_context_t ctxt, int argc, char
|
||||
const char *pLastChain = NULL;
|
||||
const char *compatible;
|
||||
ventoy_chain_head *chain;
|
||||
char envbuf[64];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
@@ -1197,10 +1196,7 @@ grub_err_t ventoy_cmd_unix_chain_data(grub_extcmd_context_t ctxt, int argc, char
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_memset(chain, 0, sizeof(ventoy_chain_head));
|
||||
|
||||
|
@@ -305,7 +305,6 @@ grub_err_t ventoy_cmd_patch_vhdboot(grub_extcmd_context_t ctxt, int argc, char *
|
||||
int patchoffset[2];
|
||||
ventoy_patch_vhd *patch1;
|
||||
ventoy_patch_vhd *patch2;
|
||||
char envbuf[64];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
@@ -356,15 +355,9 @@ grub_err_t ventoy_cmd_patch_vhdboot(grub_extcmd_context_t ctxt, int argc, char *
|
||||
|
||||
/* set buffer and size */
|
||||
#ifdef GRUB_MACHINE_EFI
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (ulong)g_vhdboot_totbuf);
|
||||
grub_env_set("vtoy_vhd_buf_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%d", (int)(g_vhdboot_isolen + sizeof(ventoy_chain_head)));
|
||||
grub_env_set("vtoy_vhd_buf_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_vhd_buf", g_vhdboot_totbuf, (ulonglong)(g_vhdboot_isolen + sizeof(ventoy_chain_head)));
|
||||
#else
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (ulong)g_vhdboot_isobuf);
|
||||
grub_env_set("vtoy_vhd_buf_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%d", g_vhdboot_isolen);
|
||||
grub_env_set("vtoy_vhd_buf_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_vhd_buf", g_vhdboot_isobuf, (ulonglong)g_vhdboot_isolen);
|
||||
#endif
|
||||
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
@@ -645,7 +638,6 @@ grub_err_t ventoy_cmd_raw_chain_data(grub_extcmd_context_t ctxt, int argc, char
|
||||
grub_disk_t disk;
|
||||
const char *pLastChain = NULL;
|
||||
ventoy_chain_head *chain;
|
||||
char envbuf[64];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
@@ -695,10 +687,7 @@ grub_err_t ventoy_cmd_raw_chain_data(grub_extcmd_context_t ctxt, int argc, char
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_env_export("vtoy_chain_mem_addr");
|
||||
grub_env_export("vtoy_chain_mem_size");
|
||||
|
@@ -1364,6 +1364,110 @@ static int ventoy_wimdows_locate_wim(const char *disk, wim_patch *patch, int win
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_sel_winpe_wim(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int i = 0;
|
||||
int pos = 0;
|
||||
int len = 0;
|
||||
int find = 0;
|
||||
char *cmd = NULL;
|
||||
wim_patch *node = NULL;
|
||||
wim_patch *tmp = NULL;
|
||||
grub_file_t file = NULL;
|
||||
wim_header *head = NULL;
|
||||
char cfgfile[128];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
len = 8 * VTOY_SIZE_1KB;
|
||||
cmd = (char *)grub_malloc(len + sizeof(wim_header));
|
||||
if (!cmd)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
head = (wim_header *)(cmd + len);
|
||||
grub_env_unset("vtoy_pe_wim_path");
|
||||
|
||||
for (node = g_wim_patch_head; node; node = node->next)
|
||||
{
|
||||
find = 0;
|
||||
for (tmp = g_wim_patch_head; tmp != node; tmp = tmp->next)
|
||||
{
|
||||
if (tmp->valid && grub_strcasecmp(tmp->path, node->path) == 0)
|
||||
{
|
||||
find = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (find)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
g_ventoy_case_insensitive = 1;
|
||||
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s%s", args[0], node->path);
|
||||
g_ventoy_case_insensitive = 0;
|
||||
if (!file)
|
||||
{
|
||||
debug("File %s%s NOT exist\n", args[0], node->path);
|
||||
continue;
|
||||
}
|
||||
|
||||
grub_file_read(file, head, sizeof(wim_header));
|
||||
if (grub_memcmp(head->signature, WIM_HEAD_SIGNATURE, sizeof(head->signature)))
|
||||
{
|
||||
debug("Not a valid wim file %s\n", (char *)head->signature);
|
||||
grub_file_close(file);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (head->flags & FLAG_HEADER_COMPRESS_LZMS)
|
||||
{
|
||||
debug("LZMS compress is not supported 0x%x\n", head->flags);
|
||||
grub_file_close(file);
|
||||
continue;
|
||||
}
|
||||
|
||||
grub_file_close(file);
|
||||
node->valid = 1;
|
||||
|
||||
vtoy_len_ssprintf(cmd, pos, len, "menuentry \"%s\" --class=\"sel_wim\" {\n echo \"\"\n}\n", node->path);
|
||||
}
|
||||
|
||||
if (pos > 0)
|
||||
{
|
||||
g_ventoy_menu_esc = 1;
|
||||
g_ventoy_suppress_esc = 1;
|
||||
g_ventoy_suppress_esc_default = 0;
|
||||
|
||||
grub_snprintf(cfgfile, sizeof(cfgfile), "configfile mem:0x%llx:size:%d", (ulonglong)(ulong)cmd, pos);
|
||||
grub_script_execute_sourcecode(cfgfile);
|
||||
|
||||
g_ventoy_menu_esc = 0;
|
||||
g_ventoy_suppress_esc = 0;
|
||||
g_ventoy_suppress_esc_default = 1;
|
||||
|
||||
for (node = g_wim_patch_head; node; node = node->next)
|
||||
{
|
||||
if (node->valid)
|
||||
{
|
||||
if (i == g_ventoy_last_entry)
|
||||
{
|
||||
grub_env_set("vtoy_pe_wim_path", node->path);
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grub_free(cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_locate_wim_patch(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int datalen = 0;
|
||||
@@ -1790,19 +1894,150 @@ end:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int ventoy_extract_init_exe(char *wimfile, grub_uint8_t **pexe_data, grub_uint32_t *pexe_len, char *exe_name)
|
||||
{
|
||||
int rc;
|
||||
int ret = 1;
|
||||
grub_uint16_t i;
|
||||
grub_file_t file = NULL;
|
||||
grub_uint32_t exe_len = 0;
|
||||
wim_header *head = NULL;
|
||||
grub_uint16_t *uname = NULL;
|
||||
grub_uint8_t *exe_data = NULL;
|
||||
grub_uint8_t *decompress_data = NULL;
|
||||
wim_lookup_entry *lookup = NULL;
|
||||
wim_security_header *security = NULL;
|
||||
wim_directory_entry *rootdir = NULL;
|
||||
wim_directory_entry *search = NULL;
|
||||
wim_stream_entry *stream = NULL;
|
||||
wim_lookup_entry *replace_look = NULL;
|
||||
wim_header wimhdr;
|
||||
wim_hash hashdata;
|
||||
|
||||
head = &wimhdr;
|
||||
|
||||
file = grub_file_open(wimfile, VENTOY_FILE_TYPE);
|
||||
if (!file)
|
||||
{
|
||||
goto out;
|
||||
}
|
||||
|
||||
grub_file_read(file, head, sizeof(wim_header));
|
||||
rc = ventoy_read_resource(file, head, &head->metadata, (void **)&decompress_data);
|
||||
if (rc)
|
||||
{
|
||||
grub_printf("failed to read meta data %d\n", rc);
|
||||
goto out;
|
||||
}
|
||||
|
||||
security = (wim_security_header *)decompress_data;
|
||||
if (security->len > 0)
|
||||
{
|
||||
rootdir = (wim_directory_entry *)(decompress_data + ((security->len + 7) & 0xFFFFFFF8U));
|
||||
}
|
||||
else
|
||||
{
|
||||
rootdir = (wim_directory_entry *)(decompress_data + 8);
|
||||
}
|
||||
|
||||
debug("read lookup offset:%llu size:%llu\n", (ulonglong)head->lookup.offset, (ulonglong)head->lookup.raw_size);
|
||||
lookup = grub_malloc(head->lookup.raw_size);
|
||||
grub_file_seek(file, head->lookup.offset);
|
||||
grub_file_read(file, lookup, head->lookup.raw_size);
|
||||
|
||||
/* search winpeshl.exe dirent entry */
|
||||
search = search_replace_wim_dirent(file, head, lookup, decompress_data, rootdir);
|
||||
if (!search)
|
||||
{
|
||||
debug("Failed to find replace file %p\n", search);
|
||||
goto out;
|
||||
}
|
||||
|
||||
uname = (grub_uint16_t *)(search + 1);
|
||||
for (i = 0; i < search->name_len / 2 && i < 200; i++)
|
||||
{
|
||||
exe_name[i] = (char)uname[i];
|
||||
}
|
||||
exe_name[i] = 0;
|
||||
debug("find replace file at %p <%s>\n", search, exe_name);
|
||||
|
||||
grub_memset(&hashdata, 0, sizeof(wim_hash));
|
||||
if (grub_memcmp(&hashdata, search->hash.sha1, sizeof(wim_hash)) == 0)
|
||||
{
|
||||
debug("search hash all 0, now do deep search\n");
|
||||
stream = (wim_stream_entry *)((char *)search + search->len);
|
||||
for (i = 0; i < search->streams; i++)
|
||||
{
|
||||
if (stream->name_len == 0)
|
||||
{
|
||||
grub_memcpy(&hashdata, stream->hash.sha1, sizeof(wim_hash));
|
||||
debug("new search hash: %02x %02x %02x %02x %02x %02x %02x %02x\n",
|
||||
ventoy_varg_8(hashdata.sha1));
|
||||
break;
|
||||
}
|
||||
stream = (wim_stream_entry *)((char *)stream + stream->len);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
grub_memcpy(&hashdata, search->hash.sha1, sizeof(wim_hash));
|
||||
}
|
||||
|
||||
/* find and extact winpeshl.exe */
|
||||
replace_look = ventoy_find_look_entry(head, lookup, &hashdata);
|
||||
if (replace_look)
|
||||
{
|
||||
exe_len = (grub_uint32_t)replace_look->resource.raw_size;
|
||||
debug("find replace lookup entry_id:%ld raw_size:%u\n",
|
||||
((long)replace_look - (long)lookup) / sizeof(wim_lookup_entry), exe_len);
|
||||
|
||||
if (0 != ventoy_read_resource(file, head, &(replace_look->resource), (void **)&(exe_data)))
|
||||
{
|
||||
exe_len = 0;
|
||||
exe_data = NULL;
|
||||
debug("failed to read replace file meta data %u\n", exe_len);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug("failed to find lookup entry for replace file %02x %02x %02x %02x\n",
|
||||
ventoy_varg_4(hashdata.sha1));
|
||||
}
|
||||
|
||||
if (exe_data)
|
||||
{
|
||||
ret = 0;
|
||||
*pexe_data = exe_data;
|
||||
*pexe_len = exe_len;
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
grub_check_free(lookup);
|
||||
grub_check_free(decompress_data);
|
||||
check_free(file, grub_file_close);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_windows_wimboot_data(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int rc = 0;
|
||||
int wim64 = 0;
|
||||
int datalen = 0;
|
||||
int dataflag = 0;
|
||||
grub_uint32_t size = 0;
|
||||
grub_uint32_t exe_len = 0;
|
||||
grub_uint32_t jump_align = 0;
|
||||
const char *addr = NULL;
|
||||
ventoy_chain_head *chain = NULL;
|
||||
ventoy_os_param *param = NULL;
|
||||
char envbuf[64];
|
||||
grub_uint8_t *param = NULL;
|
||||
grub_uint8_t *exe_data = NULL;
|
||||
ventoy_windows_data *rtdata = NULL;
|
||||
char exename[128] = {0};
|
||||
wim_tail wim_data;
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
(void)args;
|
||||
|
||||
addr = grub_env_get("vtoy_chain_mem_addr");
|
||||
if (!addr)
|
||||
@@ -1821,24 +2056,30 @@ grub_err_t ventoy_cmd_windows_wimboot_data(grub_extcmd_context_t ctxt, int argc,
|
||||
|
||||
datalen = ventoy_get_windows_rtdata_len(chain->os_param.vtoy_img_path, &dataflag);
|
||||
|
||||
size = sizeof(ventoy_os_param) + datalen;
|
||||
param = (ventoy_os_param *)grub_zalloc(size);
|
||||
if (!param)
|
||||
rc = ventoy_extract_init_exe(args[0], &exe_data, &exe_len, exename);
|
||||
if (rc)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
wim64 = ventoy_is_pe64(exe_data);
|
||||
|
||||
grub_memcpy(param, &chain->os_param, sizeof(ventoy_os_param));
|
||||
ventoy_fill_windows_rtdata(param + 1, param->vtoy_img_path, dataflag);
|
||||
grub_memset(&wim_data, 0, sizeof(wim_data));
|
||||
ventoy_cat_exe_file_data(&wim_data, exe_len, exe_data, datalen);
|
||||
grub_check_free(exe_data);
|
||||
|
||||
jump_align = ventoy_align(wim_data.jump_exe_len, 16);
|
||||
param = wim_data.jump_bin_data;
|
||||
|
||||
grub_memcpy(param + jump_align, &chain->os_param, sizeof(ventoy_os_param));
|
||||
|
||||
rtdata = (ventoy_windows_data *)(param + jump_align + sizeof(ventoy_os_param));
|
||||
ventoy_fill_windows_rtdata(rtdata, chain->os_param.vtoy_img_path, dataflag);
|
||||
|
||||
ventoy_memfile_env_set("vtoy_wimboot_mem", param, (ulonglong)(wim_data.bin_align_len));
|
||||
|
||||
grub_env_set(args[1], exename);
|
||||
grub_env_set(args[2], wim64 ? "64" : "32");
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)param);
|
||||
grub_env_set("vtoy_wimboot_mem_addr", envbuf);
|
||||
debug("vtoy_wimboot_mem_addr: %s\n", envbuf);
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_wimboot_mem_size", envbuf);
|
||||
debug("vtoy_wimboot_mem_size: %s\n", envbuf);
|
||||
|
||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
||||
}
|
||||
|
||||
@@ -1857,7 +2098,6 @@ grub_err_t ventoy_cmd_windows_chain_data(grub_extcmd_context_t ctxt, int argc, c
|
||||
const char *pLastChain = NULL;
|
||||
const char *compatible;
|
||||
ventoy_chain_head *chain;
|
||||
char envbuf[64];
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
@@ -1879,7 +2119,10 @@ grub_err_t ventoy_cmd_windows_chain_data(grub_extcmd_context_t ctxt, int argc, c
|
||||
if (0 == ventoy_compatible && g_wim_valid_patch_count == 0)
|
||||
{
|
||||
unknown_image = 1;
|
||||
debug("Warning: %s was not recognized by Ventoy\n", args[0]);
|
||||
if (!g_ventoy_wimboot_mode)
|
||||
{
|
||||
debug("Warning: %s was not recognized by Ventoy\n", args[0]);
|
||||
}
|
||||
}
|
||||
|
||||
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s", args[0]);
|
||||
@@ -1949,10 +2192,7 @@ grub_err_t ventoy_cmd_windows_chain_data(grub_extcmd_context_t ctxt, int argc, c
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_memset(chain, 0, sizeof(ventoy_chain_head));
|
||||
|
||||
@@ -2071,6 +2311,67 @@ static int ventoy_get_wim_chunklist(grub_file_t wimfile, ventoy_img_chunk_list *
|
||||
return 0;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_is_standard_winiso(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int i;
|
||||
int ret = 1;
|
||||
char prefix[32] = {0};
|
||||
const char *chkfile[] =
|
||||
{
|
||||
"boot/bcd", "boot/boot.sdi", NULL
|
||||
};
|
||||
|
||||
(void)ctxt;
|
||||
(void)argc;
|
||||
|
||||
if (ventoy_check_file_exist("%s/sources/boot.wim", args[0]))
|
||||
{
|
||||
prefix[0] = 0;
|
||||
}
|
||||
else if (ventoy_check_file_exist("%s/x86/sources/boot.wim", args[0]))
|
||||
{
|
||||
grub_snprintf(prefix, sizeof(prefix), "/x86");
|
||||
}
|
||||
else if (ventoy_check_file_exist("%s/x64/sources/boot.wim", args[0]))
|
||||
{
|
||||
grub_snprintf(prefix, sizeof(prefix), "/x64");
|
||||
}
|
||||
else
|
||||
{
|
||||
debug("No boot.wim found.\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (i = 0; chkfile[i]; i++)
|
||||
{
|
||||
if (!ventoy_check_file_exist("%s%s/%s", args[0], prefix, chkfile[i]))
|
||||
{
|
||||
debug("%s not found.\n", chkfile[i]);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!ventoy_check_file_exist("%s%s/sources/install.wim", args[0], prefix)) &&
|
||||
(!ventoy_check_file_exist("%s%s/sources/install.esd", args[0], prefix)))
|
||||
{
|
||||
debug("No install.wim(esd) found.\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!ventoy_check_file_exist("%s/setup.exe", args[0]))
|
||||
{
|
||||
debug("No setup.exe found.\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
debug("This is standard Windows ISO.\n");
|
||||
|
||||
out:
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
grub_err_t ventoy_cmd_wim_check_bootable(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
grub_uint32_t boot_index;
|
||||
@@ -2125,7 +2426,6 @@ static grub_err_t ventoy_vlnk_wim_chain_data(grub_file_t wimfile)
|
||||
ventoy_img_chunk *chunknode;
|
||||
ventoy_override_chunk *override;
|
||||
ventoy_img_chunk_list wimchunk;
|
||||
char envbuf[128];
|
||||
|
||||
debug("vlnk wim chain data begin <%s> ...\n", wimfile->name);
|
||||
|
||||
@@ -2182,10 +2482,7 @@ static grub_err_t ventoy_vlnk_wim_chain_data(grub_file_t wimfile)
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_memset(chain, 0, sizeof(ventoy_chain_head));
|
||||
|
||||
@@ -2290,7 +2587,6 @@ static grub_err_t ventoy_normal_wim_chain_data(grub_file_t wimfile)
|
||||
ventoy_img_chunk *chunknode;
|
||||
ventoy_override_chunk *override;
|
||||
ventoy_img_chunk_list wimchunk;
|
||||
char envbuf[128];
|
||||
|
||||
debug("normal wim chain data begin <%s> ...\n", wimfile->name);
|
||||
|
||||
@@ -2347,10 +2643,7 @@ static grub_err_t ventoy_normal_wim_chain_data(grub_file_t wimfile)
|
||||
return 1;
|
||||
}
|
||||
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "0x%lx", (unsigned long)chain);
|
||||
grub_env_set("vtoy_chain_mem_addr", envbuf);
|
||||
grub_snprintf(envbuf, sizeof(envbuf), "%u", size);
|
||||
grub_env_set("vtoy_chain_mem_size", envbuf);
|
||||
ventoy_memfile_env_set("vtoy_chain_mem", chain, (ulonglong)size);
|
||||
|
||||
grub_memset(chain, 0, sizeof(ventoy_chain_head));
|
||||
|
||||
|
@@ -141,7 +141,7 @@ typedef struct ventoy_windows_data
|
||||
grub_uint8_t windows11_bypass_check;
|
||||
|
||||
grub_uint32_t auto_install_len;
|
||||
|
||||
|
||||
grub_uint8_t reserved[255 - 4];
|
||||
|
||||
/* auto_intall file buf */
|
||||
@@ -304,6 +304,7 @@ grub_uint64_t grub_udf_get_last_file_attr_offset
|
||||
grub_uint64_t *fe_entry_size_offset
|
||||
);
|
||||
int ventoy_is_efi_os(void);
|
||||
void ventoy_memfile_env_set(const char *prefix, const void *buf, unsigned long long len);
|
||||
|
||||
#endif /* __VENTOY_H__ */
|
||||
|
||||
|
@@ -33,7 +33,7 @@ ventoy_os_install_dmsetup_by_fuse() {
|
||||
vtoy_fuse_iso -f $VTOY_PATH/ventoy_dm_table -m $VTOY_PATH/mnt/fuse
|
||||
|
||||
mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso
|
||||
mount -t squashfs $VTOY_PATH/mnt/iso/minios/01-core*.sb $VTOY_PATH/mnt/squashfs
|
||||
mount -t squashfs $VTOY_PATH/mnt/iso/minios/0*-core*.sb $VTOY_PATH/mnt/squashfs
|
||||
|
||||
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$2/kernel/drivers/md/dm-mod.ko*)
|
||||
vtlog "insmod $KoName"
|
||||
|
@@ -20,5 +20,5 @@
|
||||
if [ -f /lib/livekitlib ] && $GREP -q 'debug_log.*find_data_try' /lib/livekitlib; then
|
||||
$SED "/debug_log.*find_data_try/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/minios-disk.sh" -i /lib/livekitlib
|
||||
else
|
||||
$SED "/find_data/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/minios-disk.sh" -i /init
|
||||
$SED "/find_data/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/minios-disk.sh" -i /init
|
||||
fi
|
||||
|
@@ -24,6 +24,9 @@ if $GREP -q kaspersky /proc/version; then
|
||||
if [ -f /ventoy/ventoy_persistent_map ]; then
|
||||
$SED "/sysresccd_parsecmdline[^(]*$/a\ BACKSTORE_CMD='LABEL=casper-rw,noloop'" -i /init
|
||||
fi
|
||||
elif $GREP -q 'setting up the root filesystem' /init; then
|
||||
$SED "/setting up the root filesystem/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||
$SED "/setting up the root filesystem/a\ export CDROOT_DEV=/dev/mapper/ventoy" -i /init
|
||||
elif [ -d /etc/udev/rules.d ] || [ -d /lib/udev/rules.d ]; then
|
||||
ventoy_systemd_udevd_work_around
|
||||
ventoy_add_udev_rule "$VTOY_PATH/hook/default/udev_disk_hook.sh %k noreplace"
|
||||
|
@@ -51,6 +51,9 @@ if is_inotify_ventoy_part $3; then
|
||||
|
||||
if [ -e /sbin/anaconda-diskroot ]; then
|
||||
vtlog "set anaconda-diskroot ..."
|
||||
|
||||
#busybox cp doesn't support -t option (issue 1900)
|
||||
/bin/cp -a /bin/cp $BUSYBOX_PATH/cp
|
||||
/sbin/anaconda-diskroot /dev/ventoy
|
||||
fi
|
||||
|
||||
|
@@ -39,6 +39,9 @@ fi
|
||||
|
||||
if [ -e /sbin/anaconda-diskroot ]; then
|
||||
vtlog "set anaconda-diskroot /dev/ventoy ..."
|
||||
|
||||
#busybox cp doesn't support -t option (issue 1900)
|
||||
/bin/cp -a /bin/cp $BUSYBOX_PATH/cp
|
||||
/sbin/anaconda-diskroot /dev/ventoy
|
||||
fi
|
||||
|
||||
|
@@ -26,6 +26,10 @@ if [ -f $VTOY_PATH/autoinstall ]; then
|
||||
VTKS="inst.ks=file:$VTOY_PATH/autoinstall"
|
||||
else
|
||||
for vtParam in $($CAT /proc/cmdline); do
|
||||
if echo $vtParam | $GREP -q 'ks=file:/'; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if echo $vtParam | $GREP -q 'inst.ks=hd:LABEL='; then
|
||||
vtRawKsFull="$vtParam"
|
||||
vtRawKs=$(echo $vtParam | $AWK -F: '{print $NF}')
|
||||
|
@@ -70,6 +70,9 @@ if is_inotify_ventoy_part $3; then
|
||||
|
||||
if [ -e /sbin/anaconda-diskroot ]; then
|
||||
vtlog "set anaconda-diskroot ..."
|
||||
|
||||
#busybox cp doesn't support -t option (issue 1900)
|
||||
/bin/cp -a /bin/cp $BUSYBOX_PATH/cp
|
||||
/sbin/anaconda-diskroot /dev/ventoy
|
||||
fi
|
||||
|
||||
|
@@ -39,6 +39,9 @@ fi
|
||||
|
||||
if [ -e /sbin/anaconda-diskroot ]; then
|
||||
vtlog "set anaconda-diskroot /dev/ventoy ..."
|
||||
|
||||
#busybox cp doesn't support -t option (issue 1900)
|
||||
/bin/cp -a /bin/cp $BUSYBOX_PATH/cp
|
||||
/sbin/anaconda-diskroot /dev/ventoy
|
||||
fi
|
||||
|
||||
|
@@ -37,9 +37,38 @@ if [ "$vtdiskname" = "unknown" ]; then
|
||||
fi
|
||||
|
||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||
|
||||
ventoy_create_dev_ventoy_part
|
||||
|
||||
if ventoy_need_dm_patch; then
|
||||
vtlog "extract a ko file"
|
||||
|
||||
mkdir -p /ventoy/tmpmnt1 /ventoy/tmpmnt2
|
||||
mount /dev/ventoy1 /ventoy/tmpmnt1
|
||||
mount /ventoy/tmpmnt1/boot/batocera /ventoy/tmpmnt2
|
||||
vtKV=$(uname -r)
|
||||
|
||||
mkdir -p /lib/modules/$vtKV/kernel/
|
||||
vtKO=$(find "/ventoy/tmpmnt2/lib/modules/$vtKV/kernel/fs/" -name "*.ko*" | head -n1)
|
||||
cp -a $vtKO /lib/modules/$vtKV/kernel/
|
||||
|
||||
vtlog "vtKV=$vtKV vtKO=$vtKO"
|
||||
|
||||
umount /ventoy/tmpmnt2
|
||||
umount /ventoy/tmpmnt1
|
||||
|
||||
vtPartid=1
|
||||
cat /vtoy_dm_table | while read vtline; do
|
||||
dmsetup remove ventoy$vtPartid
|
||||
vtPartid=$(expr $vtPartid + 1)
|
||||
done
|
||||
dmsetup remove ventoy
|
||||
|
||||
vtlog "Recreate device-mapper"
|
||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||
ventoy_create_dev_ventoy_part
|
||||
fi
|
||||
|
||||
|
||||
PATH=$VTPATH_OLD
|
||||
|
||||
set_ventoy_hook_finish
|
||||
|
@@ -23,6 +23,9 @@ $SED "/find drives/i $BUSYBOX_PATH/sh $VTOY_PATH/loop/easyos/ventoy-disk.sh; vtD
|
||||
|
||||
$SED "1a boot_dev=ventoy1;wkg_dev=ventoy2" -i /init
|
||||
|
||||
$SED 's#\(dd *if=/dev/.*WKG_DRV.* *of=/dev/null.*skip\)=[0-9]*#\1=1048576#' -i /init
|
||||
$SED "s#WKG_DEV=\"\"#WKG_DEV=ventoy2#g" -i /init
|
||||
|
||||
#check for ssd will read /sys/block/ventoy, will no exist, need a workaround
|
||||
$SED "s#/sys/block/\${WKG_DRV}/#/sys/block/\$vtDM/#g" -i /init
|
||||
|
||||
|
@@ -75,6 +75,10 @@ ventoy_get_os_type() {
|
||||
echo 'openwrt'; return
|
||||
fi
|
||||
|
||||
if $GREP -q 'easyos' /proc/cmdline; then
|
||||
echo 'easyos'; return
|
||||
fi
|
||||
|
||||
if [ -e /BOOT_SPECS ]; then
|
||||
if $GREP -q 'easyos' /BOOT_SPECS; then
|
||||
echo 'easyos'; return
|
||||
|
@@ -18,6 +18,18 @@ print_usage() {
|
||||
echo ''
|
||||
}
|
||||
|
||||
print_err() {
|
||||
echo ""
|
||||
echo "$*"
|
||||
echo ""
|
||||
}
|
||||
|
||||
uid=$(id -u)
|
||||
if [ $uid -ne 0 ]; then
|
||||
print_err "Please use sudo or run the script as root."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "-s" ]; then
|
||||
shift
|
||||
|
Binary file not shown.
Binary file not shown.
BIN
INSTALL/EFI/BOOT/MokManager.efi
Normal file
BIN
INSTALL/EFI/BOOT/MokManager.efi
Normal file
Binary file not shown.
BIN
INSTALL/EFI/BOOT/grub.efi
Normal file
BIN
INSTALL/EFI/BOOT/grub.efi
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
print_usage() {
|
||||
echo 'Usage: ExtendPersistentImg.sh file size'
|
||||
@@ -19,6 +19,18 @@ if [ -z "$2" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ "$1" = "__vbash__" ]; then
|
||||
shift
|
||||
else
|
||||
if readlink /bin/sh | grep -q bash; then
|
||||
:
|
||||
else
|
||||
exec /bin/bash $0 "__vbash__" "$@"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
file=$1
|
||||
size=$2
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,9 +1,9 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
. ./tool/ventoy_lib.sh
|
||||
|
||||
print_usage() {
|
||||
echo 'Usage: sudo sh VentoyPlugson.sh [OPTION] /dev/sdX'
|
||||
echo 'Usage: sudo bash VentoyPlugson.sh [OPTION] /dev/sdX'
|
||||
echo ' OPTION: (optional)'
|
||||
echo ' -H x.x.x.x http server IP address (default is 127.0.0.1)'
|
||||
echo ' -P PORT http server PORT (default is 24681)'
|
||||
@@ -17,6 +17,15 @@ if [ $uid -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "__vbash__" ]; then
|
||||
shift
|
||||
else
|
||||
if readlink /bin/sh | grep -q bash; then
|
||||
:
|
||||
else
|
||||
exec /bin/bash $0 "__vbash__" "$@"
|
||||
fi
|
||||
fi
|
||||
|
||||
OLDDIR=$(pwd)
|
||||
|
||||
@@ -154,7 +163,7 @@ fi
|
||||
PART1=$(get_disk_part_name $DISK 1)
|
||||
|
||||
if grep -q "^$PART1 " /proc/mounts; then
|
||||
mtpnt=$(grep "^$PART1 " /proc/mounts | awk '{print $2}')
|
||||
mtpnt=$(grep "^$PART1 " /proc/mounts | awk '{print $2}' | sed 's/\\040/ /g')
|
||||
fstype=$(grep "^$PART1 " /proc/mounts | awk '{print $3}')
|
||||
|
||||
if echo $fstype | grep -q -i 'fuse'; then
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
print_usage() {
|
||||
echo 'Usage: VentoyWeb.sh [ OPTION ]'
|
||||
|
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
|
||||
if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.md5" ]; then
|
||||
set default=0
|
||||
menuentry "Calculate and check md5sum" --class=checksum_md5 {
|
||||
menuentry "@VTMENU_CHKSUM_MD5_CALC_CHK" --class=checksum_md5 {
|
||||
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
vt_1st_line "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.md5" vtReadChecksum
|
||||
@@ -18,7 +18,7 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.md5" ]; then
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "Calculate md5sum" --class=checksum_md5 {
|
||||
menuentry "@VTMENU_CHKSUM_MD5_CALC" --class=checksum_md5 {
|
||||
md5sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
@@ -28,7 +28,7 @@ fi
|
||||
|
||||
if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" ]; then
|
||||
set default=1
|
||||
menuentry "Calculate and check sha1sum" --class=checksum_sha1 {
|
||||
menuentry "@VTMENU_CHKSUM_SHA1_CALC_CHK" --class=checksum_sha1 {
|
||||
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
vt_1st_line "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" vtReadChecksum
|
||||
@@ -45,7 +45,7 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" ]; then
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "Calculate sha1sum" --class=checksum_sha1 {
|
||||
menuentry "@VTMENU_CHKSUM_SHA1_CALC" --class=checksum_sha1 {
|
||||
sha1sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
@@ -57,7 +57,7 @@ fi
|
||||
|
||||
if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" ]; then
|
||||
set default=2
|
||||
menuentry "Calculate and check sha256sum" --class=checksum_sha256 {
|
||||
menuentry "@VTMENU_CHKSUM_SHA256_CALC_CHK" --class=checksum_sha256 {
|
||||
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
vt_1st_line "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" vtReadChecksum
|
||||
@@ -74,7 +74,7 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" ]; then
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "Calculate sha256sum" --class=checksum_sha256 {
|
||||
menuentry "@VTMENU_CHKSUM_SHA256_CALC" --class=checksum_sha256 {
|
||||
sha256sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
@@ -86,7 +86,7 @@ fi
|
||||
|
||||
if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" ]; then
|
||||
set default=3
|
||||
menuentry "Calculate and check sha512sum" --class=checksum_sha512{
|
||||
menuentry "@VTMENU_CHKSUM_SHA512_CALC_CHK" --class=checksum_sha512{
|
||||
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
vt_1st_line "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" vtReadChecksum
|
||||
@@ -103,7 +103,7 @@ if [ -e "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" ]; then
|
||||
read vtInputKey
|
||||
}
|
||||
else
|
||||
menuentry "Calculate sha512sum" --class=checksum_sha512{
|
||||
menuentry "@VTMENU_CHKSUM_SHA512_CALC" --class=checksum_sha512{
|
||||
sha512sum "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}"
|
||||
|
||||
echo -e "\n\npress ENTER to exit ..."
|
||||
@@ -112,6 +112,6 @@ else
|
||||
fi
|
||||
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
@@ -1,10 +1,13 @@
|
||||
|
||||
submenu "@VTMENU_MENU_LANG" --class=debug_menu_lang --class=F5tool {
|
||||
source $prefix/menulang.cfg
|
||||
}
|
||||
source $prefix/power.cfg
|
||||
source $prefix/hwinfo.cfg
|
||||
source $prefix/keyboard.cfg
|
||||
|
||||
submenu "Resolution Configuration" --class=debug_resolution --class=F5tool {
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
submenu "@VTMENU_RESOLUTION_CFG" --class=debug_resolution --class=F5tool {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
||||
@@ -28,27 +31,27 @@ submenu "Resolution Configuration" --class=debug_resolution --class=F5tool {
|
||||
done
|
||||
}
|
||||
|
||||
submenu "Screen Display Mode" --class=debug_screen_mode --class=F5tool {
|
||||
menuentry 'Force Text Mode' --class=debug_text_mode --class=debug_screen_mode --class=F5tool {
|
||||
submenu "@VTMENU_SCREEN_MODE" --class=debug_screen_mode --class=F5tool {
|
||||
menuentry '@VTMENU_SCREEN_TEXT_MODE' --class=debug_text_mode --class=debug_screen_mode --class=F5tool {
|
||||
terminal_output console
|
||||
}
|
||||
menuentry 'Force Graphics Mode' --class=debug_gui_mode --class=debug_screen_mode --class=F5tool {
|
||||
menuentry '@VTMENU_SCREEN_GUI_MODE' --class=debug_gui_mode --class=debug_screen_mode --class=F5tool {
|
||||
terminal_output gfxterm
|
||||
}
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
}
|
||||
|
||||
if [ $VTOY_THEME_COUNT -gt 1 ]; then
|
||||
submenu "Theme Select" --class=debug_theme_select --class=F5tool {
|
||||
if [ -n "$VTOY_THEME_COUNT" -a $VTOY_THEME_COUNT -gt 1 ]; then
|
||||
submenu "@VTMENU_THEME_SELECT" --class=debug_theme_select --class=F5tool {
|
||||
vt_select_theme_cfg
|
||||
}
|
||||
fi
|
||||
|
||||
if [ "$grub_platform" != "pc" ]; then
|
||||
submenu 'Ventoy UEFI Utilities' --class=debug_util --class=F5tool {
|
||||
menuentry 'Show EFI Drivers' --class=debug_util_efidrv --class=debug_util --class=F5tool {
|
||||
menuentry '@VTMENU_UTIL_SHOW_EFI_DRV' --class=debug_util_efidrv --class=debug_util --class=F5tool {
|
||||
vt_push_pager
|
||||
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=show_efi_drivers
|
||||
boot
|
||||
@@ -57,22 +60,22 @@ if [ "$grub_platform" != "pc" ]; then
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
menuentry 'Fixup Windows BlinitializeLibrary Failure' --class=debug_util_blinit --class=debug_util --class=F5tool {
|
||||
menuentry '@VTMENU_UTIL_FIX_BLINIT_FAIL' --class=debug_util_blinit --class=debug_util --class=F5tool {
|
||||
chainloader ${vtoy_path}/vtoyutil_${VTOY_EFI_ARCH}.efi env_param=${env_param} ${vtdebug_flag} feature=fix_windows_mmap
|
||||
boot
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
}
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
}
|
||||
fi
|
||||
|
||||
|
||||
submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --class=F5tool {
|
||||
menuentry 'Check global control plugin configuration' --class=debug_control --class=debug_json --class=F5tool {
|
||||
submenu '@VTMENU_JSON_CHK_JSON' --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_CONTROL' --class=debug_control --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path control $vtoy_iso_part
|
||||
|
||||
@@ -81,7 +84,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check theme plugin configuration' --class=debug_theme --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_THEME' --class=debug_theme --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path theme $vtoy_iso_part
|
||||
|
||||
@@ -90,7 +93,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check auto install plugin configuration' --class=debug_autoinstall --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_AUTOINS' --class=debug_autoinstall --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path auto_install $vtoy_iso_part
|
||||
|
||||
@@ -99,7 +102,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check persistence plugin configuration' --class=debug_persistence --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_PERSIST' --class=debug_persistence --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path persistence $vtoy_iso_part
|
||||
|
||||
@@ -111,7 +114,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check menu alias plugin configuration' --class=debug_menualias --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_MENU_ALIAS' --class=debug_menualias --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path menu_alias $vtoy_iso_part
|
||||
|
||||
@@ -120,7 +123,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check menu tip plugin configuration' --class=debug_menutip --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_MENU_TIP' --class=debug_menutip --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path menu_tip $vtoy_iso_part
|
||||
|
||||
@@ -129,7 +132,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check menu class plugin configuration' --class=debug_menuclass --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_MENU_CLASS' --class=debug_menuclass --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path menu_class $vtoy_iso_part
|
||||
|
||||
@@ -138,7 +141,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check injection plugin configuration' --class=debug_injection --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_INJECTION' --class=debug_injection --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path injection $vtoy_iso_part
|
||||
|
||||
@@ -147,7 +150,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check auto memdisk plugin configuration' --class=debug_automemdisk --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_AUTO_MEMDISK' --class=debug_automemdisk --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path auto_memdisk $vtoy_iso_part
|
||||
|
||||
@@ -156,7 +159,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check image list plugin configuration' --class=debug_imagelist --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_IMG_LIST' --class=debug_imagelist --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path image_list $vtoy_iso_part
|
||||
|
||||
@@ -165,7 +168,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check image blacklist plugin configuration' --class=debug_imageblacklist --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_IMG_BLIST' --class=debug_imageblacklist --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path image_blacklist $vtoy_iso_part
|
||||
|
||||
@@ -174,7 +177,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check boot conf replace plugin configuration' --class=debug_bootconf_replace --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_CONF_REPLACE' --class=debug_bootconf_replace --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path conf_replace $vtoy_iso_part
|
||||
|
||||
@@ -183,7 +186,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check dud plugin configuration' --class=debug_dud --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_DUD' --class=debug_dud --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path dud $vtoy_iso_part
|
||||
|
||||
@@ -192,7 +195,7 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check password plugin configuration' --class=debug_pwd --class=debug_json --class=F5tool {
|
||||
menuentry '@VTMENU_JSON_CHK_PASSWORD' --class=debug_pwd --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path password $vtoy_iso_part
|
||||
|
||||
@@ -201,21 +204,12 @@ submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json --cla
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check custom boot plugin configuration' --class=debug_custom_boot --class=debug_json --class=F5tool {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path custom_boot $vtoy_iso_part
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
@@ -65,6 +65,10 @@ function ventoy_vcfg_proc {
|
||||
fi
|
||||
}
|
||||
|
||||
function ventoy_language {
|
||||
configfile $prefix/menulang.cfg
|
||||
}
|
||||
|
||||
function ventoy_diagnosis {
|
||||
vt_enum_video_mode
|
||||
configfile $prefix/debug.cfg
|
||||
@@ -99,8 +103,9 @@ function ventoy_show_help {
|
||||
fi
|
||||
|
||||
loopback vt_help_tarfs mem:${vtoy_help_txt_mem_addr}:size:${vtoy_help_txt_mem_size}
|
||||
if [ -f "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" ]; then
|
||||
cat "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt"
|
||||
vt_cur_menu_lang vtCurLang
|
||||
if [ -f "(vt_help_tarfs)/help/${vtCurLang}.txt" ]; then
|
||||
cat "(vt_help_tarfs)/help/${vtCurLang}.txt"
|
||||
else
|
||||
cat "(vt_help_tarfs)/help/en_US.txt"
|
||||
fi
|
||||
@@ -108,6 +113,11 @@ function ventoy_show_help {
|
||||
fi
|
||||
}
|
||||
|
||||
function ventoy_load_menu_lang_file {
|
||||
vt_load_file_to_mem "auto" $vtoy_efi_part/grub/menu.tar.gz vtoy_menu_lang_mem
|
||||
loopback vt_menu_tarfs mem:${vtoy_menu_lang_mem_addr}:size:${vtoy_menu_lang_mem_size}
|
||||
}
|
||||
|
||||
function get_os_type {
|
||||
set vtoy_os=Linux
|
||||
|
||||
@@ -158,7 +168,7 @@ function get_os_type {
|
||||
function vt_check_compatible_pe {
|
||||
#Check for PE without external tools
|
||||
#set compatible if ISO file is less than 80MB
|
||||
if [ $vt_chosen_size -gt 33554432 -a $vt_chosen_size -le 83886080 ]; then
|
||||
if [ $vt_chosen_size -GT 33554432 -a $vt_chosen_size -LE 83886080 ]; then
|
||||
set ventoy_compatible=YES
|
||||
fi
|
||||
|
||||
@@ -599,8 +609,12 @@ function ventoy_unix_comm_proc {
|
||||
function uefi_windows_menu_func {
|
||||
vt_windows_reset
|
||||
|
||||
if [ "$ventoy_compatible" = "NO" ]; then
|
||||
|
||||
unset vt_cur_wimboot_mode
|
||||
if vt_check_mode 4 "$vt_chosen_name"; then
|
||||
set vt_cur_wimboot_mode=1
|
||||
fi
|
||||
|
||||
if [ "$ventoy_compatible" = "NO" -o "$vt_cur_wimboot_mode" = "1" ]; then
|
||||
if [ "$ventoy_fs_probe" = "iso9660" ]; then
|
||||
loopback -d loop
|
||||
vt_iso9660_nojoliet 1
|
||||
@@ -619,14 +633,14 @@ function uefi_windows_menu_func {
|
||||
ventoy_debug_pause
|
||||
locate_wim "${chosen_path}"
|
||||
fi
|
||||
|
||||
|
||||
vt_windows_chain_data "${1}${chosen_path}"
|
||||
ventoy_debug_pause
|
||||
|
||||
if vt_check_mode 4 "$vt_chosen_name"; then
|
||||
vtoy_windows_wimboot_func
|
||||
|
||||
if [ "$vt_cur_wimboot_mode" = "1" ]; then
|
||||
vtoy_wimboot_func
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
||||
ventoy_cli_console
|
||||
@@ -770,7 +784,7 @@ function uefi_linux_menu_func {
|
||||
|
||||
vt_linux_chain_data "${1}${chosen_path}"
|
||||
|
||||
if [ -n "$LoadIsoEfiDriver" -a $vt_chosen_size -lt 104857600 ]; then
|
||||
if [ -n "$LoadIsoEfiDriver" -a $vt_chosen_size -LT 104857600 ]; then
|
||||
if [ -f (loop)/efi/clover/cloverx64.efi ]; then
|
||||
unset LoadIsoEfiDriver
|
||||
fi
|
||||
@@ -783,6 +797,10 @@ function uefi_linux_menu_func {
|
||||
unset vtGrub2Mode
|
||||
if vt_check_mode 3 "$vt_chosen_name"; then
|
||||
set vtGrub2Mode=1
|
||||
elif vt_str_begin "$vt_volume_id" "HOLO_"; then
|
||||
if [ -d (loop)/loader/entries ]; then
|
||||
set vtGrub2Mode=1
|
||||
fi
|
||||
elif vt_str_begin "$vt_volume_id" "KRD"; then
|
||||
if [ -f (loop)/boot/grub/grub.cfg.sig ]; then
|
||||
set vtGrub2Mode=1
|
||||
@@ -816,6 +834,18 @@ function uefi_linux_menu_func {
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ $vtback_cfg_find -eq 0 ]; then
|
||||
if [ -f (loop)/loader/loader.conf -a -d (loop)/loader/entries ]; then
|
||||
if vt_str_begin "$vt_volume_id" "HOLO_"; then
|
||||
set root=(loop,2)
|
||||
vt_systemd_menu (loop,2) vt_sys_menu_mem
|
||||
else
|
||||
vt_systemd_menu (loop) vt_sys_menu_mem
|
||||
fi
|
||||
set vtback_cfg_find=1
|
||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$vtback_cfg_find" = "0" ]; then
|
||||
echo " "
|
||||
@@ -912,6 +942,15 @@ function uefi_iso_menu_func {
|
||||
vt_check_compatible (loop)
|
||||
fi
|
||||
|
||||
if vt_need_secondary_menu "$vt_chosen_name"; then
|
||||
vt_show_secondary_menu "$vt_chosen_path" "$vtoy_os" $vt_chosen_size
|
||||
if vt_check_mode 0 "$vt_chosen_name"; then
|
||||
uefi_iso_memdisk $vtoy_iso_part "$vt_chosen_path"
|
||||
vt_secondary_recover_mode
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
vt_img_sector "${1}${chosen_path}"
|
||||
|
||||
if [ "$ventoy_fs_probe" = "iso9660" ]; then
|
||||
@@ -929,6 +968,7 @@ function uefi_iso_menu_func {
|
||||
fi
|
||||
|
||||
ventoy_gui_console
|
||||
vt_secondary_recover_mode
|
||||
}
|
||||
|
||||
function uefi_iso_memdisk {
|
||||
@@ -942,8 +982,7 @@ function uefi_iso_memdisk {
|
||||
ventoy_gui_console
|
||||
}
|
||||
|
||||
|
||||
function vtoy_windows_wimboot_func {
|
||||
function vtoy_windows_wimboot {
|
||||
if [ -f (loop)/x86/sources/boot.wim -a -f (loop)/x64/sources/boot.wim ]; then
|
||||
vt_sel_wimboot vtoy_wimboot_bit
|
||||
if [ "$vtoy_wimboot_bit" = "32" ]; then
|
||||
@@ -961,43 +1000,24 @@ function vtoy_windows_wimboot_func {
|
||||
fi
|
||||
|
||||
if [ -n "${vtdebug_flag}" ]; then
|
||||
echo vtoy_wimboot_prefix=$vtoy_wimboot_prefix vtoy_wimboot_bit=$vtoy_wimboot_bit
|
||||
echo vtoy_wimboot_prefix=$vtoy_wimboot_prefix vtoy_wimboot_bit=$vtoy_wimboot_bit vt_wimkernel=$vt_wimkernel
|
||||
fi
|
||||
|
||||
for wmfile in sources/boot.wim boot/bcd boot/boot.sdi; do
|
||||
if [ ! -f $vtoy_wimboot_prefix/$wmfile ]; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -f $vtoy_wimboot_prefix/sources/install.wim -o -f $vtoy_wimboot_prefix/sources/install.esd ]; then
|
||||
vt_windows_wimboot_data
|
||||
else
|
||||
return
|
||||
fi
|
||||
vt_windows_wimboot_data "$vtoy_wimboot_prefix/sources/boot.wim" vtoy_init_exe vtoy_wim_bit
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
|
||||
linux16 "$vtoy_path/$vt_wimkernel" quiet
|
||||
ventoy_debug_pause
|
||||
|
||||
vt_set_wim_load_prompt 1 "Loading files......"
|
||||
initrd16 newc:vtoyjump.exe:$vtoy_path/vtoyjump${vtoy_wimboot_bit}.exe \
|
||||
newc:wimboot.data:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size} \
|
||||
newc:winpeshl.ini:mem:${vtoy_winpeshl_ini_addr}:size:${vtoy_winpeshl_ini_size} \
|
||||
initrd16 newc:winpeshl.exe:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size} \
|
||||
newc:vtoy_wimboot:$vtoy_wimboot_prefix/boot/bcd \
|
||||
newc:bcd:$vtoy_wimboot_prefix/boot/bcd \
|
||||
newc:boot.sdi:$vtoy_wimboot_prefix/boot/boot.sdi \
|
||||
newc:boot.wim:$vtoy_wimboot_prefix/sources/boot.wim
|
||||
vt_set_wim_load_prompt 0
|
||||
boot
|
||||
else
|
||||
if [ "$grub_cpu" = "i386" ]; then
|
||||
set vt_wimkernel=wimboot.i386.efi.xz
|
||||
else
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
fi
|
||||
|
||||
vt_set_wim_load_prompt 1 "Loading files......"
|
||||
vt_load_file_to_mem "nodecompress" $vtoy_wimboot_prefix/sources/boot.wim vtoy_wimfile_mem
|
||||
vt_set_wim_load_prompt 0
|
||||
@@ -1010,9 +1030,8 @@ function vtoy_windows_wimboot_func {
|
||||
|
||||
ventoy_cli_console
|
||||
chainloader "$vtoy_path/$vt_wimkernel" quiet \
|
||||
"vf=wimboot.data:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size}" \
|
||||
"vf=winpeshl.ini:mem:${vtoy_winpeshl_ini_addr}:size:${vtoy_winpeshl_ini_size}" \
|
||||
"vf=vtoyjump.exe:$vtoy_path/vtoyjump${vtoy_wimboot_bit}.exe" \
|
||||
"vf=winpeshl.exe:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size}" \
|
||||
"vf=vtoy_wimboot:$vtoy_wimboot_prefix/boot/bcd" \
|
||||
"vf=bcd:$vtoy_wimboot_prefix/boot/bcd" \
|
||||
"vf=boot.sdi:$vtoy_wimboot_prefix/boot/boot.sdi" \
|
||||
"vf=boot.wim:$vtoy_wimfile_path" \
|
||||
@@ -1023,11 +1042,125 @@ function vtoy_windows_wimboot_func {
|
||||
fi
|
||||
}
|
||||
|
||||
function vtoy_winpe_wimboot {
|
||||
unset vtoy_boot_sdi_legacy
|
||||
unset vtoy_boot_sdi_efi
|
||||
|
||||
set vtoy_wimboot_prefix=(loop)
|
||||
set vtoy_wim_path="$1"
|
||||
|
||||
if [ -n "${vtdebug_flag}" ]; then
|
||||
echo "winpe_wimboot $1 $2 $3"
|
||||
fi
|
||||
|
||||
if [ "$2" != "0" ]; then
|
||||
set vtoy_boot_sdi_legacy="newc:boot.sdi:$vtoy_wimboot_prefix/$2"
|
||||
set vtoy_boot_sdi_efi="vf=boot.sdi:$vtoy_wimboot_prefix/$2"
|
||||
fi
|
||||
|
||||
vt_windows_wimboot_data $vtoy_wimboot_prefix/$vtoy_wim_path vtoy_init_exe vtoy_wim_bit
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
linux16 "$vtoy_path/$vt_wimkernel" quiet
|
||||
ventoy_debug_pause
|
||||
|
||||
vt_set_wim_load_prompt 1 "Loading files......"
|
||||
initrd16 newc:$vtoy_init_exe:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size} \
|
||||
newc:vtoy_wimboot:$vtoy_path/$vt_wimkernel \
|
||||
newc:bootmgr.exe:mem:${vtoy_pe_bootmgr_mem_addr}:size:${vtoy_pe_bootmgr_mem_size} \
|
||||
newc:bcd:mem:${vtoy_pe_bcd_mem_addr}:size:${vtoy_pe_bcd_mem_size} \
|
||||
$vtoy_boot_sdi_legacy \
|
||||
newc:boot.wim:$vtoy_wimboot_prefix/$vtoy_wim_path
|
||||
vt_set_wim_load_prompt 0
|
||||
boot
|
||||
else
|
||||
if [ "$VTOY_EFI_ARCH" = "x64" -a "$vtoy_wim_bit" = "32" ]; then
|
||||
echo -e "\nThis is 32bit Windows and does NOT support x86_64 UEFI firmware.\n"
|
||||
echo -e "这是32位的 Windows 系统,不支持当前的64位 UEFI 环境。\n"
|
||||
fi
|
||||
|
||||
vt_set_wim_load_prompt 1 "Loading files......"
|
||||
vt_load_file_to_mem "nodecompress" $vtoy_wimboot_prefix/$vtoy_wim_path vtoy_wimfile_mem
|
||||
vt_set_wim_load_prompt 0
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
set vtoy_wimfile_path=mem:${vtoy_wimfile_mem_addr}:size:${vtoy_wimfile_mem_size}
|
||||
else
|
||||
set vtoy_wimfile_path=$vtoy_wimboot_prefix/$vtoy_wim_path
|
||||
fi
|
||||
|
||||
unset vtoy_boot_efi_path
|
||||
if [ -F (loop)/efi/boot/boot${VTOY_EFI_ARCH}.efi ]; then
|
||||
set vtoy_boot_efi_path="vf=bootx64.efi:(loop)/efi/boot/boot${VTOY_EFI_ARCH}.efi"
|
||||
fi
|
||||
|
||||
ventoy_cli_console
|
||||
chainloader "$vtoy_path/$vt_wimkernel" quiet \
|
||||
"vf=$vtoy_init_exe:mem:${vtoy_wimboot_mem_addr}:size:${vtoy_wimboot_mem_size}" \
|
||||
"vf=vtoy_wimboot:$vtoy_path/$vt_wimkernel" \
|
||||
"vf=bcd:mem:${vtoy_pe_bcd_mem_addr}:size:${vtoy_pe_bcd_mem_size}" \
|
||||
"$vtoy_boot_sdi_efi" \
|
||||
"$vtoy_boot_efi_path" \
|
||||
"vf=boot.wim:$vtoy_wimfile_path" \
|
||||
pfsize=$vtoy_chain_file_size \
|
||||
pfread=$vtoy_chain_file_read
|
||||
boot
|
||||
ventoy_gui_console
|
||||
fi
|
||||
}
|
||||
|
||||
function vtoy_wimboot_func {
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
else
|
||||
if [ "$grub_cpu" = "i386" ]; then
|
||||
set vt_wimkernel=wimboot.i386.efi.xz
|
||||
else
|
||||
set vt_wimkernel=wimboot.x86_64.xz
|
||||
fi
|
||||
fi
|
||||
|
||||
if vt_is_standard_winiso (loop); then
|
||||
echo -e "\n==================== VENTOY WIMBOOT ==================\n"
|
||||
vtoy_windows_wimboot
|
||||
else
|
||||
vt_sel_winpe_wim (loop)
|
||||
if [ -n "$vtoy_pe_wim_path" ]; then
|
||||
echo -e "\n==================== VENTOY WIMBOOT ==================\n"
|
||||
|
||||
vt_fs_ignore_case 1
|
||||
vt_load_file_to_mem "auto" $vtoy_path/common_bcd.xz vtoy_pe_bcd_mem
|
||||
|
||||
set vt_sdi_path=0
|
||||
for vsdi in "boot/boot.sdi" "2K10/FONTS/boot.sdi" "SSTR/boot.sdi" "ISPE/BOOT.SDI" \
|
||||
"boot/uqi.sdi" "ISYL/boot.sdi" "WEPE/WEPE.SDI" ; do
|
||||
if [ -F "(loop)/$vsdi" ]; then
|
||||
set vt_sdi_path=$vsdi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
vt_load_file_to_mem "auto" $vtoy_path/common_bootmgr.xz vtoy_pe_bootmgr_mem
|
||||
vtoy_winpe_wimboot "$vtoy_pe_wim_path" "$vt_sdi_path" 1
|
||||
else
|
||||
vtoy_winpe_wimboot "$vtoy_pe_wim_path" "$vt_sdi_path" 0
|
||||
fi
|
||||
|
||||
vt_fs_ignore_case 0
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function legacy_windows_menu_func {
|
||||
vt_windows_reset
|
||||
|
||||
if [ "$ventoy_compatible" = "NO" ]; then
|
||||
|
||||
unset vt_cur_wimboot_mode
|
||||
if vt_check_mode 4 "$vt_chosen_name"; then
|
||||
set vt_cur_wimboot_mode=1
|
||||
fi
|
||||
|
||||
if [ "$ventoy_compatible" = "NO" -o "$vt_cur_wimboot_mode" = "1" ]; then
|
||||
if [ "$ventoy_fs_probe" = "iso9660" ]; then
|
||||
loopback -d loop
|
||||
vt_iso9660_nojoliet 1
|
||||
@@ -1045,15 +1178,17 @@ function legacy_windows_menu_func {
|
||||
distro_specify_wim_patch_phase2
|
||||
fi
|
||||
|
||||
ventoy_debug_pause
|
||||
locate_wim "${chosen_path}"
|
||||
ventoy_debug_pause
|
||||
if [ -z "$vt_cur_wimboot_mode" ]; then
|
||||
locate_wim "${chosen_path}"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
vt_windows_chain_data "${1}${chosen_path}"
|
||||
ventoy_debug_pause
|
||||
|
||||
if vt_check_mode 4 "$vt_chosen_name"; then
|
||||
vtoy_windows_wimboot_func
|
||||
ventoy_debug_pause
|
||||
|
||||
if [ "$vt_cur_wimboot_mode" = "1" ]; then
|
||||
vtoy_wimboot_func
|
||||
fi
|
||||
|
||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||
@@ -1135,10 +1270,19 @@ function legacy_linux_menu_func {
|
||||
ventoy_debug_pause
|
||||
|
||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||
unset vtGrub2Mode
|
||||
if vt_check_mode 3 "$vt_chosen_name"; then
|
||||
set vtGrub2Mode=1
|
||||
elif vt_str_begin "$vt_volume_id" "HOLO_"; then
|
||||
if [ -d (loop)/loader/entries ]; then
|
||||
set vtGrub2Mode=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$vtGrub2Mode" ]; then
|
||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
||||
ventoy_cli_console
|
||||
|
||||
|
||||
# fallback
|
||||
set vtback_root=$root
|
||||
vt_push_last_entry
|
||||
@@ -1157,6 +1301,18 @@ function legacy_linux_menu_func {
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ $vtback_cfg_find -eq 0 ]; then
|
||||
if [ -f (loop)/loader/loader.conf -a -d (loop)/loader/entries ]; then
|
||||
if vt_str_begin "$vt_volume_id" "HOLO_"; then
|
||||
set root=(loop,2)
|
||||
vt_systemd_menu (loop,2) vt_sys_menu_mem
|
||||
else
|
||||
vt_systemd_menu (loop) vt_sys_menu_mem
|
||||
fi
|
||||
set vtback_cfg_find=1
|
||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||
fi
|
||||
fi
|
||||
|
||||
vt_unset_boot_opt
|
||||
set root=$vtback_root
|
||||
@@ -1220,6 +1376,15 @@ function legacy_iso_menu_func {
|
||||
vt_check_compatible (loop)
|
||||
fi
|
||||
|
||||
if vt_need_secondary_menu "$vt_chosen_name"; then
|
||||
vt_show_secondary_menu "$vt_chosen_path" "$vtoy_os" $vt_chosen_size
|
||||
if vt_check_mode 0 "$vt_chosen_name"; then
|
||||
legacy_iso_memdisk $vtoy_iso_part "$vt_chosen_path"
|
||||
vt_secondary_recover_mode
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
vt_img_sector "${1}${chosen_path}"
|
||||
|
||||
if [ "$ventoy_fs_probe" = "iso9660" ]; then
|
||||
@@ -1235,6 +1400,7 @@ function legacy_iso_menu_func {
|
||||
vt_check_compatible_linux (loop)
|
||||
legacy_linux_menu_func "$1" "${chosen_path}"
|
||||
fi
|
||||
vt_secondary_recover_mode
|
||||
}
|
||||
|
||||
function legacy_iso_memdisk {
|
||||
@@ -1309,7 +1475,7 @@ function iso_common_menuentry {
|
||||
vt_chosen_img_path vt_chosen_path vt_chosen_size vt_chosen_name
|
||||
|
||||
vt_parse_iso_volume "${vtoy_iso_part}${vt_chosen_path}" vt_system_id vt_volume_id vt_volume_space
|
||||
if [ $vt_volume_space -ne $vt_chosen_size ]; then
|
||||
if [ $vt_volume_space -NE $vt_chosen_size ]; then
|
||||
vt_mod $vt_chosen_size 2048 vt_chosen_size_mod
|
||||
if [ $vt_chosen_size_mod -ne 0 ]; then
|
||||
echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
|
||||
@@ -1357,7 +1523,7 @@ function iso_common_menuentry {
|
||||
fi
|
||||
|
||||
#For iKuai8 (<64MB)
|
||||
if [ $vt_chosen_size -le 67108864 ]; then
|
||||
if [ $vt_chosen_size -LE 67108864 ]; then
|
||||
if vt_str_begin "$vt_chosen_name" "iKuai"; then
|
||||
set vtMemDiskBoot=1
|
||||
fi
|
||||
@@ -1691,6 +1857,41 @@ function ventoy_img_easyos {
|
||||
loopback -d easysfs
|
||||
}
|
||||
|
||||
function ventoy_img_easyos2 {
|
||||
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
||||
vt_trailer_cpio ${vtoy_iso_part} "${vt_chosen_path}" noinit
|
||||
|
||||
if [ -e (vtimghd,2)/easyos/easy.sfs ]; then
|
||||
loopback easysfs (vtimghd,2)/easyos/easy.sfs
|
||||
elif [ -d (vtimghd,2)/easyos/releases ]; then
|
||||
vt_fs_enum_1st_dir (vtimghd,2) /easyos/releases/ vt_dir_name
|
||||
loopback easysfs (vtimghd,2)/easyos/releases/$vt_dir_name/easy.sfs
|
||||
fi
|
||||
|
||||
vt_get_lib_module_ver (easysfs) /lib/modules/ vt_module_ver
|
||||
|
||||
if [ -n "$vt_module_ver" ]; then
|
||||
for mod in "kernel/drivers/md/dm-mod.ko" "kernel/drivers/dax/dax.ko"; do
|
||||
if [ -e (easysfs)/lib/modules/$vt_module_ver/$mod ]; then
|
||||
vt_img_extra_initrd_append (easysfs)/lib/modules/$vt_module_ver/$mod
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
ventoy_debug_pause
|
||||
|
||||
#boot image file
|
||||
vt_set_boot_opt rdinit=/vtoy/vtoy
|
||||
vt_img_hook_root
|
||||
|
||||
vt_limine_menu (vtimghd,1)/limine.cfg vt_sys_menu_mem
|
||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||
|
||||
vt_img_unhook_root
|
||||
vt_unset_boot_opt
|
||||
loopback -d easysfs
|
||||
}
|
||||
|
||||
function ventoy_img_volumio {
|
||||
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
||||
vt_trailer_cpio ${vtoy_iso_part} "${vt_chosen_path}" noinit
|
||||
@@ -1799,7 +2000,7 @@ function ventoy_img_ubos {
|
||||
}
|
||||
|
||||
function ventoy_img_recalbox {
|
||||
if [ $vtoy_img_max_part_end -gt $vt_chosen_size ]; then
|
||||
if [ $vtoy_img_max_part_end -GT $vt_chosen_size ]; then
|
||||
echo -e "\nPlease extend the img file size before boot it. \n"
|
||||
ventoy_pause
|
||||
return
|
||||
@@ -2078,11 +2279,15 @@ function img_common_menuentry {
|
||||
if vt_str_begin "$vtImgHd3Label" "ROOT-"; then
|
||||
if [ -f (vtimghd,3)/etc/os-release.d/ID ]; then
|
||||
vt_1st_line (vtimghd,3)/etc/os-release.d/ID vt_release_line1
|
||||
if [ vt_str_begin "$vt_release_line1" "FydeOS" ]; then
|
||||
if vt_str_begin "$vt_release_line1" "FydeOS"; then
|
||||
ventoy_img_fydeos
|
||||
else
|
||||
ventoy_img_cloudready
|
||||
fi
|
||||
elif [ -f (vtimghd,3)/etc/cloudready-release ]; then
|
||||
ventoy_img_cloudready
|
||||
elif [ -f (vtimghd,3)/etc/chrome_dev.conf ]; then
|
||||
ventoy_img_cloudready
|
||||
fi
|
||||
elif vt_str_begin "$vtImgHd1Label" "LAKKA"; then
|
||||
ventoy_img_openelec lakka
|
||||
@@ -2102,6 +2307,8 @@ function img_common_menuentry {
|
||||
ventoy_img_esysrescue
|
||||
elif [ -e (vtimghd,1)/easy.sfs ]; then
|
||||
ventoy_img_easyos
|
||||
elif [ -d (vtimghd,2)/easyos ]; then
|
||||
ventoy_img_easyos2
|
||||
elif [ -e (vtimghd,1)/volumio.initrd ]; then
|
||||
ventoy_img_volumio
|
||||
elif [ -f (vtimghd,2)/loader/entries/ubos.conf ]; then
|
||||
@@ -2147,7 +2354,7 @@ function img_unsupport_menuentry {
|
||||
#############################################################
|
||||
#############################################################
|
||||
|
||||
set VENTOY_VERSION="1.0.79"
|
||||
set VENTOY_VERSION="1.0.84"
|
||||
|
||||
#ACPI not compatible with Window7/8, so disable by default
|
||||
set VTOY_PARAM_NO_ACPI=1
|
||||
@@ -2171,6 +2378,7 @@ set VTOY_HELP_CMD="ventoy_show_help"
|
||||
set VTOY_CHKSUM_CMD="ventoy_checksum"
|
||||
set VTOY_HELP_TXT_LANGUAGE="en_US"
|
||||
set VTOY_CHKSUM_FILE_PATH="X"
|
||||
set VTOY_LANG_CMD="ventoy_language"
|
||||
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
@@ -2205,6 +2413,11 @@ if [ "$vtoy_dev" = "tftp" ]; then
|
||||
done
|
||||
loadfont ascii
|
||||
|
||||
if [ -n "$vtoy_efi_part" ]; then
|
||||
vt_load_file_to_mem "auto" $vtoy_efi_part/grub/fonts/unicode.pf2 vtoy_font_mem
|
||||
loadfont mem:${vtoy_font_mem_addr}:size:${vtoy_font_mem_size}
|
||||
fi
|
||||
|
||||
if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
|
||||
set vt_plugin_path=$vtoy_iso_part
|
||||
else
|
||||
@@ -2231,6 +2444,9 @@ fi
|
||||
#Load Partition Table
|
||||
vt_load_part_table $vtoydev
|
||||
|
||||
#Load menu lang file
|
||||
ventoy_load_menu_lang_file
|
||||
|
||||
#Load Plugin
|
||||
if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
|
||||
clear
|
||||
@@ -2240,6 +2456,12 @@ else
|
||||
vt_check_json_path_case $vtoy_iso_part
|
||||
fi
|
||||
|
||||
if [ -n "$VTOY_MENU_LANGUAGE" ]; then
|
||||
vt_init_menu_lang "$VTOY_MENU_LANGUAGE"
|
||||
else
|
||||
vt_init_menu_lang en_US
|
||||
fi
|
||||
|
||||
if [ -n "$VTOY_MENU_TIMEOUT" ]; then
|
||||
set timeout=$VTOY_MENU_TIMEOUT
|
||||
else
|
||||
@@ -2261,10 +2483,8 @@ fi
|
||||
|
||||
if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then
|
||||
set VTOY_F3_CMD="vt_dynamic_menu 1 1"
|
||||
set VTOY_HOTKEY_TIP="h:Help F1:Memdisk F2:Browser F3:TreeView F4:Localboot F5:Tools F6:ExMenu"
|
||||
else
|
||||
set VTOY_F3_CMD="vt_dynamic_menu 1 0"
|
||||
set VTOY_HOTKEY_TIP="h:Help F1:Memdisk F2:Browser F3:ListView F4:Localboot F5:Tools F6:ExMenu"
|
||||
fi
|
||||
|
||||
terminal_output console
|
||||
@@ -2373,6 +2593,7 @@ export VTOY_HELP_CMD
|
||||
export VTOY_CHKSUM_CMD
|
||||
export VTOY_HELP_TXT_LANGUAGE
|
||||
export VTOY_CHKSUM_FILE_PATH
|
||||
export VTOY_LANG_CMD
|
||||
|
||||
|
||||
#colect all image files (iso files)
|
||||
|
19
INSTALL/grub/help/bn_BN.txt
Normal file
19
INSTALL/grub/help/bn_BN.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
L - ভাষা নির্বাচন করুন
|
||||
F1 - এই সাহায্য তথ্য প্রদর্শন করুন
|
||||
F2 - স্থানীয় ডিস্কে ফাইলটি browse করুন এবং boot করুন
|
||||
F3 - Treeview <-> ListView এর মধ্যে মেনু মোড পরিবর্তন করুন
|
||||
F4 - স্থানীয় ডিস্কে Windows/Linux boot করুন
|
||||
F5 - ইউটিলিটিস
|
||||
F6 - কাস্টম Grub2 মেনু লোড করুন
|
||||
F7 - GUI মোড <-> TEXT মোডের মধ্যে স্যুইচ করুন
|
||||
|
||||
m/Ctrl+m - চেকসাম ইমেজ ফাইল (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Memdisk মোড (শুধুমাত্র ছোট WinPE/LiveCD ISO/IMG জন্য)
|
||||
w/Ctrl+w - WIMBOOT মোড (শুধুমাত্র standard Windows ISO জন্য)
|
||||
r/Ctrl+r - Grub2 মোড (শুধুমাত্র কিছু Linux distro জন্য)
|
||||
i/Ctrl+i - Compatible মোড (শুধুমাত্র debug জন্য)
|
||||
u/Ctrl+u - ISO efi ড্রাইভার লোড করুন (শুধুমাত্র debug জন্য, সরকারীভাবে ব্যবহার করা যাবে না)
|
||||
|
||||
|
||||
|
||||
ফিরে আসতে ESC টিপুন ......
|
@@ -1,18 +1,19 @@
|
||||
h - Zeigt dieses Hilfe Menu
|
||||
F1 - Memdisk Modus (Nur für kleine WinPE/LiveCD ISO/IMG)
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Menu wechsel zwischen Baum <-> Listen Ansicht
|
||||
F4 - Windows/Linux vom lokalem Datenträger starten
|
||||
F5 - Dienstprogramme
|
||||
L - Sprache auswählen
|
||||
F1 - Zeigt dieses Hilfemenü
|
||||
F2 - Durchsuchen und starten von Dateien auf lokalem Datenträger
|
||||
F3 - Wechsel zwischen Baum-/Listenansicht
|
||||
F4 - Windows/Linux von lokalem Datenträger starten
|
||||
F5 - Werkzeuge
|
||||
F6 - Benutzerdefiniertes Grub2-Menü laden
|
||||
F7 - Wechseln zwischen GUI-Modus <-> TEXT-Modus
|
||||
F7 - Wechseln zwischen Grafik-/Text-Modus
|
||||
|
||||
m - Prüfsummencheck Image Dateien (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT Modus (Nur für Standard Windows ISO)
|
||||
Ctrl+r - Grub2 Modus (Nur für einige Linux distros)
|
||||
Ctrl+i - Kompatibilitäts Modus (Nur für Fehleranalyse)
|
||||
Ctrl+u - Lade ISO efi Treiber (Nur für Fehleranalyse, darf nicht offiziel benutzt werden)
|
||||
m/Strg+m - Prüfsumme von Abbilddatei prüfen (md5/sha1/sha256/sha512)
|
||||
d/Strg+d - Memdisk-Modus (Nur für kleine WinPE/LiveCD ISO/IMG)
|
||||
w/Strg+w - WIMBOOT-Modus (Nur für Standard Windows ISO)
|
||||
r/Strg+r - Grub2-Modus (Nur für einige Linux-Distributionen)
|
||||
i/Strg+i - Kompatibilitäts-Modus (Nur für Fehleranalyse)
|
||||
u/Strg+u - ISO EFI-Treiber laden (Nur für Fehleranalyse, darf offiziell nicht benutzt werden)
|
||||
|
||||
|
||||
|
||||
Drücke ESC für Zurück ......
|
||||
ESC für Zurück drücken......
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - Display this help information
|
||||
F1 - Memdisk Mode (Only for small WinPE/LiveCD ISO/IMG)
|
||||
L - Language Select
|
||||
F1 - Display this help information
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Switch menu mode between Treeview <-> ListView
|
||||
F4 - Boot Windows/Linux in local disk
|
||||
@@ -7,11 +7,12 @@ F5 - Utilities
|
||||
F6 - Load Custom Grub2 Menu
|
||||
F7 - Switch between GUI Mode <-> TEXT Mode
|
||||
|
||||
m - Checksum image files (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
||||
Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
||||
Ctrl+i - Compatible Mode (Just only for debug)
|
||||
Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
m/Ctrl+m - Checksum image files (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Memdisk Mode (Only for small WinPE/LiveCD ISO/IMG)
|
||||
w/Ctrl+w - WIMBOOT Mode (Only for standard Windows ISO)
|
||||
r/Ctrl+r - Grub2 Mode (Only for some Linux distros)
|
||||
i/Ctrl+i - Compatible Mode (Just only for debug)
|
||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - Afficher cette aide
|
||||
F1 - Mode Memdisk (Seulement pour WinPE/LiveCD ISO/IMG)
|
||||
L - Sélection de la langue
|
||||
F1 - Afficher cette aide
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Basculer l'affichage 'Vue en arbre' <-> 'Vue en liste'
|
||||
F4 - Démarrer le système Windows/Linux local
|
||||
@@ -7,10 +7,13 @@ F5 - Utilitaires
|
||||
F6 - Charger le menu Grub2 personnalisé
|
||||
F7 - Basculer entre le mode graphique <-> mode texte
|
||||
|
||||
m - Somme de contrôle des images (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - Mode WIMBOOT (seulement pour les images standards Windows)
|
||||
Ctrl+r - Mode Grub2 (seulement pour quelques Linux)
|
||||
Ctrl+i - Mode Compatible (seulement à fins de tests)
|
||||
Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
m/Ctrl+m - Somme de contrôle des images (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Mode Memdisk (Seulement pour WinPE/LiveCD ISO/IMG)
|
||||
w/Ctrl+w - Mode WIMBOOT (seulement pour les images standards Windows)
|
||||
r/Ctrl+r - Mode Grub2 (seulement pour quelques Linux)
|
||||
i/Ctrl+i - Mode Compatible (seulement à fins de tests)
|
||||
u/Ctrl+u - Load ISO efi driver (Just only for debug, can not be used officially)
|
||||
|
||||
|
||||
|
||||
Appuyer sur Echap pour sortir ......
|
||||
|
19
INSTALL/grub/help/hi_HI.txt
Normal file
19
INSTALL/grub/help/hi_HI.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
L - भाषा का चयन
|
||||
F1 - इस सहायता जानकारी को प्रदर्शित करें
|
||||
F2 - स्थानीय डिस्क में फ़ाइलें ब्राउज़ करें और बूट करें
|
||||
F3 - TreeView <-> ListView के बीच मेन्यू मोड स्विच करें
|
||||
F4 - स्थानीय डिस्क में Windows/Linux बूट करें
|
||||
F5 - यूटिलिटीज
|
||||
F6 - कस्टम Grub2 मेनू लोड करें
|
||||
F7 - GUI मोड <-> Text मोड के बीच स्विच करें
|
||||
|
||||
m/Ctrl+m - चेकसम इमेज फाइल्स (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Memdisk मोड (केवल small WinPE/LiveCD ISO/IMG के लिए)
|
||||
w/Ctrl+w - WIMBOOT मोड (केवल standard Windows ISO के लिए)
|
||||
r/Ctrl+r - Grub2 मोड (केवल कुछ Linux distros के लिए)
|
||||
i/Ctrl+i - Compatible मोड (केवल डिबग के लिए)
|
||||
u/Ctrl+u - ISO efi ड्राइवर लोड करें (केवल debug के लिए, आधिकारिक तौर पर इस्तेमाल नहीं किया जा सकता)
|
||||
|
||||
|
||||
|
||||
वापस जाने के लिए ESC दबाएं ......
|
@@ -1,5 +1,5 @@
|
||||
h - Prikazuje ove informacije
|
||||
F1 - Memdisk način rada (samo za male WinPE/LiveCD imidž fajlove)
|
||||
L - Izaberite jezik
|
||||
F1 - Prikazuje ove informacije
|
||||
F2 - Pokreće imidž fajlove na lokalnom disku
|
||||
F3 - Mijenja meni između TreeView <-> ListView
|
||||
F4 - Pokreće Windows/Linux na lokalnom disku
|
||||
@@ -7,11 +7,12 @@ F5 - Alati
|
||||
F6 - Učitava prilagođen GRUB2 meni
|
||||
F7 - Mijenja između GUI <-> TEXT načina rada
|
||||
|
||||
m - Generira heš odabranog imidž fajla (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT način rada (samo za standardne Windows imidž fajlove)
|
||||
Ctrl+r - GRUB2 način rada (samo za neke Linux distribucije)
|
||||
Ctrl+i - Kompatibilni način rada (samo za testiranje)
|
||||
Ctrl+u - Učitava EFI drajver za imidž fajlove (samo za testiranje)
|
||||
m/Ctrl+m - Generira heš odabranog imidž fajla (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Memdisk način rada (samo za male WinPE/LiveCD imidž fajlove)
|
||||
w/Ctrl+w - WIMBOOT način rada (samo za standardne Windows imidž fajlove)
|
||||
r/Ctrl+r - GRUB2 način rada (samo za neke Linux distribucije)
|
||||
i/Ctrl+i - Kompatibilni način rada (samo za testiranje)
|
||||
u/Ctrl+u - Učitava EFI drajver za imidž fajlove (samo za testiranje)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - Tampilkan bantuan informasi ini
|
||||
F1 - Mode Memdisk (Hanya untuk ukuran WinPE/LiveCD ISO/IMG yang kecil)
|
||||
L - Pilih Bahasa
|
||||
F1 - Tampilkan bantuan informasi ini
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Beralih mode menu antara Treeview <-> ListView
|
||||
F4 - Jalankan (boot) Windows/Linux pada disk lokal
|
||||
@@ -7,11 +7,12 @@ F5 - Alat Utilitas
|
||||
F6 - Memuat ubah suai Grub2 Menu
|
||||
F7 - Beralih antara mode GUI <-> Mode TEXT
|
||||
|
||||
m - Periksa berkas files (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - Mode WIMBOOT (Hanya untuk berkas ISO Windows standar)
|
||||
Ctrl+r - Mode Grub2 (Hanya untuk distro Linux tertentu)
|
||||
Ctrl+i - Mode Kompatibel/Compatible (Hanya untuk debug saja)
|
||||
Ctrl+u - Memuat ISO efi driver (Hanya untuk debug saja, tidak dapat dipakai secara umum)
|
||||
m/Ctrl+m - Periksa berkas files (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Mode Memdisk (Hanya untuk ukuran WinPE/LiveCD ISO/IMG yang kecil)
|
||||
w/Ctrl+w - Mode WIMBOOT (Hanya untuk berkas ISO Windows standar)
|
||||
r/Ctrl+r - Mode Grub2 (Hanya untuk distro Linux tertentu)
|
||||
i/Ctrl+i - Mode Kompatibel/Compatible (Hanya untuk debug saja)
|
||||
u/Ctrl+u - Memuat ISO efi driver (Hanya untuk debug saja, tidak dapat dipakai secara umum)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - この画面を表示する
|
||||
F1 - 主記憶装置上に記憶域を作成する(容量の小さなWinPE・LiveCD専用)
|
||||
L - 言語を選択
|
||||
F1 - この画面を表示する
|
||||
F2 - 手元の記憶装置にある起動ファイルを選択して実行する
|
||||
F3 - 表示形式を切り替える(一覧 ↔ 階層)
|
||||
F4 - 手元の記憶装置にあるWindowsまたはLinuxを起動する
|
||||
@@ -7,11 +7,12 @@ F5 - 諸機能
|
||||
F6 - Grub2の構成を読み込む
|
||||
F7 - 操作形式を切り替える(GUI ↔ CUI)
|
||||
|
||||
m - イメージの検査合計を計算する (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOTモード(標準的なWindows ISO専用)
|
||||
Ctrl+r - Grub2モード(一部のLinuxディストリビューション専用)
|
||||
Ctrl+i - 互換モード(開発用)
|
||||
Ctrl+u - ISO efiドライバーを読み取る(開発用,非公式)
|
||||
m/Ctrl+m - イメージの検査合計を計算する (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - 主記憶装置上に記憶域を作成する(容量の小さなWinPE・LiveCD専用)
|
||||
w/Ctrl+w - WIMBOOTモード(標準的なWindows ISO専用)
|
||||
r/Ctrl+r - Grub2モード(一部のLinuxディストリビューション専用)
|
||||
i/Ctrl+i - 互換モード(開発用)
|
||||
u/Ctrl+u - ISO efiドライバーを読み取る(開発用,非公式)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - 이 도움말 정보 표시
|
||||
F1 - Memdisk 모드 (작은 WinPE/LiveCD ISO/IMG 전용)
|
||||
L - 언어 선택
|
||||
F1 - 이 도움말 정보 표시
|
||||
F2 - 로컬 디스크에서 파일 찾아보기 및 부팅
|
||||
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
||||
F4 - 로컬 디스크에서 Windows/Linux 부팅
|
||||
@@ -7,11 +7,12 @@ F5 - 유틸리티
|
||||
F6 - 사용자 지정 Grub2 메뉴 로드
|
||||
F7 - GUI 모드 <-> TEXT 모드 간에 전환
|
||||
|
||||
m - 체크섬 이미지 파일 (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT 모드 (표준 Windows ISO 전용)
|
||||
Ctrl+r - Grub2 모드 (일부 Linux 배포판에만 해당)
|
||||
Ctrl+i - 호환 모드 (디버그 전용)
|
||||
Ctrl+u - ISO eFi 드라이버 로드 (디버그 전용, 공식적으로 사용할 수 없음)
|
||||
m/Ctrl+m - 체크섬 이미지 파일 (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - WIMBOOT 모드 (표준 Windows ISO 전용)
|
||||
w/Ctrl+w - Memdisk 모드 (작은 WinPE/LiveCD ISO/IMG 전용)
|
||||
r/Ctrl+r - Grub2 모드 (일부 Linux 배포판에만 해당)
|
||||
i/Ctrl+i - 호환 모드 (디버그 전용)
|
||||
u/Ctrl+u - ISO eFi 드라이버 로드 (디버그 전용, 공식적으로 사용할 수 없음)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - Mostra esta informação de ajuda
|
||||
F1 - Modo Memdisk (Apenas para pequenos WinPE/LiveCD ISO/IMG)
|
||||
L - Selecionar Idioma
|
||||
F1 - Mostra esta informação de ajuda
|
||||
F2 - Browse and boot files in local disk
|
||||
F3 - Alternar o modo menu entre Vista de árvore <-> Vista de lista
|
||||
F4 - Arrancar o Windows/Linux em disco local
|
||||
@@ -7,11 +7,12 @@ F5 - Utilitários
|
||||
F6 - Carregar menu Grub2 personalizado
|
||||
F7 - Alternar entre Modo GUI <-> Modo TEXTO
|
||||
|
||||
m - Checksum ficheiros de imagem (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - Modo WIMBOOT (Apenas para Windows ISO padrão)
|
||||
Ctrl+r - Modo Grub2 (Apenas para algumas distros Linux)
|
||||
Ctrl+i - Modo Compatível (Apenas para depuração)
|
||||
Ctrl+u - Carregar o controlador ISO efi (Apenas para depuração, não pode ser utilizado oficialmente)
|
||||
m/Ctrl+m - Checksum ficheiros de imagem (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Modo Memdisk (Apenas para pequenos WinPE/LiveCD ISO/IMG)
|
||||
w/Ctrl+w - Modo WIMBOOT (Apenas para Windows ISO padrão)
|
||||
r/Ctrl+r - Modo Grub2 (Apenas para algumas distros Linux)
|
||||
i/Ctrl+i - Modo Compatível (Apenas para depuração)
|
||||
u/Ctrl+u - Carregar o controlador ISO efi (Apenas para depuração, não pode ser utilizado oficialmente)
|
||||
|
||||
|
||||
Prima ESC para voltar ......
|
||||
|
19
INSTALL/grub/help/ru_RU.txt
Normal file
19
INSTALL/grub/help/ru_RU.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
L - Выбор языка
|
||||
F1 - Показать эту справочную информацию
|
||||
F2 - Просмотр и загрузка файлов на локальном диске
|
||||
F3 - Переключить режим меню между Treeview <-> ListView
|
||||
F4 - Загрузка Windows/Linux с локального диска
|
||||
F5 - Утилиты
|
||||
F6 - Загрузить пользовательское меню Grub2
|
||||
F7 - Переключиться между режимом GUI <-> режимом TEXT
|
||||
|
||||
m/Ctrl+m - Проверить контрольную сумму файлов образа диска (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Режим Memdisk (Только для небольших WinPE/LiveCD ISO/IMG)
|
||||
w/Ctrl+w - Режим WIMBOOT (Только для стандартного Windows ISO)
|
||||
r/Ctrl+r - Режим Grub2 (Только для некоторых дистрибутивов Linux)
|
||||
i/Ctrl+i - Совместимый режим (Только для отладки)
|
||||
u/Ctrl+u - Загрузить драйвер ISO EFI (Только для отладки, нельзя использовать официально)
|
||||
|
||||
|
||||
|
||||
Нажмите ESC, чтобы вернуться ......
|
@@ -1,5 +1,5 @@
|
||||
h - Приказује ове информације
|
||||
F1 - Memdisk начин рада (само за мале WinPE/LiveCD имиџ фајлове)
|
||||
L - Изаберите језик
|
||||
F1 - Приказује ове информације
|
||||
F2 - Покреће имиџ фајлове на локалном диску
|
||||
F3 - Мења мени између TreeView <-> ListView
|
||||
F4 - Покреће Windows/Linux на локалном диску
|
||||
@@ -7,11 +7,12 @@ F5 - Алати
|
||||
F6 - Учитава прилагођен GRUB2 мени
|
||||
F7 - Мења између GUI <-> TEXT начина рада
|
||||
|
||||
m - Генерира хеш одабраног имиџ фајла (md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT начин рада (само за стандардне Windows имиџ фајлове)
|
||||
Ctrl+r - GRUB2 начин рада (само за неке Linux дистрибуције)
|
||||
Ctrl+i - Компатибилни начин рада (само за тестирање)
|
||||
Ctrl+u - Учитава EFI драјвер за имиџ фајлове (само за тестирање)
|
||||
m/Ctrl+m - Генерира хеш одабраног имиџ фајла (md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - Memdisk начин рада (само за мале WinPE/LiveCD имиџ фајлове)
|
||||
w/Ctrl+w - WIMBOOT начин рада (само за стандардне Windows имиџ фајлове)
|
||||
r/Ctrl+r - GRUB2 начин рада (само за неке Linux дистрибуције)
|
||||
i/Ctrl+i - Компатибилни начин рада (само за тестирање)
|
||||
u/Ctrl+u - Учитава EFI драјвер за имиџ фајлове (само за тестирање)
|
||||
|
||||
|
||||
|
||||
|
@@ -1,17 +1,19 @@
|
||||
h - Yardım bilgilerini göster
|
||||
F1 - Memdisk Modu başlatır(Yalnızca küçük WinPE/LiveCD ISO/IMG ler için bu modu kullanabilirsiniz)
|
||||
F2 - Yerel diskteki dosyalara GÖZAT ve ÖNYÜKLE'meyi sağlar
|
||||
L - Dil Seçimi
|
||||
F1 - Yardım bilgilerini göster
|
||||
F2 - Yerel diskteki önyükleme dosyalarına GÖZAT ve yerel diskten Önyükleme yap
|
||||
F3 - Ventoy Menü modu olarak,Klasör görünümü(Treeview) ile Liste görünümü(ListView) arasında geçiş yapmayı sağlar.
|
||||
F4 - Bilgisayarınızda yüklü olan Windows yada Linux işletim sistemini, sabit diskten başlatır.
|
||||
F5 - Ventoy Araçlar menüsü
|
||||
F6 - Özelleştirilmiş Grub2 menüsünü yükler
|
||||
F7 - Grafik Modu(GUI Mode) ile Metin Modu(Text Mode) arasında geçiş yapmayı sağlar
|
||||
F7 - Grafik Modu(GUI Mode) <--> Metin Modu(Text Mode) arasında geçiş yapmayı sağlar
|
||||
|
||||
m/Ctrl+m - İndirilen imaj dosyalarının hatasız indirildiğini teyit etmek için "md5/sha1/sha256/sha512" değerlerini kontrol etmeyi sağlar
|
||||
d/Ctrl+d - Memdisk Modu başlatır(Yalnızca küçük WinPE/LiveCD ISO/IMG ler için bu modu kullanabilirsiniz)
|
||||
w/Ctrl+w - WIMBOOT Modu çalıştırmayı sağlar(Sadece normal Windows ISO ları için)
|
||||
r/Ctrl+r - Grub2 Modu çalıştırmayı sağlar (Sadece bazı Linux dağıtımları için)
|
||||
i/Ctrl+i - Uyumluluk Modu'nu (Compatible Mode) çalıştırmayı sağlar (Sadece hata ayıklama için bu modu kullanabilirsiniz)
|
||||
u/Ctrl+u - ISO efi sürücüsünü yükler(Sadece hata ayıklama için bu mod kullanılabilir, resmi olarak kullanılamaz)
|
||||
|
||||
m - İndirilen imaj dosyalarının hatasız indirildiğini teyit etmek için "md5/sha1/sha256/sha512" değerlerini kontrol etmeyi sağlar
|
||||
Ctrl+w - WIMBOOT Modu çalıştırmayı sağlar(Sadece normal Windows ISO ları için)
|
||||
Ctrl+r - Grub2 Modu çalıştırmayı sağlar (Sadece bazı Linux dağıtımları için)
|
||||
Ctrl+i - Uyumluluk Modu'nu (Compatible Mode) çalıştırmayı sağlar (Sadece hata ayıklama için bu modu kullanabilirsiniz)
|
||||
Ctrl+u - ISO efi sürücüsünü yükler(Sadece hata ayıklama için bu mod kullanılabilir, resmi olarak kullanılamaz)
|
||||
|
||||
|
||||
Geriye dönmek için ESC tuşuna basınız......
|
||||
|
@@ -1,5 +1,5 @@
|
||||
h - 显示本帮助信息
|
||||
F1 - 把文件加载到内存启动(只适用于文件很小的 WinPE/LiveCD等)
|
||||
L - 选择语言
|
||||
F1 - 显示本帮助信息
|
||||
F2 - 浏览并启动本地硬盘中的镜像文件
|
||||
F3 - 菜单显示模式切换。可在列表模式和目录模式之间自由切换。
|
||||
F4 - 启动本地硬盘上的 Windows/Linux 等系统。
|
||||
@@ -7,11 +7,12 @@ F5 - 各类工具
|
||||
F6 - 加载自定义 GRUB2 菜单。
|
||||
F7 - 界面在文本模式和图形模式之间切换。
|
||||
|
||||
m - 计算文件校验值(md5/sha1/sha256/sha512)
|
||||
Ctrl+w - WIMBOOT 模式 (只适用于标准的 Windows ISO文件)
|
||||
Ctrl+r - Grub2 模式 (只适用于常见的一些 Linux 系统ISO文件)
|
||||
Ctrl+i - 兼容模式 (只用作调试目的,不能正式使用)
|
||||
Ctrl+u - 加载 ISO efi 驱动(只用作调试目的,不能正式使用)
|
||||
m/Ctrl+m - 计算文件校验值(md5/sha1/sha256/sha512)
|
||||
d/Ctrl+d - MEMDISK 模式,把文件加载到内存启动(只适用于文件很小的 WinPE/LiveCD等)
|
||||
w/Ctrl+w - WIMBOOT 模式 (只适用于标准的 Windows ISO文件)
|
||||
r/Ctrl+r - Grub2 模式 (只适用于常见的一些 Linux 系统ISO文件)
|
||||
i/Ctrl+i - 兼容模式 (只用作调试目的,不能正式使用)
|
||||
u/Ctrl+u - 加载 ISO efi 驱动(只用作调试目的,不能正式使用)
|
||||
|
||||
|
||||
按 ESC 键返回 ......
|
||||
|
@@ -1,4 +1,4 @@
|
||||
menuentry 'Hardware Information' --class=debug_hwinfo --class=F5tool {
|
||||
menuentry '@VTMENU_HWINFO' --class=debug_hwinfo --class=F5tool {
|
||||
smbios -t 4 -s 0x10 --set=cpu_brand
|
||||
|
||||
set system_vendor="-";
|
||||
|
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
submenu "Keyboard Layouts" --class=debug_krdlayout --class=F5tool {
|
||||
submenu "@VTMENU_KEYBRD_LAYOUT" --class=debug_krdlayout --class=F5tool {
|
||||
menuentry QWERTY_USA --class=debug_kbd --class=debug_krdlayout --class=F5tool {
|
||||
set_keyboard_layout QWERTY_USA
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
menuentry 'Search and boot Windows' --class=boot_windows --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_WINDOWS' --class=boot_windows --class=F4boot {
|
||||
|
||||
set partid=3
|
||||
while [ $partid -le 128 ]; do
|
||||
@@ -38,7 +38,7 @@ if [ "$grub_platform" = "pc" ]; then
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Search and boot Grub4dos' --class=boot_g4d --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_G4D' --class=boot_g4d --class=F4boot {
|
||||
if search -n -s -f /grldr; then
|
||||
ntldr /grldr
|
||||
else
|
||||
@@ -46,19 +46,19 @@ if [ "$grub_platform" = "pc" ]; then
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Boot the 1st local disk' --class=boot_disk --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_HDD1' --class=boot_disk --class=F4boot {
|
||||
set root=(hd0,1)
|
||||
chainloader +1
|
||||
boot
|
||||
}
|
||||
|
||||
menuentry 'Boot the 2nd local disk' --class=boot_disk --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_HDD2' --class=boot_disk --class=F4boot {
|
||||
set root=(hd1,1)
|
||||
chainloader +1
|
||||
boot
|
||||
}
|
||||
|
||||
menuentry 'Boot the 3rd local disk' --class=boot_disk --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_HDD3' --class=boot_disk --class=F4boot {
|
||||
set root=(hd2,1)
|
||||
chainloader +1
|
||||
boot
|
||||
@@ -66,7 +66,7 @@ if [ "$grub_platform" = "pc" ]; then
|
||||
|
||||
else
|
||||
|
||||
menuentry 'Search and boot Windows' --class=boot_windows --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_WINDOWS' --class=boot_windows --class=F4boot {
|
||||
|
||||
set partid=3
|
||||
while [ $partid -le 128 ]; do
|
||||
@@ -102,7 +102,7 @@ else
|
||||
}
|
||||
|
||||
if [ "$grub_cpu" = "i386" ]; then
|
||||
menuentry 'Search and boot BOOTIA32.EFI' --class=boot_uefi --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_IA32EFI' --class=boot_uefi --class=F4boot {
|
||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||
if search -n -s -f /efi/boot/bootia32.efi; then
|
||||
unset VTOY_SEARCH_NO_VTOYEFI
|
||||
@@ -115,7 +115,7 @@ else
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Search and boot xorboot' --class=boot_xorboot --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_XORBOOT' --class=boot_xorboot --class=F4boot {
|
||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||
if search -n -s -f /efi/xorboot/xorboot32.xor; then
|
||||
unset VTOY_SEARCH_NO_VTOYEFI
|
||||
@@ -132,7 +132,7 @@ else
|
||||
fi
|
||||
}
|
||||
elif [ "$grub_cpu" = "arm64" ]; then
|
||||
menuentry 'Search and boot BOOTAA64.EFI' --class=boot_uefi --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_AA64EFI' --class=boot_uefi --class=F4boot {
|
||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||
if search -n -s -f /efi/boot/bootaa64.efi; then
|
||||
unset VTOY_SEARCH_NO_VTOYEFI
|
||||
@@ -145,7 +145,7 @@ else
|
||||
fi
|
||||
}
|
||||
else
|
||||
menuentry 'Search and boot BOOTX64.EFI' --class=boot_uefi --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_X64EFI' --class=boot_uefi --class=F4boot {
|
||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||
if search -n -s -f /efi/boot/bootx64.efi; then
|
||||
unset VTOY_SEARCH_NO_VTOYEFI
|
||||
@@ -158,7 +158,7 @@ else
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Search and boot xorboot' --class=boot_xorboot --class=F4boot {
|
||||
menuentry '@VTMENU_LB_SBOOT_XORBOOT' --class=boot_xorboot --class=F4boot {
|
||||
set VTOY_SEARCH_NO_VTOYEFI=1
|
||||
if search -n -s -f /efi/xorboot/xorboot.xor; then
|
||||
unset VTOY_SEARCH_NO_VTOYEFI
|
||||
@@ -179,6 +179,6 @@ else
|
||||
|
||||
fi
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
81
INSTALL/grub/menu/bn_BN.json
Normal file
81
INSTALL/grub/menu/bn_BN.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Bengali (বাংলা)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:ভাষা F1:সাহায্য F2:Browser F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:ভাষা F1:সাহায্য F2:Browser F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "পূর্ববর্তী মেনুতে ফিরে যান [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "মেনু ভাষা নির্বাচন করুন",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows অনুসন্ধান করুন এবং বুট করুন",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos অনুসন্ধান করুন এবং বুট করুন",
|
||||
"VTMENU_LB_SBOOT_HDD1": "১ম(1st) স্থানীয় ডিস্ক বুট করুন",
|
||||
"VTMENU_LB_SBOOT_HDD2": "২য়(2nd) স্থানীয় ডিস্ক বুট করুন",
|
||||
"VTMENU_LB_SBOOT_HDD3": "3য়(3rd) স্থানীয় ডিস্ক বুট করুন",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI অনুসন্ধান করুন এবং বুট করুন",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI অনুসন্ধান করুন এবং বুট করুন",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI অনুসন্ধান করুন এবং বুট করুন",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "xorboot অনুসন্ধান করুন এবং বুট করুন",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "ফাইল চেকসাম",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "md5sum গণনা করুন",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum গণনা করুন",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum গণনা করুন",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum গণনা করুন",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "গণনা করুন এবং md5sum চেক করুন",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "গণনা করুন এবং sha1sum চেক করুন",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "গণনা করুন এবং sha256sum চেক করুন",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "গণনা করুন এবং sha512sum চেক করুন",
|
||||
|
||||
"VTMENU_POWER": "পাওয়ার",
|
||||
"VTMENU_POWER_REBOOT": "রিবুট",
|
||||
"VTMENU_POWER_HALT": "হল্ট",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "EFI সেটআপে রিবুট করুন",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "কীবোর্ড লেআউট",
|
||||
"VTMENU_HWINFO": "হার্ডওয়্যার তথ্য",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "রেজোলিউশন কনফিগারেশন",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display মোড",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text মোড",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics মোড",
|
||||
|
||||
"VTMENU_THEME_SELECT": "থিম নির্বাচন করুন",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI ড্রাইভার দেখান",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary ব্যর্থতার সমাধান করুন",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "প্লাগইন json কনফিগারেশন পরীক্ষা করুন (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "গ্লোবাল কন্ট্রোল প্লাগইন কনফিগারেশন চেক করুন",
|
||||
"VTMENU_JSON_CHK_THEME": "থিম প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "অটো ইন্সটল প্লাগইন কনফিগারেশন চেক করুন",
|
||||
"VTMENU_JSON_CHK_PERSIST": "persistence প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "menu alias প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "menu tip প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "menu class প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_INJECTION": "injection প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "auto memdisk প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "image list প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "image blacklist প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "boot conf replace প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_DUD": "dud প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "password প্লাগইন কনফিগারেশন পরীক্ষা করুন",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "সাধারণ মোডে বুট করুন",
|
||||
"VTMENU_WIMBOOT_MODE": "wimboot মোডে বুট করুন",
|
||||
"VTMENU_GRUB2_MODE": "grub2 মোডে বুট করুন",
|
||||
"VTMENU_MEMDISK_MODE": "memdisk মোডে বুট করুন",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "ListView-এ ফিরে যান",
|
||||
"VTMENU_RET_TO_TREEVIEW": "TreeView-এ ফিরে যান",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "auto install মোড বিনা বুট করুন",
|
||||
"VTMENU_AUTOINS_USE": "দিয়ে বুট করুন",
|
||||
|
||||
"VTMENU_NO_PERSIST": "persistence বিনা বুট করুন",
|
||||
"VTMENU_PERSIST_USE": "দিয়ে বুট করুন",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "ফিরে",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/de_DE.json
Normal file
81
INSTALL/grub/menu/de_DE.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "German (Deutsch)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Sprache F1:Hilfe F2:Browser F3:Listenansicht F4:Lokaler Start F5:Werkzeuge F6:Erweitert",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Sprache F1:Hilfe F2:Browser F3:Listenansicht F4:Lokaler Start F5:Werkzeuge F6:Erweitert",
|
||||
"VTMENU_RETURN_PREVIOUS": "Zu vorherigem Menü [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menüsprache auswählen",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows suchen und starten",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos suchen und starten",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Vom ersten lokalen Datenträger starten",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Vom zweiten lokalen Datenträger starten",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Vom dritten lokalen Datenträger starten",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI suchen und starten",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI suchen und starten",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI suchen und starten",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "xorboot suchen und starten",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "Dateiprüfsumme",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "md5sum berechnen",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum berechnen",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum berechnen",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum berechnen",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum berechnen und prüfen",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum berechnen und prüfen",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum berechnen und prüfen",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum berechnen und prüfen",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Neustart",
|
||||
"VTMENU_POWER_HALT": "Herunterfahren",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Neustart in EFI-Konfiguration",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Tastaturlayout",
|
||||
"VTMENU_HWINFO": "Hardwareinformationen",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Auflösungseinstellungen",
|
||||
"VTMENU_SCREEN_MODE": "Bildschirmanzeigemodus",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Textmodus erzwingen",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Grafikmodus erzwingen",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Design auswählen",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI-Treiber anzeigen",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary Fehler beheben",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Konfiguration des JSON-Plugins prüfen (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Konfiguration des Plugins für die allgemeine Kontrolle prüfen",
|
||||
"VTMENU_JSON_CHK_THEME": "Konfiguration des Design-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Konfiguration des Plugins für die automatische Installation prüfen",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Konfiguration des Persistenz-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Konfiguration des Menü-Alias-Plugin prüfen",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Konfiguration des Menütipp-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Konfiguration des Menüklassen-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Konfiguration des Injektions-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Konfiguration des auto-memdisk-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Konfiguration des Abbild-Listen-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Konfiguration des Abbild-Sperrlisten-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Konfiguration des Boot-Conf-Replace-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_DUD": "Konfiguration des dud-Plugins prüfen",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Konfiguration des Passwort-Plugins prüfen",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "In Normal-Modus starten",
|
||||
"VTMENU_WIMBOOT_MODE": "In wimboot-Modus starten",
|
||||
"VTMENU_GRUB2_MODE": "In grub2-Modus starten",
|
||||
"VTMENU_MEMDISK_MODE": "In memdisk-Modus starten",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Zurück zur Listenansicht",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Zurück zur Baumansicht",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Ohne Vorlage für die automatische Installation starten",
|
||||
"VTMENU_AUTOINS_USE": "Start mit",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Ohne Persistenz starten",
|
||||
"VTMENU_PERSIST_USE": "Start mit",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Zurück",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/en_US.json
Normal file
81
INSTALL/grub/menu/en_US.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "English (English)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Language F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Language F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menu Language Select",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Search and boot Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Search and boot Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Reboot",
|
||||
"VTMENU_POWER_HALT": "Halt",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
||||
"VTMENU_HWINFO": "Hardware Information",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Theme Select",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Return",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/fr_FR.json
Normal file
81
INSTALL/grub/menu/fr_FR.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "French (Français)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Langue F1:Aider F2:Parcourir F3:AffichageListe F4:Localboot F5:Outils F6:Menu étendu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Langue F1:Aider F2:Parcourir F3:AffichageListe F4:Localboot F5:Outils F6:Menu étendu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Retour au menu précédent [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Sélection de la langue des menus",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Rechercher et démarrer Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Rechercher et démarrer Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Démarrez le 1er disque local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Démarrez le 2ème disque local",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Démarrez le 3ème disque local",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Rechercher et démarrer BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Rechercher et démarrer BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Rechercher et démarrer BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Rechercher et démarrer xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "Somme de contrôle du fichier",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculer MD5",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculer SHA1",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculer SHA256",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculer SHA512",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculer et vérifier MD5",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculer et vérifier SHA1",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculer et vérifier SHA256",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculer et vérifier SHA512",
|
||||
|
||||
"VTMENU_POWER": "Source d'alimentation",
|
||||
"VTMENU_POWER_REBOOT": "Redémarrer",
|
||||
"VTMENU_POWER_HALT": "Éteindre",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Redémarrez avec la configuration EFI",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Dispositions de clavier",
|
||||
"VTMENU_HWINFO": "Informations sur le matériel",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Configuration de la résolution",
|
||||
"VTMENU_SCREEN_MODE": "Mode d'affichage",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Mode texte",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Mode graphique",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Sélection de thème",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Démarrez en mode normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Démarrez en mode wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Démarrez en mode grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Démarrez en mode memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Revenir à ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Revenir à TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Revenir",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/hi_HI.json
Normal file
81
INSTALL/grub/menu/hi_HI.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Hindi (हिन्दी)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:भाषा F1:मदद F2:ब्राउज़र F3:ListView F4:स्थानीयबूट F5:उपकरण F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:भाषा F1:मदद F2:ब्राउज़र F3:TreeView F4:स्थानीयबूट F5:उपकरण F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "पिछले मेनू पर लौटें [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "मेनू भाषा का चयन करें",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows खोजें और बूट करें",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos खोजें और बूट करें",
|
||||
"VTMENU_LB_SBOOT_HDD1": "पहली(1st) स्थानीय डिस्क को बूट करें",
|
||||
"VTMENU_LB_SBOOT_HDD2": "दूसरी(2nd) स्थानीय डिस्क बूट करें",
|
||||
"VTMENU_LB_SBOOT_HDD3": "तीसरी(3rd) स्थानीय डिस्क बूट करें",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI खोजें और बूट करें",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI खोजें और बूट करें",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI खोजें और बूट करें",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "xorboot खोजें और बूट करें",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "फ़ाइल चेकसम",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Md5sum की गणना करें",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum की गणना करें",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum की गणना करें",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum की गणना करें",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum की गणना और जाँच करें",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum की गणना और जाँच करें",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum की गणना और जाँच करें",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum की गणना और जाँच करें",
|
||||
|
||||
"VTMENU_POWER": "पावर",
|
||||
"VTMENU_POWER_REBOOT": "रीबूट",
|
||||
"VTMENU_POWER_HALT": "हाल्ट",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "EFI सेटअप के लिए रीबूट करें",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "कीबोर्ड लेआउट",
|
||||
"VTMENU_HWINFO": "हार्डवेयर की जानकारी",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "रिज़ॉल्यूशन कॉन्फ़िगरेशन",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display मोड",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "फोर्स Text मोड",
|
||||
"VTMENU_SCREEN_GUI_MODE": "फोर्स Graphics मोड",
|
||||
|
||||
"VTMENU_THEME_SELECT": "थीम का चयन",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI ड्राइवर्स दिखाएं",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary विफलता को ठीक करें",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "प्लगइन json विन्यास की जाँच करें (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "global control प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_THEME": "theme प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "auto install प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_PERSIST": "persistence प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "menu alias प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "menu tip प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "menu class प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_INJECTION": "injection प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "auto memdisk प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "image list प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "image blacklist प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "boot conf replace प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_DUD": "dud प्लगइन विन्यास की जाँच करें",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "password प्लगइन विन्यास की जाँच करें",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "सामान्य मोड में बूट करें",
|
||||
"VTMENU_WIMBOOT_MODE": "wimboot मोड में बूट करें",
|
||||
"VTMENU_GRUB2_MODE": "grub2 मोड में बूट करें",
|
||||
"VTMENU_MEMDISK_MODE": "memdisk मोड में बूट करें",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "ListView पर वापस जाएँ",
|
||||
"VTMENU_RET_TO_TREEVIEW": "TreeView पर वापस जाएँ",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "ऑटो इंस्टॉलेशन टेम्पलेट के बिना बूट करें",
|
||||
"VTMENU_AUTOINS_USE": "के साथ बूट करें",
|
||||
|
||||
"VTMENU_NO_PERSIST": "बिना persistence के बूट करें",
|
||||
"VTMENU_PERSIST_USE": "के साथ बूट करें",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "लौटें",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/hr_HR.json
Normal file
81
INSTALL/grub/menu/hr_HR.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Croatian (Hrvatski)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Jezik F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Jezik F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menu Language Select",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Search and boot Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Search and boot Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Reboot",
|
||||
"VTMENU_POWER_HALT": "Halt",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
||||
"VTMENU_HWINFO": "Hardware Information",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Theme Select",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Return",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/id_ID.json
Normal file
81
INSTALL/grub/menu/id_ID.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Indonesian (Bahasa Indonesia)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Bahasa F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Bahasa F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menu Language Select",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Search and boot Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Search and boot Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Reboot",
|
||||
"VTMENU_POWER_HALT": "Halt",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
||||
"VTMENU_HWINFO": "Hardware Information",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Theme Select",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Return",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/ja_JP.json
Normal file
81
INSTALL/grub/menu/ja_JP.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Japanese (日本語)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:言語 F1:ヘルプ F2:ブラウズ F3:リストビュー F4:Localboot F5:ツール F6:拡張メニュー",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:言語 F1:ヘルプ F2:ブラウズ F3:ツリー表示 F4:Localboot F5:ツール F6:拡張メニュー",
|
||||
"VTMENU_RETURN_PREVIOUS": "前のメニューに戻る [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "メニュー言語選択",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows を検索して起動する",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos を検索して起動する",
|
||||
"VTMENU_LB_SBOOT_HDD1": "最初のローカル ディスクを起動します",
|
||||
"VTMENU_LB_SBOOT_HDD2": "2 番目のローカル ディスクを起動する",
|
||||
"VTMENU_LB_SBOOT_HDD3": "3 番目のローカル ディスクを起動する",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI を検索して起動する",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI を検索して起動する",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI を検索して起動する",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "xorboot を検索して起動する",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "ファイルのチェックサム",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "MD5 を計算する",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "SHA1 を計算する",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "SHA256 を計算する",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "SHA512 を計算する",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "MD5 を計算して確認する",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "SHA1 を計算して確認する",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "SHA256 を計算して確認する",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "SHA512 を計算して確認する",
|
||||
|
||||
"VTMENU_POWER": "電源",
|
||||
"VTMENU_POWER_REBOOT": "リブート",
|
||||
"VTMENU_POWER_HALT": "電源を切る",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "再起動して EFI セットアップ",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "キーボード・レイアウト",
|
||||
"VTMENU_HWINFO": "ハードウェア情報",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "画面の解像度",
|
||||
"VTMENU_SCREEN_MODE": "ディスプレイモード",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "テキストモード",
|
||||
"VTMENU_SCREEN_GUI_MODE": "グラフィックモード",
|
||||
|
||||
"VTMENU_THEME_SELECT": "テーマを選ぶ",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "プラグインの json 構成を確認する (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Global Control プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_THEME": "Theme プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Auto install プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Persistence プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Menu alias プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Menu tip プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Menu class プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Injection プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Auto memdisk プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Image list プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Image black list プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Boot conf replace プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_DUD": "DUD プラグインの構成を確認する",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Password プラグインの構成を確認する",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "通常モードで起動",
|
||||
"VTMENU_WIMBOOT_MODE": "wimboot モードで起動",
|
||||
"VTMENU_GRUB2_MODE": "grub2 モードで起動",
|
||||
"VTMENU_MEMDISK_MODE": "memdisk モードで起動",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "リストビューに戻る",
|
||||
"VTMENU_RET_TO_TREEVIEW": "ツリー ビューに戻る",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "自動インストール テンプレートを使用しない",
|
||||
"VTMENU_AUTOINS_USE": "使用する",
|
||||
|
||||
"VTMENU_NO_PERSIST": "データ永続性を使用しない",
|
||||
"VTMENU_PERSIST_USE": "使用する",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "戻る",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/ko_KR.json
Normal file
81
INSTALL/grub/menu/ko_KR.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Korean (한국어)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:언어 F1:도움말 F2:찾아보기 F3:목록 보기 F4:로컬 부트 F5:도구 F6:확장 메뉴",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:언어 F1:도움말 F2:찾아보기 F3:목록 보기 F4:로컬 부트 F5:도구 F6:확장 메뉴",
|
||||
"VTMENU_RETURN_PREVIOUS": "이전 메뉴로 돌아가기 [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "메뉴 언어 선택 (번역: 비너스걸)",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows 검색 및 부트",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos 검색 및 부트",
|
||||
"VTMENU_LB_SBOOT_HDD1": "첫 번째 로컬 디스크 부트",
|
||||
"VTMENU_LB_SBOOT_HDD2": "두 번째 로컬 디스크 부트",
|
||||
"VTMENU_LB_SBOOT_HDD3": "세 번째 로컬 디스크 부트",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI 검색 및 부트",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI 검색 및 부트",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI 검색 및 부트",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "xorboot 검색 및 부트",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "파일 체크섬",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "md5sum 계산",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum 계산",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum 계산",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum 계산",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum 계산 및 확인",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum 계산 및 확인",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum 계산 및 확인",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum 계산 및 확인",
|
||||
|
||||
"VTMENU_POWER": "전원",
|
||||
"VTMENU_POWER_REBOOT": "다시 부트",
|
||||
"VTMENU_POWER_HALT": "끄기",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "EFI 설정으로 재부트",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "키보드 레이아웃",
|
||||
"VTMENU_HWINFO": "하드웨어 정보",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "해상도 구성",
|
||||
"VTMENU_SCREEN_MODE": "화면 표시 모드",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "강제 텍스트 모드",
|
||||
"VTMENU_SCREEN_GUI_MODE": "강제 그래픽 모드",
|
||||
|
||||
"VTMENU_THEME_SELECT": "테마 선택",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI 드라이버 표시",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows 초기화 라이브러리 오류 복구",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "플러그인 json 구성 확인 (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "전역 제어 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_THEME": "테마 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "자동 설치 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_PERSIST": "지속성 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "메뉴 별칭 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "메뉴 팁 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "메뉴 클래스 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_INJECTION": "주입 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "자동 메모리 디스크 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "이미지 목록 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "이미지 블랙리스트 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "부팅 구성 대체 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_DUD": "드라이버 디스크 업데이트 플러그인 구성 확인",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "암호 플러그인 구성 확인",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "정상 모드로 부트",
|
||||
"VTMENU_WIMBOOT_MODE": "wimboot 모드로 부트",
|
||||
"VTMENU_GRUB2_MODE": "grub2 모드로 부팅",
|
||||
"VTMENU_MEMDISK_MODE": "memdisk 모드로 부트",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "목록 보기로 돌아가기",
|
||||
"VTMENU_RET_TO_TREEVIEW": "트리 보기로 돌아가기",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "자동 설치 템플릿 없이 부트",
|
||||
"VTMENU_AUTOINS_USE": "부팅 대상",
|
||||
|
||||
"VTMENU_NO_PERSIST": "지속성 없는 부트",
|
||||
"VTMENU_PERSIST_USE": "부트 대상",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "돌아가기",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/pt_PT.json
Normal file
81
INSTALL/grub/menu/pt_PT.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Portuguese (Português de Portugal)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Língua F1:Ajuda F2:Navegar F3:Exibição de lista F4:Inicialização local F5:Ferramentas F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Língua F1:Ajuda F2:Navegar F3:TreeView F4:Inicialização local F5:Ferramentas F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Seleção de idioma do menu",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Pesquise e inicialize o Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Pesquise e inicialize o Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Inicialize o 1º disco local",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Inicialize o segundo disco local",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Inicialize o terceiro disco local",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Pesquise e inicialize o BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Pesquise e inicialize o BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Pesquise e inicialize o BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Pesquise e inicialize o xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "Soma de verificação do arquivo",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calcular MD5",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calcular SHA1",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calcular SHA256",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calcular SHA512",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calcular e verificar MD5",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calcular e verificar SHA1",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calcular e verificar SHA256",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calcular e verificar SHA512",
|
||||
|
||||
"VTMENU_POWER": "Fonte de energia",
|
||||
"VTMENU_POWER_REBOOT": "Reinício",
|
||||
"VTMENU_POWER_HALT": "Desligar",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reinicie a configuração EFI",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Layouts de teclado",
|
||||
"VTMENU_HWINFO": "Informações de hardware",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Configuração de resolução",
|
||||
"VTMENU_SCREEN_MODE": "Screen Modo de exibição",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Modo de texto",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Modo gráfico",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Seleção de tema",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Inicializar no modo normal",
|
||||
"VTMENU_WIMBOOT_MODE": "Inicializar no modo wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Inicializar no modo grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Inicializar no modo memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Retornar para ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Retornar para TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Retornar",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/ru_RU.json
Normal file
81
INSTALL/grub/menu/ru_RU.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Russian (Русский)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Язык F1:Помощь F2:Просмотр F3:ListView F4:Локальная загрузка F5:Инструменты F6:Выйти из меню",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Язык F1:Помощь F2:Просмотр F3:TreeView F4:Локальная загрузка F5:Инструменты F6:Выйти из меню",
|
||||
"VTMENU_RETURN_PREVIOUS": "Вернуться в предыдущее меню [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Выбор языка меню",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Найти и загрузить Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Найти и загрузить Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Загрузить 1-й локальный диск",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Загрузить 2-й локальный диск",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Загрузить 3-й локальный диск",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Найти и загрузить OOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Найти и загрузить BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Найти и загрузить BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Найти и загрузить xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "Контрольная сумма файла",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Вычислить md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Вычислить sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Вычислить sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Вычислить sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Вычислить и проверить md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Вычислить и проверить sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Вычислить и проверить sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Вычислить и проверить sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Включить",
|
||||
"VTMENU_POWER_REBOOT": "Перезагрузить",
|
||||
"VTMENU_POWER_HALT": "Остановить",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Перезагрузиться в настройку EFI",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Раскладки клавиатуры",
|
||||
"VTMENU_HWINFO": "Информация об оборудовании",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Конфигурация разрешения",
|
||||
"VTMENU_SCREEN_MODE": "Режим Screen Display",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Выбрать текстовый режим",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Выбрать графический режим",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Выбор темы",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Показать драйверы EFI",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Исправить ошибку Windows BlinitializeLibrary",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Проверить конфигурацию плагина json (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Проверить конфигурацию плагина global control",
|
||||
"VTMENU_JSON_CHK_THEME": "Проверить конфигурацию плагина theme",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Проверить конфигурацию плагина auto install",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Проверить конфигурацию плагина persistence",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Проверить конфигурацию плагина menu alias",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Проверить конфигурацию плагина menu tip",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Проверить конфигурацию плагина menu class",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Проверить конфигурацию плагина injection",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Проверить конфигурацию плагина auto memdisk",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Проверить конфигурацию плагина image list",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Проверить конфигурацию плагина image blacklist",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Проверить конфигурацию плагина boot conf replace",
|
||||
"VTMENU_JSON_CHK_DUD": "Проверить конфигурацию плагина dud",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Проверить конфигурацию плагина password",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Загрузиться в обычном режиме",
|
||||
"VTMENU_WIMBOOT_MODE": "Загрузиться в режиме wimboot",
|
||||
"VTMENU_GRUB2_MODE": "Загрузиться в режиме grub2",
|
||||
"VTMENU_MEMDISK_MODE": "Загрузиться в режиме memdisk",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Вернуться к ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Вернуться к TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Загрузка без шаблона автоматической установки",
|
||||
"VTMENU_AUTOINS_USE": "Загрузиться с",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Загрузка без персистентности",
|
||||
"VTMENU_PERSIST_USE": "Загрузиться с",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Вернуться",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/sr_RS.json
Normal file
81
INSTALL/grub/menu/sr_RS.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Serbian Latin (Srpski)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Језик F1:Help F2:Browse F3:ListView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Језик F1:Help F2:Browse F3:TreeView F4:Localboot F5:Tools F6:ExMenu",
|
||||
"VTMENU_RETURN_PREVIOUS": "Return to previous menu [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menu Language Select",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Search and boot Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "Search and boot Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "Boot the 1st local disk",
|
||||
"VTMENU_LB_SBOOT_HDD2": "Boot the 2nd local disk",
|
||||
"VTMENU_LB_SBOOT_HDD3": "Boot the 3rd local disk",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "Search and boot BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "Search and boot BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "Search and boot BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "Search and boot xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "File checksum",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "Calculate md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "Calculate sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "Calculate sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "Calculate sha512sum",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "Calculate and check md5sum",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "Calculate and check sha1sum",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "Calculate and check sha256sum",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "Calculate and check sha512sum",
|
||||
|
||||
"VTMENU_POWER": "Power",
|
||||
"VTMENU_POWER_REBOOT": "Reboot",
|
||||
"VTMENU_POWER_HALT": "Halt",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "Reboot to EFI setup",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Keyboard Layouts",
|
||||
"VTMENU_HWINFO": "Hardware Information",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Resolution Configuration",
|
||||
"VTMENU_SCREEN_MODE": "Screen Display Mode",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Force Text Mode",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Force Graphics Mode",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Theme Select",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "Show EFI Drivers",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Fixup Windows BlinitializeLibrary Failure",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "Check plugin json configuration (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "Check global control plugin configuration",
|
||||
"VTMENU_JSON_CHK_THEME": "Check theme plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "Check auto install plugin configuration",
|
||||
"VTMENU_JSON_CHK_PERSIST": "Check persistence plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "Check menu alias plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "Check menu tip plugin configuration",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "Check menu class plugin configuration",
|
||||
"VTMENU_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "Check auto memdisk plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "Check image list plugin configuration",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "Check image blacklist plugin configuration",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "Check boot conf replace plugin configuration",
|
||||
"VTMENU_JSON_CHK_DUD": "Check dud plugin configuration",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "Check password plugin configuration",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "Boot in normal mode",
|
||||
"VTMENU_WIMBOOT_MODE": "Boot in wimboot mode",
|
||||
"VTMENU_GRUB2_MODE": "Boot in grub2 mode",
|
||||
"VTMENU_MEMDISK_MODE": "Boot in memdisk mode",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Return to ListView",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Return to TreeView",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Boot without auto installation template",
|
||||
"VTMENU_AUTOINS_USE": "Boot with",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Boot without persistence",
|
||||
"VTMENU_PERSIST_USE": "Boot with",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Return",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/tr_TR.json
Normal file
81
INSTALL/grub/menu/tr_TR.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Turkish (Türkçe)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:Dil F1:Yardım F2:Gözat F3:Liste Görünümü F4:Önyükleme Seçenekleri F5:Araçlar F6:Grub2 Menü",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:Dil F1:Yardım F2:Gözat F3:Ağaç Görünümü F4:Önyükleme Seçenekleri F5:Araçlar F6:Grub2 Menü",
|
||||
"VTMENU_RETURN_PREVIOUS": "Önceki menüye geri dön [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "Menü Dili Seçimi",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "Windows'u bul ve Önyükle",
|
||||
"VTMENU_LB_SBOOT_G4D": "Grub4dos'u bul ve Önyükle",
|
||||
"VTMENU_LB_SBOOT_HDD1": "1. Yerel diskten Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_HDD2": "2. Yerel diskten Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_HDD3": "3. Yerel diskten Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "BOOTX64.EFI'yi bul ve Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "BOOTIA32.EFI'yi bul ve Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "BOOTAA64.EFI'yi bul ve Önyükleme yap",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "XORBOOT'u bul ve Önyükleme yap",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "Dosya Doğrulama",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "md5sum değerini hesapla",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "sha1sum değerini hesapla",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "sha256sum değerini hesapla",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "sha512sum değerini hesapla",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "md5sum hesapla ve kontrol et",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "sha1sum hesapla ve kontrol et",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "sha256sum hesapla ve kontrol et",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "sha512sum hesapla ve kontrol et",
|
||||
|
||||
"VTMENU_POWER": "Güç Seçenekleri",
|
||||
"VTMENU_POWER_REBOOT": "Yeniden Başlat",
|
||||
"VTMENU_POWER_HALT": "Bilgisayarı Kapat",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "EFI BIOS Ayarları ile Yeniden Başlat",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "Klavye düzenleri",
|
||||
"VTMENU_HWINFO": "Donanım Bilgisi",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "Çözünürlük Yapılandırması",
|
||||
"VTMENU_SCREEN_MODE": "Ekran Görüntüleme Modu",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "Metin Modu'nu Dene",
|
||||
"VTMENU_SCREEN_GUI_MODE": "Grafik Modu'nu Dene",
|
||||
|
||||
"VTMENU_THEME_SELECT": "Tema Seçimi",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "EFI Sürücülerini Göster",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "Windows BlinitializeLibrary Hatasını Düzelt",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "json (ventoy.json) Yapılandırma Dosyası Ayarlarını kontrol et",
|
||||
"VTMENU_JSON_CHK_CONTROL": "(Global Control Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_THEME": "(Theme Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "(Auto Install Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_PERSIST": "(Persistence Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "(Menu Alias Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "(Menu Tip Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "(Menu Class Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_INJECTION": "(Injection Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "(Auto Memdisk Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "(Image List Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "(Image Blacklist Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "(Check Boot Conf Replace Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_DUD": "(Dud Plugin) yapılandırma ayarları",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "(Password Plugin) yapılandırma ayarları",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "NORMAL(ISO) Mod'da ÖnYükleme Yap",
|
||||
"VTMENU_WIMBOOT_MODE": "WIMBOOT(WIM) Mod'da Önyükleme Yap",
|
||||
"VTMENU_GRUB2_MODE": "GRUB2 Mod'da Önyükleme Yap",
|
||||
"VTMENU_MEMDISK_MODE": "MEMDISK Modunda ÖnYükleme Yap",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "Liste Görünümü Moduna Geri Dön",
|
||||
"VTMENU_RET_TO_TREEVIEW": "Ağaç Görünümü Moduna Geri Dön",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "Otomatik yükleme şablonu(autoinstalltemplate.xml) olmadan Önyükleme yap",
|
||||
"VTMENU_AUTOINS_USE": "ile Önyükleme Yap",
|
||||
|
||||
"VTMENU_NO_PERSIST": "Kalıcı ayar dosyası(persistence.dat) olmadan Önyükleme Yap",
|
||||
"VTMENU_PERSIST_USE": "ile Önyükleme Yap",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "Geri Dön",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
81
INSTALL/grub/menu/zh_CN.json
Normal file
81
INSTALL/grub/menu/zh_CN.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"VTMENU_LANGUAGE_NAME": "Chinese Simplified (简体中文)",
|
||||
|
||||
"VTMENU_STR_HOTKEY_LIST": "L:语言 F1:帮助 F2:本地浏览 F3:列表模式 F4:本地启动 F5:工具 F6:扩展菜单",
|
||||
"VTMENU_STR_HOTKEY_TREE": "L:语言 F1:帮助 F2:本地浏览 F3:树形模式 F4:本地启动 F5:工具 F6:扩展菜单",
|
||||
"VTMENU_RETURN_PREVIOUS": "返回上一级菜单 [Esc]",
|
||||
|
||||
"VTMENU_MENU_LANG": "菜单语言",
|
||||
|
||||
"VTMENU_LB_SBOOT_WINDOWS": "搜索并启动 Windows",
|
||||
"VTMENU_LB_SBOOT_G4D": "搜索并启动 Grub4dos",
|
||||
"VTMENU_LB_SBOOT_HDD1": "启动本地硬盘1中的系统",
|
||||
"VTMENU_LB_SBOOT_HDD2": "启动本地硬盘2中的系统",
|
||||
"VTMENU_LB_SBOOT_HDD3": "启动本地硬盘3中的系统",
|
||||
"VTMENU_LB_SBOOT_X64EFI": "搜索并启动 BOOTX64.EFI",
|
||||
"VTMENU_LB_SBOOT_IA32EFI": "搜索并启动 BOOTIA32.EFI",
|
||||
"VTMENU_LB_SBOOT_AA64EFI": "搜索并启动 BOOTAA64.EFI",
|
||||
"VTMENU_LB_SBOOT_XORBOOT": "搜索并启动 xorboot",
|
||||
|
||||
"VTMENU_FILE_CHKSUM": "文件校验",
|
||||
"VTMENU_CHKSUM_MD5_CALC": "计算 MD5 校验值",
|
||||
"VTMENU_CHKSUM_SHA1_CALC": "计算 SHA1 校验值",
|
||||
"VTMENU_CHKSUM_SHA256_CALC": "计算 SHA256 校验值",
|
||||
"VTMENU_CHKSUM_SHA512_CALC": "计算 SHA512 校验值",
|
||||
"VTMENU_CHKSUM_MD5_CALC_CHK": "计算并检查 MD5 校验值",
|
||||
"VTMENU_CHKSUM_SHA1_CALC_CHK": "计算并检查 SHA1 校验值",
|
||||
"VTMENU_CHKSUM_SHA256_CALC_CHK": "计算并检查 SHA256 校验值",
|
||||
"VTMENU_CHKSUM_SHA512_CALC_CHK": "计算并检查 SHA512 校验值",
|
||||
|
||||
"VTMENU_POWER": "电源",
|
||||
"VTMENU_POWER_REBOOT": "重启",
|
||||
"VTMENU_POWER_HALT": "关机",
|
||||
"VTMENU_POWER_BOOT_EFIFW": "重启进入 UEFI 设置菜单",
|
||||
|
||||
"VTMENU_KEYBRD_LAYOUT": "键盘布局",
|
||||
"VTMENU_HWINFO": "硬件信息",
|
||||
|
||||
"VTMENU_RESOLUTION_CFG": "屏幕分辨率",
|
||||
"VTMENU_SCREEN_MODE": "显示模式",
|
||||
"VTMENU_SCREEN_TEXT_MODE": "文本模式",
|
||||
"VTMENU_SCREEN_GUI_MODE": "图形模式",
|
||||
|
||||
"VTMENU_THEME_SELECT": "主题选择",
|
||||
|
||||
"VTMENU_UTIL_SHOW_EFI_DRV": "显示 UEFI 驱动",
|
||||
"VTMENU_UTIL_FIX_BLINIT_FAIL": "修复 Windows BlinitializeLibrary 错误",
|
||||
|
||||
"VTMENU_JSON_CHK_JSON": "检查插件配置文件 (ventoy.json)",
|
||||
"VTMENU_JSON_CHK_CONTROL": "配置检查 —— 全局控制插件",
|
||||
"VTMENU_JSON_CHK_THEME": "配置检查 —— 主题插件",
|
||||
"VTMENU_JSON_CHK_AUTOINS": "配置检查 —— 自动安装插件",
|
||||
"VTMENU_JSON_CHK_PERSIST": "配置检查 —— 持久化插件",
|
||||
"VTMENU_JSON_CHK_MENU_ALIAS": "配置检查 —— 菜单别名插件",
|
||||
"VTMENU_JSON_CHK_MENU_TIP": "配置检查 —— 菜单提示插件",
|
||||
"VTMENU_JSON_CHK_MENU_CLASS": "配置检查 —— 菜单类型插件",
|
||||
"VTMENU_JSON_CHK_INJECTION": "配置检查 —— 文件注入插件",
|
||||
"VTMENU_JSON_CHK_AUTO_MEMDISK": "配置检查 —— 自动内存盘模式插件",
|
||||
"VTMENU_JSON_CHK_IMG_LIST": "配置检查 —— 文件列表插件(白名单)",
|
||||
"VTMENU_JSON_CHK_IMG_BLIST": "配置检查 —— 文件列表插件(黑名单)",
|
||||
"VTMENU_JSON_CHK_CONF_REPLACE": "配置检查 —— 启动配置替换插件",
|
||||
"VTMENU_JSON_CHK_DUD": "配置检查 —— Driver Update Disk插件",
|
||||
"VTMENU_JSON_CHK_PASSWORD": "配置检查 —— 密码插件",
|
||||
|
||||
"VTMENU_NORMAL_MODE": "以正常模式启动",
|
||||
"VTMENU_WIMBOOT_MODE": "以 wimboot 模式启动",
|
||||
"VTMENU_GRUB2_MODE": "以 grub2 模式启动",
|
||||
"VTMENU_MEMDISK_MODE": "以内存盘模式启动",
|
||||
|
||||
"VTMENU_RET_TO_LISTVIEW": "返回到列表模式",
|
||||
"VTMENU_RET_TO_TREEVIEW": "返回到树形模式",
|
||||
|
||||
"VTMENU_NO_AUTOINS_SCRIPT": "不使用自动安装脚本",
|
||||
"VTMENU_AUTOINS_USE": "使用",
|
||||
|
||||
"VTMENU_NO_PERSIST": "不使用持久化数据文件",
|
||||
"VTMENU_PERSIST_USE": "使用",
|
||||
|
||||
"VTMENU_BROWER_RETURN": "返回",
|
||||
|
||||
"MENU_STR_XXX": ""
|
||||
}
|
1
INSTALL/grub/menulang.cfg
Normal file
1
INSTALL/grub/menulang.cfg
Normal file
@@ -0,0 +1 @@
|
||||
#ventoy_pack.sh will generate menuentry here
|
Binary file not shown.
@@ -1,25 +1,25 @@
|
||||
submenu "Power" --class=debug_power --class=F5tool {
|
||||
menuentry Reboot --class=debug_reboot --class=debug_power --class=F5tool {
|
||||
submenu "@VTMENU_POWER" --class=debug_power --class=F5tool {
|
||||
menuentry "@VTMENU_POWER_REBOOT" --class=debug_reboot --class=debug_power --class=F5tool {
|
||||
echo -e '\n\nSystem is rebooting ... \n'
|
||||
sleep 1
|
||||
reboot
|
||||
}
|
||||
|
||||
menuentry Halt --class=debug_halt --class=debug_power --class=F5tool {
|
||||
menuentry "@VTMENU_POWER_HALT" --class=debug_halt --class=debug_power --class=F5tool {
|
||||
echo -e '\n\nSystem is halting ... \n'
|
||||
sleep 1
|
||||
halt
|
||||
}
|
||||
|
||||
if [ "$grub_platform" != "pc" ]; then
|
||||
menuentry 'Reboot to EFI setup' --class=debug_efisetup --class=debug_power --class=F5tool {
|
||||
menuentry '@VTMENU_POWER_BOOT_EFIFW' --class=debug_efisetup --class=debug_power --class=F5tool {
|
||||
echo -e '\n\nRebooting to enter UEFI firmware setup ... \n'
|
||||
sleep 1
|
||||
fwsetup
|
||||
}
|
||||
fi
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
menuentry '@VTMENU_RETURN_PREVIOUS' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
}
|
||||
|
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.
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user