Compare commits

...

14 Commits

Author SHA1 Message Date
longpanda
dba7530b21 1.1.12
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-23 18:04:05 +08:00
longpanda
e9b4c86082 Fix Oracle Linux 6.9 install issue
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-23 00:23:21 +08:00
longpanda
dbcdf51950 Improve for UEFI boot Windows/WinPE resolution issue fix. 2026-04-23 00:00:05 +08:00
longpanda
de3e6c6d1d rollback dmsetup operation.
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-14 19:42:19 +08:00
longpanda
3c0df07b92 Improve for UEFI boot Windows/WinPE resolution issue fix.
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-14 15:38:06 +08:00
longpanda
c1c27cd30c Bugfix for ubuntu24.04.4 install failure. (#3567) 2026-04-14 11:03:02 +08:00
longpanda
167c87402c 1.1.11
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
. Fix the display issue when UEFI boot Windows/WinPE
. #3537
. #3532
. Add VT_WINDOWS_DISK_NONVTOY_CLOSEST_XXX  VT_LINUX_DISK_NONVTOY_CLOSEST_XXX
2026-04-05 23:11:45 +08:00
longpanda
d35b8431fe Update distro check
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-05 17:30:17 +08:00
Florian Fuchs
a1771bd9b8 Improve booting of T2SDE live ISOs (#3526)
T2SDE changed the boot process vastly with 26.3 as it ships as a live
image now. So the injection hooks need to be customized.
2026-04-05 16:49:01 +08:00
panchenbo
ed61a955bf add kylinsecos support (#3552)
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-04-02 18:09:08 +08:00
longpanda
e7cf29fd9d Add create_ventoy_iso_part_dm.sh (#3497)
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-02-01 13:54:16 +08:00
longpanda
b5d87d394a Update imdisk download link in BuildVentoyFromSource.txt
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-01-31 23:14:18 +08:00
longpanda
36da0e0f3d Add VT_WINDOWS_DISK_NONVTOY_CLOSEST_XXX
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
2026-01-23 10:47:49 +08:00
Florian Fuchs
903fd7aa01 Support booting T2SDE ISOs better (#3468)
Some checks failed
Ventoy CI / build (push) Has been cancelled
Mirror GitHub to Gitee / Sync-GitHub-to-Gitee (push) Has been cancelled
T2 uses zstd compressed kernel modules, where dm-mod also depends on
dax module. So the default fallback to only decompress dm-mod isn't
sufficient. So we manually uncompress dax.ko and dm-mod.ko and insmod
this, as default busybox modprobe/insmod doesn't support zstd modules.
2026-01-08 16:26:35 +08:00
58 changed files with 1296 additions and 702 deletions

View File

@@ -232,7 +232,7 @@
SHA-256: cde08b6a2cf5ad914f05203e18e3f7c2ed6060a63604e3d75536f19b55e8e0af SHA-256: cde08b6a2cf5ad914f05203e18e3f7c2ed6060a63604e3d75536f19b55e8e0af
5.8 imdisk 5.8 imdisk
download http://www.ltr-data.se/files/imdiskinst.exe and extract it by 7zip. download http://static.ltr-data.se/files/imdiskinst_2.0.10.exe and extract it by 7zip.
INSTALL/ventoy/imdisk/64/imdisk.sys --> sys/amd64/imdisk.sys SHA-256: 6702202220268787e361f5a82dae53362c8e6c6dcd240bb01b44dd77ae0788da INSTALL/ventoy/imdisk/64/imdisk.sys --> sys/amd64/imdisk.sys SHA-256: 6702202220268787e361f5a82dae53362c8e6c6dcd240bb01b44dd77ae0788da
INSTALL/ventoy/imdisk/64/imdisk.exe --> cli/amd64/imdisk.exe SHA-256: 9759175380af836869443e5f21ce2e33022125d154bc6b3d1c04dc36b190de04 INSTALL/ventoy/imdisk/64/imdisk.exe --> cli/amd64/imdisk.exe SHA-256: 9759175380af836869443e5f21ce2e33022125d154bc6b3d1c04dc36b190de04
@@ -274,3 +274,4 @@
5.14 ./LiveCD/ISO/EFI/boot/vmlinuz64 5.14 ./LiveCD/ISO/EFI/boot/vmlinuz64
download from http://www.tinycorelinux.net/11.x/x86_64/archive/11.0/distribution_files/vmlinuz64 download from http://www.tinycorelinux.net/11.x/x86_64/archive/11.0/distribution_files/vmlinuz64
vmlinuz64 SHA-256: 641077fc1f9914af244c248453005f56536ba9e7f54ba3e52402f26709ddb8a5 vmlinuz64 SHA-256: 641077fc1f9914af244c248453005f56536ba9e7f54ba3e52402f26709ddb8a5

View File

@@ -1263,6 +1263,11 @@ EFI_STATUS EFIAPI VentoyEfiMain
return Status; return Status;
} }
if (g_os_param_reserved[11])
{
ventoy_lock_res(g_os_param_reserved[11]);
}
ventoy_disable_ex_filesystem(); ventoy_disable_ex_filesystem();
if (gMemdiskMode) if (gMemdiskMode)
@@ -1341,6 +1346,11 @@ EFI_STATUS EFIAPI VentoyEfiMain
ventoy_enable_ex_filesystem(); ventoy_enable_ex_filesystem();
if (g_os_param_reserved[11])
{
ventoy_unlock_res();
}
return EFI_SUCCESS; return EFI_SUCCESS;
} }

View File

@@ -428,6 +428,8 @@ EFI_STATUS ventoy_hook_1st_cdrom_start(VOID);
EFI_STATUS ventoy_hook_1st_cdrom_stop(VOID); EFI_STATUS ventoy_hook_1st_cdrom_stop(VOID);
EFI_STATUS ventoy_disable_ex_filesystem(VOID); EFI_STATUS ventoy_disable_ex_filesystem(VOID);
EFI_STATUS ventoy_enable_ex_filesystem(VOID); EFI_STATUS ventoy_enable_ex_filesystem(VOID);
EFI_STATUS ventoy_lock_res(UINT8 LockType);
EFI_STATUS ventoy_unlock_res(VOID);
#endif #endif

View File

@@ -1797,3 +1797,176 @@ EFI_STATUS ventoy_hook_1st_cdrom_stop(VOID)
return EFI_SUCCESS; return EFI_SUCCESS;
} }
#if 0
/* For force highest resolution for Windows/WinPE */
#endif
STATIC UINT32 g_org_mode_num = 0;
STATIC EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE g_org_set_mode = NULL;
STATIC EFI_STATUS EFIAPI ventoy_set_mode
(
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
IN UINT32 ModeNumber
)
{
(void)This;
(void)ModeNumber;
/* Force highest resolution */
return EFI_SUCCESS;
}
STATIC EFI_STATUS EFIAPI ventoy_set_mode2
(
IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
IN UINT32 ModeNumber
)
{
UINTN Size;
EFI_STATUS rc;
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *info = NULL;
/* Force >= 1024x768 */
rc = This->QueryMode(This, ModeNumber, &Size, &info);
if (rc == EFI_SUCCESS)
{
if (info->HorizontalResolution < 1024 || info->VerticalResolution < 768)
{
return EFI_SUCCESS;
}
}
return g_org_set_mode(This, ModeNumber);
}
EFI_STATUS ventoy_lock_res(UINT8 LockType)
{
UINT32 i = 0;
UINT32 x = 0;
UINT32 y = 0;
UINT32 SelMode = 0;
UINT32 CurMode = 0;
UINT32 Highest = 0;
UINT32 M1024_768 = MAX_UINT32;
UINTN Size;
EFI_STATUS rc;
EFI_GRAPHICS_OUTPUT_PROTOCOL *gop = NULL;
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *info = NULL;
/* already hook */
if (g_org_set_mode)
{
return EFI_SUCCESS;
}
/* 1: Highest 2: 1024x768 3: >= 1024x768 */
if (LockType == 0 || LockType > 3)
{
return EFI_SUCCESS;
}
rc = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (void **)&gop);
if (rc != EFI_SUCCESS)
{
debug("Failed to locate GOP protocol");
return EFI_SUCCESS;
}
if (LockType == 3)
{
g_org_mode_num = MAX_UINT32;
g_org_set_mode = gop->SetMode;
gop->SetMode = ventoy_set_mode2;
return EFI_SUCCESS;
}
CurMode = gop->Mode->Mode;
for (i = 0 ; i < gop->Mode->MaxMode ; i++)
{
/* Get mode information */
if (gop->QueryMode(gop, i, &Size, &info) == EFI_SUCCESS)
{
if (info->HorizontalResolution == 1024 && info->VerticalResolution == 768)
{
M1024_768 = i;
}
if (x < info->HorizontalResolution ||
(x == info->HorizontalResolution && y < info->VerticalResolution))
{
Highest = i;
x = info->HorizontalResolution;
y = info->VerticalResolution;
}
}
}
if (LockType == 1)
{
SelMode = Highest;
}
else
{
if (M1024_768 == MAX_UINT32)
{
SelMode = Highest;
}
else
{
SelMode = M1024_768;
x = 1024;
y = 768;
}
}
if (SelMode != CurMode)
{
gop->SetMode(gop, SelMode);
}
debug("Lock resolution to Mode:%d %d x %d", SelMode, x, y);
g_org_mode_num = CurMode;
g_org_set_mode = gop->SetMode;
gop->SetMode = ventoy_set_mode;
return EFI_SUCCESS;
}
EFI_STATUS ventoy_unlock_res(VOID)
{
EFI_STATUS rc;
EFI_GRAPHICS_OUTPUT_PROTOCOL *gop = NULL;
/* not hooked yet */
if (!g_org_set_mode)
{
return EFI_SUCCESS;
}
rc = gBS->LocateProtocol(&gEfiGraphicsOutputProtocolGuid, NULL, (void **)&gop);
if (rc != EFI_SUCCESS)
{
debug("Failed to locate GOP protocol");
return EFI_SUCCESS;
}
if (g_org_mode_num != MAX_UINT32)
{
g_org_set_mode(gop, g_org_mode_num);
}
gop->SetMode = g_org_set_mode;
g_org_set_mode = NULL;
return EFI_SUCCESS;
}

View File

@@ -1134,6 +1134,7 @@ show_menu (grub_menu_t menu, int nested, int autobooted)
while (1) while (1)
{ {
int ndown; int ndown;
char *pos = NULL;
int boot_entry; int boot_entry;
grub_menu_entry_t e; grub_menu_entry_t e;
int auto_boot; int auto_boot;
@@ -1176,14 +1177,27 @@ show_menu (grub_menu_t menu, int nested, int autobooted)
if (2 == e->argc && e->args && e->args[1] && grub_strncmp(e->args[1], "VTOY_RUN_RET", 12) == 0) if (2 == e->argc && e->args && e->args[1] && grub_strncmp(e->args[1], "VTOY_RUN_RET", 12) == 0)
break; break;
else if (2 == e->argc && e->args && e->args[1] && grub_strncmp(e->args[1], "VTOY_RUN_SET", 12) == 0) { else if (2 == e->argc && e->args && e->args[1] && grub_strncmp(e->args[1], "VTOY_RUN_SET_", 13) == 0) {
ndown = (int)grub_strtol(e->args[1] + 12, NULL, 10); pos = NULL;
ndown = (int)grub_strtol(e->args[1] + 13, &pos, 10);
while (ndown > 0) while (ndown > 0)
{ {
ventoy_menu_push_key(GRUB_TERM_KEY_DOWN); ventoy_menu_push_key(GRUB_TERM_KEY_DOWN);
ndown--; ndown--;
} }
ventoy_menu_push_key('\n'); ventoy_menu_push_key('\n');
if (pos && *pos == '_')
{
ndown = (int)grub_strtol(pos + 1, NULL, 10);
while (ndown > 0)
{
ventoy_menu_push_key(GRUB_TERM_KEY_DOWN);
ndown--;
}
}
break; break;
} }
} }

View File

@@ -431,11 +431,12 @@ int ventoy_global_var_init(void)
static ctrl_var_cfg g_ctrl_vars[] = static ctrl_var_cfg g_ctrl_vars[] =
{ {
{ "VTOY_WIN11_BYPASS_CHECK", 1 }, { "VTOY_WIN11_BYPASS_CHECK", "1" },
{ "VTOY_WIN11_BYPASS_NRO", 1 }, { "VTOY_WIN11_BYPASS_NRO", "1" },
{ "VTOY_LINUX_REMOUNT", 0 }, { "VTOY_LINUX_REMOUNT", "0" },
{ "VTOY_SECONDARY_BOOT_MENU", 1 }, { "VTOY_SECONDARY_BOOT_MENU", "1" },
{ NULL, 0 } { "VTOY_WIN_UEFI_RES_LOCK", "3" },
{ NULL, "" }
}; };
static const char * ventoy_ctrl_var_read_hook(struct grub_env_var *var, const char *val) static const char * ventoy_ctrl_var_read_hook(struct grub_env_var *var, const char *val)
@@ -446,7 +447,7 @@ static const char * ventoy_ctrl_var_read_hook(struct grub_env_var *var, const ch
{ {
if (grub_strcmp(g_ctrl_vars[i].name, var->name) == 0) if (grub_strcmp(g_ctrl_vars[i].name, var->name) == 0)
{ {
return g_ctrl_vars[i].value ? "1" : "0"; return g_ctrl_vars[i].szval;
} }
} }
@@ -461,14 +462,14 @@ static char * ventoy_ctrl_var_write_hook(struct grub_env_var *var, const char *v
{ {
if (grub_strcmp(g_ctrl_vars[i].name, var->name) == 0) if (grub_strcmp(g_ctrl_vars[i].name, var->name) == 0)
{ {
if (val && val[0] == '1' && val[1] == 0) if (val && grub_isdigit(val[0]) && val[1] == 0)
{ {
g_ctrl_vars[i].value = 1; g_ctrl_vars[i].szval[0] = val[0];
return grub_strdup("1"); return grub_strdup(val);
} }
else else
{ {
g_ctrl_vars[i].value = 0; g_ctrl_vars[i].szval[0] = '0';
return grub_strdup("0"); return grub_strdup("0");
} }
} }
@@ -479,12 +480,13 @@ static char * ventoy_ctrl_var_write_hook(struct grub_env_var *var, const char *v
int ventoy_ctrl_var_init(void) int ventoy_ctrl_var_init(void)
{ {
int i; ctrl_var_cfg *cfg = g_ctrl_vars;
for (i = 0; g_ctrl_vars[i].name; i++) while (cfg->name)
{ {
ventoy_env_export(g_ctrl_vars[i].name, g_ctrl_vars[i].value ? "1" : "0"); ventoy_env_export(cfg->name, cfg->szval);
grub_register_variable_hook(g_ctrl_vars[i].name, ventoy_ctrl_var_read_hook, ventoy_ctrl_var_write_hook); grub_register_variable_hook(cfg->name, ventoy_ctrl_var_read_hook, ventoy_ctrl_var_write_hook);
cfg++;
} }
return 0; return 0;

View File

@@ -3245,6 +3245,25 @@ void ventoy_fill_os_param(grub_file_t file, ventoy_os_param *param)
param->vtoy_reserved[6] = file->vlnk; param->vtoy_reserved[6] = file->vlnk;
grub_memcpy(param->vtoy_reserved + 7, g_ventoy_part_info->MBR.BootCode + 0x1b8, 4); grub_memcpy(param->vtoy_reserved + 7, g_ventoy_part_info->MBR.BootCode + 0x1b8, 4);
/* Windows UEFI force resolution lock */
if (g_ventoy_chain_type == 1) /* Windows */
{
val = ventoy_get_env("VTOY_WIN_UEFI_RES_LOCK");
if (val && val[1] == 0)
{
if (val[0] == '1')
{
param->vtoy_reserved[11] = 1;
}
else if (val[0] == '2')
{
param->vtoy_reserved[11] = 2;
}
}
}
/* calculate checksum */ /* calculate checksum */
for (i = 0; i < sizeof(ventoy_os_param); i++) for (i = 0; i < sizeof(ventoy_os_param); i++)
{ {

View File

@@ -1296,7 +1296,7 @@ typedef struct global_var_cfg
typedef struct ctrl_var_cfg typedef struct ctrl_var_cfg
{ {
const char *name; const char *name;
int value; char szval[2];
}ctrl_var_cfg; }ctrl_var_cfg;
#define vtoy_check_goto_out(p) if (!p) goto out #define vtoy_check_goto_out(p) if (!p) goto out

View File

@@ -125,6 +125,7 @@ typedef struct ventoy_os_param
* vtoy_reserved[5]: vtoy_linux_remount * vtoy_reserved[5]: vtoy_linux_remount
* vtoy_reserved[6]: vtoy_vlnk * vtoy_reserved[6]: vtoy_vlnk
* vtoy_reserved[7~10]: vtoy_disk_sig[4] used for vlnk * vtoy_reserved[7~10]: vtoy_disk_sig[4] used for vlnk
* vtoy_reserved[11]: vtoy_win_uefi_max_res
* *
*/ */
grub_uint8_t vtoy_reserved[32]; // Internal use by ventoy grub_uint8_t vtoy_reserved[32]; // Internal use by ventoy

View File

@@ -33,11 +33,13 @@ echo "_vtRet1=$_vtRet1 _vtRet2=$_vtRet2 ..." >> $VTLOG
if [ $_vtRet1 -ne 0 -a $_vtRet2 -eq 0 ]; then if [ $_vtRet1 -ne 0 -a $_vtRet2 -eq 0 ]; then
vtFindFlag=0 vtFindFlag=0
$GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' | while read vtline; do $GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' > $VTOY_PATH/.porteus
while read vtline; do
echo "hooking $vtline ..." >> $VTLOG echo "hooking $vtline ..." >> $VTLOG
$SED "s#\`value from\`#$vtPath#g" -i $vtline $SED "s#\`value from\`#$vtPath#g" -i $vtline
vtFindFlag=1 vtFindFlag=1
done done < $VTOY_PATH/.porteus
rm -f $VTOY_PATH/.porteus
if [ $vtFindFlag -eq 0 ]; then if [ $vtFindFlag -eq 0 ]; then
if $GREP -q '`value from`' /linuxrc; then if $GREP -q '`value from`' /linuxrc; then

View File

@@ -58,6 +58,9 @@ ventoy_get_debian_distro() {
if $GREP -q 'Tails' /etc/os-release; then if $GREP -q 'Tails' /etc/os-release; then
echo 'tails'; return echo 'tails'; return
fi fi
if $GREP -q 'NAME="Kylin"' /etc/os-release; then
echo 'kylin'; return
fi
fi fi
if $GREP -q 'slax/' /proc/cmdline; then if $GREP -q 'slax/' /proc/cmdline; then

View File

@@ -72,6 +72,12 @@ ventoy_udev_disk_common_hook $* "noreplace"
$BUSYBOX_PATH/mount $VTOY_DM_PATH /mnt/ventoy $BUSYBOX_PATH/mount $VTOY_DM_PATH /mnt/ventoy
#fix Oracle Linux 6.9 install issue
if $GREP -q -i 'Oracle Linux' /mnt/ventoy/.discinfo; then
ln -s /mnt/ventoy /mnt/source
fi
# #
# We do a trick for rhel6 series here. # We do a trick for rhel6 series here.
# Use /dev/$vtCheatLoop and wapper it as a removable cdrom with bind mount. # Use /dev/$vtCheatLoop and wapper it as a removable cdrom with bind mount.

View File

@@ -25,7 +25,19 @@ fi
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
modprobe dm-mod vtlog "Loading dax and dm-mod module ..."
$BUSYBOX_PATH/modprobe dax > /dev/null 2>&1
$BUSYBOX_PATH/modprobe dm-mod > /dev/null 2>&1
if $GREP -q 'device-mapper' /proc/devices; then
vtlog "dm-mod module check success ..."
else
vtlog "Need to extract dax and dm-mod module ..."
$VTOY_PATH/tool/zstdcat /lib/modules/$(uname -r)/drivers/dax/dax.ko.zst > $VTOY_PATH/extract_dax.ko
$BUSYBOX_PATH/insmod $VTOY_PATH/extract_dax.ko
$VTOY_PATH/tool/zstdcat /lib/modules/$(uname -r)/drivers/md/dm-mod.ko.zst > $VTOY_PATH/extract_dm_mod.ko
$BUSYBOX_PATH/insmod $VTOY_PATH/extract_dm_mod.ko
fi
wait_for_usb_disk_ready wait_for_usb_disk_ready

View File

@@ -19,6 +19,8 @@
. $VTOY_PATH/hook/ventoy-os-lib.sh . $VTOY_PATH/hook/ventoy-os-lib.sh
$SED "/Searching/i $BUSYBOX_PATH/sh $VTOY_PATH/hook/t2/disk_hook.sh" -i /init
$SED "/disktype/i x=/dev/ventoy" -i /init
$SED "/getdevice *devicefile/i $BUSYBOX_PATH/sh $VTOY_PATH/hook/t2/disk_hook.sh" -i /init $SED "/getdevice *devicefile/i $BUSYBOX_PATH/sh $VTOY_PATH/hook/t2/disk_hook.sh" -i /init
$SED "/getdevice *devicefile/a devicefile=/dev/ventoy" -i /init $SED "/getdevice *devicefile/a devicefile=/dev/ventoy" -i /init

View File

@@ -67,8 +67,11 @@ set_ventoy_hook_finish() {
if [ -f /ventoy/ventoy_iso_part_dm_cmd ]; then if [ -f /ventoy/ventoy_iso_part_dm_cmd ]; then
echo "### create iso part raw dm" >> $VTLOG echo "### create iso part raw dm" >> $VTLOG
$CAT $VTOY_PATH/ventoy_raw_table >> $VTLOG
echo "### iso part dm cmd" >> $VTLOG
$CAT /ventoy/ventoy_iso_part_dm_cmd >> $VTLOG
$BUSYBOX_PATH/sh /ventoy/ventoy_iso_part_dm_cmd >>$VTLOG 2>&1 $BUSYBOX_PATH/sh /ventoy/ventoy_iso_part_dm_cmd >>$VTLOG 2>&1
$BUSYBOX_PATH/rm -f /ventoy/ventoy_iso_part_dm_cmd #$BUSYBOX_PATH/rm -f /ventoy/ventoy_iso_part_dm_cmd
fi fi
} }
@@ -160,10 +163,10 @@ ventoy_get_vblade_bin() {
} }
ventoy_find_bin_path() { ventoy_find_bin_path() {
#must use built-in dmsetup, so first try ventoy path. Otherwise ubuntu installer unhappy. #3567
if $BUSYBOX_PATH/which "$1" > /dev/null; then if $BUSYBOX_PATH/which "$1" > /dev/null; then
$BUSYBOX_PATH/which "$1"; return $BUSYBOX_PATH/which "$1"; return
fi fi
for vt_path in '/bin' '/sbin' '/usr/bin' '/usr/sbin' '/usr/local/bin' '/usr/local/sbin' '/root/bin'; do for vt_path in '/bin' '/sbin' '/usr/bin' '/usr/sbin' '/usr/local/bin' '/usr/local/sbin' '/root/bin'; do
if [ -e "$vt_path/$1" ]; then if [ -e "$vt_path/$1" ]; then
echo "$vt_path/$1"; return echo "$vt_path/$1"; return
@@ -266,7 +269,9 @@ create_ventoy_device_mapper() {
fi fi
RAWDISKNAME=$($HEAD -n1 $VTOY_PATH/ventoy_raw_table | $AWK '{print $4}') RAWDISKNAME=$($HEAD -n1 $VTOY_PATH/ventoy_raw_table | $AWK '{print $4}')
echo "$VT_DM_BIN create ${RAWDISKNAME#/dev/} $VTOY_PATH/ventoy_raw_table" > /ventoy/ventoy_iso_part_dm_cmd echo "$VT_DM_BIN create ${RAWDISKNAME#/dev/} $VTOY_PATH/ventoy_raw_table" > /ventoy/ventoy_iso_part_dm_cmd
#echo "$VT_DM_BIN mknodes ${RAWDISKNAME#/dev/}" >> /ventoy/ventoy_iso_part_dm_cmd
#echo "$VT_DM_BIN ls" >> /ventoy/ventoy_iso_part_dm_cmd
} }
create_persistent_device_mapper() { create_persistent_device_mapper() {

View File

@@ -169,7 +169,7 @@ ventoy_get_os_type() {
echo 'debian'; return echo 'debian'; return
elif $GREP -q 'Solus' /etc/os-release; then elif $GREP -q 'Solus' /etc/os-release; then
echo 'rhel7'; return echo 'rhel7'; return
elif $GREP -q 'openEuler' /etc/os-release; then elif $GREP -q -i 'openEuler' /etc/os-release; then
echo 'openEuler'; return echo 'openEuler'; return
elif $GREP -q 'fuyu' /etc/os-release; then elif $GREP -q 'fuyu' /etc/os-release; then
echo 'openEuler'; return echo 'openEuler'; return
@@ -179,6 +179,8 @@ ventoy_get_os_type() {
echo 'deepin'; return echo 'deepin'; return
elif $GREP -qi 'aerynos' /etc/os-release; then elif $GREP -qi 'aerynos' /etc/os-release; then
echo 'rhel7'; return echo 'rhel7'; return
elif $GREP -qi 'ID_LIKE=debian' /etc/os-release; then
echo 'debian'; return
fi fi
fi fi
@@ -314,8 +316,8 @@ ventoy_get_os_type() {
fi fi
if [ -e /init ]; then if [ -e /etc/initrd-release ]; then
if $GREP -q -m1 'T2 SDE' /init; then if $GREP -q -m1 't2sde' /etc/initrd-release; then
echo 't2'; return echo 't2'; return
fi fi
fi fi

View File

@@ -205,7 +205,7 @@ ventoy_get_os_type() {
echo 'debian'; return echo 'debian'; return
elif $GREP -q 'Solus' /etc/os-release; then elif $GREP -q 'Solus' /etc/os-release; then
echo 'rhel7'; return echo 'rhel7'; return
elif $GREP -q 'openEuler' /etc/os-release; then elif $GREP -q -i 'openEuler' /etc/os-release; then
echo 'openEuler'; return echo 'openEuler'; return
elif $GREP -q 'fuyu' /etc/os-release; then elif $GREP -q 'fuyu' /etc/os-release; then
echo 'openEuler'; return echo 'openEuler'; return
@@ -344,8 +344,8 @@ ventoy_get_os_type() {
fi fi
if [ -e /init ]; then if [ -e /etc/initrd-release ]; then
if $GREP -q -m1 'T2 SDE' /init; then if $GREP -q -m1 't2sde' /etc/initrd-release; then
echo 't2'; return echo 't2'; return
fi fi
fi fi

View File

@@ -11,7 +11,8 @@ Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
OPTION: (optional) OPTION: (optional)
-r SIZE_MB preserve some space at the bottom of the disk (only for install) -r SIZE_MB preserve some space at the bottom of the disk (only for install)
-s enable secure boot support (default is disabled) -s enable secure boot support (default is enabled)
-S disable secure boot support (default is enabled)
-g use GPT partition style, default is MBR style (only for install) -g use GPT partition style, default is MBR style (only for install)
Please refer https://www.ventoy.net/en/doc_start.html for details. Please refer https://www.ventoy.net/en/doc_start.html for details.

View File

@@ -66,6 +66,16 @@ if [ -f mkexfatfs_static ]; then
if ldd --version 2>&1 | grep -qi musl; then if ldd --version 2>&1 | grep -qi musl; then
mv mkexfatfs mkexfatfs_shared mv mkexfatfs mkexfatfs_shared
mv mkexfatfs_static mkexfatfs mv mkexfatfs_static mkexfatfs
else
if ./mkexfatfs -V > /dev/null 2>&1; then
echo "mkexfatfs can not run, check static version" >> ./log.txt
else
if ./mkexfatfs_static -V > /dev/null 2>&1; then
echo "Use static version of mkexfatfs" >> ./log.txt
mv mkexfatfs mkexfatfs_shared
mv mkexfatfs_static mkexfatfs
fi
fi
fi fi
fi fi

View File

@@ -4,7 +4,7 @@
# #
submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool { submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool {
menuentry "[ $VTOY_WIN11_BYPASS_CHECK ] $VTLANG_WIN11_BYPASS_CHECK" --class=debug_temp_win11_bypass --class=debug_temp_set --class=F5tool \ menuentry "[ $VTOY_WIN11_BYPASS_CHECK ] $VTLANG_WIN11_BYPASS_CHECK" --class=debug_temp_win11_bypass --class=debug_temp_set --class=F5tool \
VTOY_RUN_SET0 { VTOY_RUN_SET_0_0 {
if [ "$VTOY_WIN11_BYPASS_CHECK" = "0" ]; then if [ "$VTOY_WIN11_BYPASS_CHECK" = "0" ]; then
set VTOY_WIN11_BYPASS_CHECK=1 set VTOY_WIN11_BYPASS_CHECK=1
else else
@@ -13,7 +13,7 @@ submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool {
} }
menuentry "[ $VTOY_WIN11_BYPASS_NRO ] $VTLANG_WIN11_BYPASS_NRO" --class=debug_temp_win11_nro --class=debug_temp_set --class=F5tool \ menuentry "[ $VTOY_WIN11_BYPASS_NRO ] $VTLANG_WIN11_BYPASS_NRO" --class=debug_temp_win11_nro --class=debug_temp_set --class=F5tool \
VTOY_RUN_SET1 { VTOY_RUN_SET_1_0 {
if [ "$VTOY_WIN11_BYPASS_NRO" = "0" ]; then if [ "$VTOY_WIN11_BYPASS_NRO" = "0" ]; then
set VTOY_WIN11_BYPASS_NRO=1 set VTOY_WIN11_BYPASS_NRO=1
else else
@@ -22,7 +22,7 @@ submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool {
} }
menuentry "[ $VTOY_SECONDARY_BOOT_MENU ] $VTLANG_SECONDARY_BOOT_MENU" --class=debug_temp_second_menu --class=debug_temp_set --class=F5tool \ menuentry "[ $VTOY_SECONDARY_BOOT_MENU ] $VTLANG_SECONDARY_BOOT_MENU" --class=debug_temp_second_menu --class=debug_temp_set --class=F5tool \
VTOY_RUN_SET3 { VTOY_RUN_SET_2_0 {
if [ "$VTOY_SECONDARY_BOOT_MENU" = "0" ]; then if [ "$VTOY_SECONDARY_BOOT_MENU" = "0" ]; then
set VTOY_SECONDARY_BOOT_MENU=1 set VTOY_SECONDARY_BOOT_MENU=1
else else
@@ -36,6 +36,42 @@ submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool {
} }
if [ "$grub_platform" != "pc" ]; then
submenu "$VTLANG_WIN_UEFI_RES_LOCK" --class=debug_uefi_res_lock --class=F5tool {
set vtActive0="[ ]"
set vtActive1="[ ]"
set vtActive2="[ ]"
set vtActive3="[ ]"
if [ "$VTOY_WIN_UEFI_RES_LOCK" = "0" ]; then
set vtActive0="[*]"
elif [ "$VTOY_WIN_UEFI_RES_LOCK" = "1" ]; then
set vtActive1="[*]"
elif [ "$VTOY_WIN_UEFI_RES_LOCK" = "2" ]; then
set vtActive2="[*]"
elif [ "$VTOY_WIN_UEFI_RES_LOCK" = "3" ]; then
set vtActive3="[*]"
fi
menuentry "$vtActive0 $VTLANG_UEFI_RES_LOCK_NONE" --class=debug_uefi_res_lock0 --class=F5tool VTOY_RUN_SET_0_1 {
set VTOY_WIN_UEFI_RES_LOCK=0
}
menuentry "$vtActive1 $VTLANG_UEFI_RES_LOCK_MAX" --class=debug_uefi_res_lock1 --class=F5tool VTOY_RUN_SET_1_1 {
set VTOY_WIN_UEFI_RES_LOCK=1
}
menuentry "$vtActive2 $VTLANG_UEFI_RES_LOCK_1024_768" --class=debug_uefi_res_lock2 --class=F5tool VTOY_RUN_SET_2_1 {
set VTOY_WIN_UEFI_RES_LOCK=2
}
menuentry "$vtActive3 $VTLANG_UEFI_RES_LOCK_BE1024_768" --class=debug_uefi_res_lock3 --class=F5tool VTOY_RUN_SET_3_1 {
set VTOY_WIN_UEFI_RES_LOCK=3
}
menuentry "$VTLANG_RETURN_PREVIOUS" --class=vtoyret VTOY_RET {
echo "Return ..."
}
}
fi
submenu "$VTLANG_MENU_LANG" --class=debug_menu_lang --class=F5tool { submenu "$VTLANG_MENU_LANG" --class=debug_menu_lang --class=F5tool {
source $prefix/menulang.cfg source $prefix/menulang.cfg
} }

View File

@@ -2449,7 +2449,7 @@ function mimg_common_menuentry {
############################################################# #############################################################
############################################################# #############################################################
set VENTOY_VERSION="1.1.10" set VENTOY_VERSION="1.1.12"
#ACPI not compatible with Window7/8, so disable by default #ACPI not compatible with Window7/8, so disable by default
set VTOY_PARAM_NO_ACPI=1 set VTOY_PARAM_NO_ACPI=1

View File

@@ -88,6 +88,11 @@
"VTLANG_WIN11_BYPASS_NRO": "تجاوز متطلبات الحساب عبر الإنترنت عند تثبيت Windows 11", "VTLANG_WIN11_BYPASS_NRO": "تجاوز متطلبات الحساب عبر الإنترنت عند تثبيت Windows 11",
"VTLANG_LINUX_REMOUNT": "ضم قسم Ventoy بعد إقلاع Linux", "VTLANG_LINUX_REMOUNT": "ضم قسم Ventoy بعد إقلاع Linux",
"VTLANG_SECONDARY_BOOT_MENU": "اظهر قائمة الإقلاع الثانوية", "VTLANG_SECONDARY_BOOT_MENU": "اظهر قائمة الإقلاع الثانوية",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Windows 11 ইনস্টল করার সময় অনলাইন অ্যাকাউন্টের প্রয়োজন বাইপাস করুন", "VTLANG_WIN11_BYPASS_NRO": "Windows 11 ইনস্টল করার সময় অনলাইন অ্যাকাউন্টের প্রয়োজন বাইপাস করুন",
"VTLANG_LINUX_REMOUNT": "লিনাক্স বুটের পরে ভেন্টয় পার্টিশনটি মাউন্ট করুন", "VTLANG_LINUX_REMOUNT": "লিনাক্স বুটের পরে ভেন্টয় পার্টিশনটি মাউন্ট করুন",
"VTLANG_SECONDARY_BOOT_MENU": "গৌণ বুট মেনু দেখান", "VTLANG_SECONDARY_BOOT_MENU": "গৌণ বুট মেনু দেখান",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Obejít požadování online účtu při instalaci Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Obejít požadování online účtu při instalaci Windows 11",
"VTLANG_LINUX_REMOUNT": "Připojit Ventoy oddíl po spuštění Linuxu", "VTLANG_LINUX_REMOUNT": "Připojit Ventoy oddíl po spuštění Linuxu",
"VTLANG_SECONDARY_BOOT_MENU": "Zobrazit druhou spouštěcí nabídku", "VTLANG_SECONDARY_BOOT_MENU": "Zobrazit druhou spouštěcí nabídku",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Umgehen Sie die Online-Kontoanforderung bei der Installation von Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Umgehen Sie die Online-Kontoanforderung bei der Installation von Windows 11",
"VTLANG_LINUX_REMOUNT": "Mounten Sie die Ventoy-Partition nach dem Booten von Linux", "VTLANG_LINUX_REMOUNT": "Mounten Sie die Ventoy-Partition nach dem Booten von Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Sekundäres Bootmenü anzeigen", "VTLANG_SECONDARY_BOOT_MENU": "Sekundäres Bootmenü anzeigen",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Παράκαμψη της απαίτησης online λογαριασμού κατά την εγκατάσταση των Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Παράκαμψη της απαίτησης online λογαριασμού κατά την εγκατάσταση των Windows 11",
"VTLANG_LINUX_REMOUNT": "Προσάρτηση διαμερίσματος Ventoy μετά την εκκίνηση του Linux", "VTLANG_LINUX_REMOUNT": "Προσάρτηση διαμερίσματος Ventoy μετά την εκκίνηση του Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Εμφάνιση δευτερεύοντος μενού εκκίνησης", "VTLANG_SECONDARY_BOOT_MENU": "Εμφάνιση δευτερεύοντος μενού εκκίνησης",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,11 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Saltar requerimiento de cuenta en linea al instalar Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Saltar requerimiento de cuenta en linea al instalar Windows 11",
"VTLANG_LINUX_REMOUNT": "Montar partición de Ventoy después de arrancar Linux", "VTLANG_LINUX_REMOUNT": "Montar partición de Ventoy después de arrancar Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Mostrar menú de arranque secundario", "VTLANG_SECONDARY_BOOT_MENU": "Mostrar menú de arranque secundario",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "دور زدن نیاز به حساب کاربری آنلاین هنگام نصب ویندوز 11", "VTLANG_WIN11_BYPASS_NRO": "دور زدن نیاز به حساب کاربری آنلاین هنگام نصب ویندوز 11",
"VTLANG_LINUX_REMOUNT": "اتصال پارتیشن Ventoy بعد از بوت لینوکس", "VTLANG_LINUX_REMOUNT": "اتصال پارتیشن Ventoy بعد از بوت لینوکس",
"VTLANG_SECONDARY_BOOT_MENU": "نمایش منوی بوت ثانویه", "VTLANG_SECONDARY_BOOT_MENU": "نمایش منوی بوت ثانویه",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Contourner l'exigence de compte en ligne lors de l'installation de Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Contourner l'exigence de compte en ligne lors de l'installation de Windows 11",
"VTLANG_LINUX_REMOUNT": "Monter la partition Ventoy après le démarrage de Linux", "VTLANG_LINUX_REMOUNT": "Monter la partition Ventoy après le démarrage de Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Afficher le menu de démarrage secondaire", "VTLANG_SECONDARY_BOOT_MENU": "Afficher le menu de démarrage secondaire",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "विंडोज 11 स्थापित करते समय ऑनलाइन खाते की आवश्यकता बाईपास", "VTLANG_WIN11_BYPASS_NRO": "विंडोज 11 स्थापित करते समय ऑनलाइन खाते की आवश्यकता बाईपास",
"VTLANG_LINUX_REMOUNT": "लिनक्स बूट के बाद वेंटॉय विभाजन को माउंट करें", "VTLANG_LINUX_REMOUNT": "लिनक्स बूट के बाद वेंटॉय विभाजन को माउंट करें",
"VTLANG_SECONDARY_BOOT_MENU": "द्वितीयक बूट मेनू दिखाएं", "VTLANG_SECONDARY_BOOT_MENU": "द्वितीयक बूट मेनू दिखाएं",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Internetes fiók követelményének megkerülése Windows 11 telepítésekor", "VTLANG_WIN11_BYPASS_NRO": "Internetes fiók követelményének megkerülése Windows 11 telepítésekor",
"VTLANG_LINUX_REMOUNT": "Ventoy partíció csatolása a Linux indítása után", "VTLANG_LINUX_REMOUNT": "Ventoy partíció csatolása a Linux indítása után",
"VTLANG_SECONDARY_BOOT_MENU": "Másodlagos indítási menü megjelenítése", "VTLANG_SECONDARY_BOOT_MENU": "Másodlagos indítási menü megjelenítése",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Melewati persyaratan akun online ketika memasang Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Melewati persyaratan akun online ketika memasang Windows 11",
"VTLANG_LINUX_REMOUNT": "Memuat partisi Ventoy setelah boot ke Linux", "VTLANG_LINUX_REMOUNT": "Memuat partisi Ventoy setelah boot ke Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Tampilkan menu boot sekunder", "VTLANG_SECONDARY_BOOT_MENU": "Tampilkan menu boot sekunder",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Durante l'installazione di Windows 11 bypassa il requisito di un account online ", "VTLANG_WIN11_BYPASS_NRO": "Durante l'installazione di Windows 11 bypassa il requisito di un account online ",
"VTLANG_LINUX_REMOUNT": "Dopo l'avvio di Linux monta la partizione Ventoy ", "VTLANG_LINUX_REMOUNT": "Dopo l'avvio di Linux monta la partizione Ventoy ",
"VTLANG_SECONDARY_BOOT_MENU": "Visualizza menu di avvio secondario", "VTLANG_SECONDARY_BOOT_MENU": "Visualizza menu di avvio secondario",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Windows 11 설치 시 온라인 계정 요구 사항 무시", "VTLANG_WIN11_BYPASS_NRO": "Windows 11 설치 시 온라인 계정 요구 사항 무시",
"VTLANG_LINUX_REMOUNT": "Linux 부팅 후 Ventoy 파티션 마운트", "VTLANG_LINUX_REMOUNT": "Linux 부팅 후 Ventoy 파티션 마운트",
"VTLANG_SECONDARY_BOOT_MENU": "보조 부팅 메뉴 표시", "VTLANG_SECONDARY_BOOT_MENU": "보조 부팅 메뉴 표시",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Pominięcie wymogu posiadania konta online podczas instalacji systemu Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Pominięcie wymogu posiadania konta online podczas instalacji systemu Windows 11",
"VTLANG_LINUX_REMOUNT": "Zamontuj partycję Ventoy po starcie Linuksa", "VTLANG_LINUX_REMOUNT": "Zamontuj partycję Ventoy po starcie Linuksa",
"VTLANG_SECONDARY_BOOT_MENU": "Pokaż dodatkowe menu startowe", "VTLANG_SECONDARY_BOOT_MENU": "Pokaż dodatkowe menu startowe",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Ignorar o requerimento de conta online quanto instalar o Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Ignorar o requerimento de conta online quanto instalar o Windows 11",
"VTLANG_LINUX_REMOUNT": "Montar a partição do Ventoy após iniciar o Linux", "VTLANG_LINUX_REMOUNT": "Montar a partição do Ventoy após iniciar o Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Mostrar o menu secundário da inicialização", "VTLANG_SECONDARY_BOOT_MENU": "Mostrar o menu secundário da inicialização",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Ignorar requerimento de conta online quanto instalando Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Ignorar requerimento de conta online quanto instalando Windows 11",
"VTLANG_LINUX_REMOUNT": "Montar partição Ventoy após boot do Linux", "VTLANG_LINUX_REMOUNT": "Montar partição Ventoy após boot do Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Mostar menu seundário de boot", "VTLANG_SECONDARY_BOOT_MENU": "Mostar menu seundário de boot",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Обойти требование сетевой учётной записи при установке Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Обойти требование сетевой учётной записи при установке Windows 11",
"VTLANG_LINUX_REMOUNT": "Смонтировать раздел Ventoy после загрузки Linux", "VTLANG_LINUX_REMOUNT": "Смонтировать раздел Ventoy после загрузки Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Показать вторичное загрузочное меню", "VTLANG_SECONDARY_BOOT_MENU": "Показать вторичное загрузочное меню",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Obid zahteve po spletnem računu pri namestitvi sistema Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Obid zahteve po spletnem računu pri namestitvi sistema Windows 11",
"VTLANG_LINUX_REMOUNT": "Priklopi Ventoy particijo po zagonu Linuxa", "VTLANG_LINUX_REMOUNT": "Priklopi Ventoy particijo po zagonu Linuxa",
"VTLANG_SECONDARY_BOOT_MENU": "Prikaz sekundarnega zagonskega menija", "VTLANG_SECONDARY_BOOT_MENU": "Prikaz sekundarnega zagonskega menija",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux", "VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu", "VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "விண்டோஸ் 11 ஐ நிறுவும் போது ஆன்லைன் கணக்கின் தேவையை புறக்கணிக்கவும்", "VTLANG_WIN11_BYPASS_NRO": "விண்டோஸ் 11 ஐ நிறுவும் போது ஆன்லைன் கணக்கின் தேவையை புறக்கணிக்கவும்",
"VTLANG_LINUX_REMOUNT": "லினக்ஸை துவக்கிய பிறகு Ventoy பகிர்வை ஏற்றவும்", "VTLANG_LINUX_REMOUNT": "லினக்ஸை துவக்கிய பிறகு Ventoy பகிர்வை ஏற்றவும்",
"VTLANG_SECONDARY_BOOT_MENU": "இரண்டாம் நிலை துவக்க பட்டியலைக் காட்டு", "VTLANG_SECONDARY_BOOT_MENU": "இரண்டாம் நிலை துவக்க பட்டியலைக் காட்டு",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Windows11'i yüklerken, çevrimiçi hesap gereksinimini(OOBE) atla", "VTLANG_WIN11_BYPASS_NRO": "Windows11'i yüklerken, çevrimiçi hesap gereksinimini(OOBE) atla",
"VTLANG_LINUX_REMOUNT": "Linux sistemi önyükledikten sonra, Ventoy bölümünü bağla", "VTLANG_LINUX_REMOUNT": "Linux sistemi önyükledikten sonra, Ventoy bölümünü bağla",
"VTLANG_SECONDARY_BOOT_MENU": "İkincil önyükleme menüsünü göster", "VTLANG_SECONDARY_BOOT_MENU": "İkincil önyükleme menüsünü göster",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Обійти вимогу онлайн-аккаунту під час інсталяції Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Обійти вимогу онлайн-аккаунту під час інсталяції Windows 11",
"VTLANG_LINUX_REMOUNT": "Монтувати розділ Ventoy після завантаження Linux", "VTLANG_LINUX_REMOUNT": "Монтувати розділ Ventoy після завантаження Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Показувати вторинне меню завантаження", "VTLANG_SECONDARY_BOOT_MENU": "Показувати вторинне меню завантаження",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,12 @@
"VTLANG_WIN11_BYPASS_NRO": "Bỏ qua yêu cầu tài khoản trực tuyến khi cài đặt Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Bỏ qua yêu cầu tài khoản trực tuyến khi cài đặt Windows 11",
"VTLANG_LINUX_REMOUNT": "Gắn phân vùng Ventoy sau khi khởi động GNU/Linux", "VTLANG_LINUX_REMOUNT": "Gắn phân vùng Ventoy sau khi khởi động GNU/Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Hiện menu khởi động thứ cấp`", "VTLANG_SECONDARY_BOOT_MENU": "Hiện menu khởi động thứ cấp`",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,11 @@
"VTLANG_WIN11_BYPASS_NRO": "安装 Windows 11 时绕过在线账户的要求", "VTLANG_WIN11_BYPASS_NRO": "安装 Windows 11 时绕过在线账户的要求",
"VTLANG_LINUX_REMOUNT": "启动 Linux 系统后挂载 Ventoy 分区", "VTLANG_LINUX_REMOUNT": "启动 Linux 系统后挂载 Ventoy 分区",
"VTLANG_SECONDARY_BOOT_MENU": "显示二级启动菜单", "VTLANG_SECONDARY_BOOT_MENU": "显示二级启动菜单",
"VTLANG_WIN_UEFI_RES_LOCK": "UEFI启动 Windows/WinPE 时锁定分辨率",
"VTLANG_UEFI_RES_LOCK_NONE": "不锁定",
"VTLANG_UEFI_RES_LOCK_MAX": "锁定最高分辨率",
"VTLANG_UEFI_RES_LOCK_1024_768": "锁定 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "锁定 1024 x 768 及以上",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -88,6 +88,11 @@
"VTLANG_WIN11_BYPASS_NRO": "安裝 Windows 11 時繞過登入帳戶的需求", "VTLANG_WIN11_BYPASS_NRO": "安裝 Windows 11 時繞過登入帳戶的需求",
"VTLANG_LINUX_REMOUNT": "啟動 Linux 系統後掛載 Ventoy 分區", "VTLANG_LINUX_REMOUNT": "啟動 Linux 系統後掛載 Ventoy 分區",
"VTLANG_SECONDARY_BOOT_MENU": "顯示次要啟動選單", "VTLANG_SECONDARY_BOOT_MENU": "顯示次要啟動選單",
"VTLANG_WIN_UEFI_RES_LOCK": "Lock the resolution when UEFI boot Windows/WinPE",
"VTLANG_UEFI_RES_LOCK_NONE": "None",
"VTLANG_UEFI_RES_LOCK_MAX": "Highest",
"VTLANG_UEFI_RES_LOCK_1024_768": "Fixed 1024 x 768",
"VTLANG_UEFI_RES_LOCK_BE1024_768": "At least 1024 x 768",
"MENU_STR_XXX": "" "MENU_STR_XXX": ""
} }

View File

@@ -0,0 +1,38 @@
#!/bin/sh
if [ "$(id -u)" -ne 0 ]; then
echo "Please run with sudo ..."
exit 1
fi
oldpwd=$(pwd)
VPART=""
if dmsetup -h > /dev/null 2>&1; then
VPART_MAJOR_MINOR=$(dmsetup table ventoy | head -n 1 | awk '{print $4}')
cd /sys/class/block/
for t in *; do
if grep -q "^${VPART_MAJOR_MINOR}$" $t/dev; then
VPART=$t
echo 0 $(cat /sys/class/block/$VPART/size) linear /dev/$VPART 0 | dmsetup create $VPART
dmsetup mknodes "$VPART" > /dev/null 2>&1
break
fi
done
cd $oldpwd
if [ -z "$VPART" ]; then
echo "$VPART_MAJOR_MINOR not found"
dmsetup ls; dmsetup info ventoy; dmsetup table ventoy
exit 1
else
if [ ! -b "/dev/mapper/$VPART" ]; then
udevadm trigger --type=devices --action=add > /dev/null 2>&1
udevadm settle > /dev/null 2>&1
fi
echo "Create /dev/mapper/$VPART success"
fi
else
echo "dmsetup program not avaliable"
exit 1
fi

View File

@@ -341,6 +341,7 @@ EOF
udevadm trigger --name-match=$DISK >/dev/null 2>&1 udevadm trigger --name-match=$DISK >/dev/null 2>&1
partprobe >/dev/null 2>&1 partprobe >/dev/null 2>&1
partx -u $DISK >/dev/null 2>&1
sleep 3 sleep 3
echo "Done" echo "Done"
@@ -458,6 +459,7 @@ format_ventoy_disk_gpt() {
udevadm trigger --name-match=$DISK >/dev/null 2>&1 udevadm trigger --name-match=$DISK >/dev/null 2>&1
partprobe >/dev/null 2>&1 partprobe >/dev/null 2>&1
partx -u $DISK >/dev/null 2>&1
sleep 3 sleep 3
echo "Done" echo "Done"

Binary file not shown.

Binary file not shown.

View File

@@ -126,6 +126,7 @@ mkdir -p $tmpmnt/tool
dd status=none bs=1024 count=16 if=./tool/i386/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_i386 dd status=none bs=1024 count=16 if=./tool/i386/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_i386
dd status=none bs=1024 count=16 if=./tool/x86_64/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_x86_64 dd status=none bs=1024 count=16 if=./tool/x86_64/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_x86_64
dd status=none bs=1024 count=16 if=./tool/aarch64/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_aarch64 dd status=none bs=1024 count=16 if=./tool/aarch64/vtoycli of=$tmpmnt/tool/mount.exfat-fuse_aarch64
cp -a ./tool/create_ventoy_iso_part_dm.sh $tmpmnt/tool/
rm -f $tmpmnt/grub/i386-pc/*.img rm -f $tmpmnt/grub/i386-pc/*.img

View File

@@ -446,6 +446,51 @@ static int expand_var(const char *var, char *value, int len)
vlog("[Error] %s not found\n", var); vlog("[Error] %s not found\n", var);
} }
} }
else if (strncmp(var, "VT_LINUX_DISK_NONVTOY_CLOSEST_", 30) == 0)
{
uiDst = strtoul(var + 30, NULL, 10);
uiDst = uiDst * (1024ULL * 1024ULL * 1024ULL);
for (i = 0; i < g_disk_num; i++)
{
node = g_disk_list + i;
if (node->size == 0)
{
continue;
}
if (strcmp(node->name, g_vtoy_disk_name) == 0)
{
continue;
}
if (node->size > uiDst)
{
delta = node->size - uiDst;
}
else
{
delta = uiDst - node->size;
}
if (delta < maxdelta)
{
index = i;
maxdelta = delta;
}
}
if (index >= 0)
{
vlog("%s=<%s>\n", var, g_disk_list[index].name);
snprintf(value, len, "%s", g_disk_list[index].name);
return 0;
}
else
{
vlog("[Error] %s not found\n", var);
}
}
else else
{ {
vlog("Invalid var name <%s>\n", var); vlog("Invalid var name <%s>\n", var);

View File

@@ -1642,6 +1642,37 @@ static int ExpandSingleVar(VarDiskInfo *pDiskInfo, int DiskNum, const char *var,
Log("%s=<PhyDrive%d>", var, index); Log("%s=<PhyDrive%d>", var, index);
sprintf_s(value, len, "%d", index); sprintf_s(value, len, "%d", index);
} }
else if (strncmp(var, "VT_WINDOWS_DISK_NONVTOY_CLOSEST_", 32) == 0)
{
uiDst = strtoul(var + 32, NULL, 10);
uiDst = uiDst * (1024ULL * 1024ULL * 1024ULL);
for (i = 0; i < DiskNum; i++)
{
if (pDiskInfo[i].Capacity == 0 || i == g_vtoy_disk_drive)
{
continue;
}
if (pDiskInfo[i].Capacity > uiDst)
{
uiDelta = pDiskInfo[i].Capacity - uiDst;
}
else
{
uiDelta = uiDst - pDiskInfo[i].Capacity;
}
if (uiDelta < uiMaxDelta)
{
uiMaxDelta = uiDelta;
index = i;
}
}
Log("%s=<PhyDrive%d>", var, index);
sprintf_s(value, len, "%d", index);
}
else else
{ {
Log("Invalid var name <%s>", var); Log("Invalid var name <%s>", var);