VentoyPlugson Update

- Add missing option (VTOY_WIN_UEFI_RES_LOCK)
 - Add new option (VTOY_SECURE_BOOT_POLICY)
 - Remove deprecated option (VTOY_LINUX_REMOUNT)
This commit is contained in:
longpanda
2026-06-24 16:43:10 +08:00
parent 0f59e92a01
commit 536545cd39
8 changed files with 814 additions and 786 deletions

View File

@@ -559,6 +559,8 @@ void ventoy_data_default_control(data_control *data)
data->secondary_menu_timeout = 0; data->secondary_menu_timeout = 0;
data->win11_bypass_check = 1; data->win11_bypass_check = 1;
data->win11_bypass_nro = 1; data->win11_bypass_nro = 1;
data->uefi_res_lock = 3;
data->uefi_sb_policy = 0;
strlcpy(data->default_kbd_layout, "QWERTY_USA"); strlcpy(data->default_kbd_layout, "QWERTY_USA");
strlcpy(data->menu_language, "en_US"); strlcpy(data->menu_language, "en_US");
@@ -584,6 +586,8 @@ int ventoy_data_cmp_control(data_control *data1, data_control *data2)
data1->password_asterisk != data2->password_asterisk || data1->password_asterisk != data2->password_asterisk ||
data1->secondary_menu != data2->secondary_menu || data1->secondary_menu != data2->secondary_menu ||
data1->menu_timeout != data2->menu_timeout || data1->menu_timeout != data2->menu_timeout ||
data1->uefi_res_lock != data2->uefi_res_lock ||
data1->uefi_sb_policy != data2->uefi_sb_policy ||
data1->secondary_menu_timeout != data2->secondary_menu_timeout) data1->secondary_menu_timeout != data2->secondary_menu_timeout)
{ {
return 1; return 1;
@@ -633,6 +637,8 @@ int ventoy_data_save_control(data_control *data, const char *title, char *buf, i
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_BOOT_MENU", secondary_menu); VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_BOOT_MENU", secondary_menu);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SHOW_PASSWORD_ASTERISK", password_asterisk); VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SHOW_PASSWORD_ASTERISK", password_asterisk);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_MENU_TIMEOUT", menu_timeout); VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_MENU_TIMEOUT", menu_timeout);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_WIN_UEFI_RES_LOCK", uefi_res_lock);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECURE_BOOT_POLICY", uefi_sb_policy);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_TIMEOUT", secondary_menu_timeout); VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_TIMEOUT", secondary_menu_timeout);
VTOY_JSON_FMT_CTRL_STRN(L2, "VTOY_DEFAULT_KBD_LAYOUT", default_kbd_layout); VTOY_JSON_FMT_CTRL_STRN(L2, "VTOY_DEFAULT_KBD_LAYOUT", default_kbd_layout);
@@ -682,6 +688,8 @@ int ventoy_data_json_control(data_control *ctrl, char *buf, int buflen)
VTOY_JSON_FMT_SINT("secondary_menu", ctrl->secondary_menu); VTOY_JSON_FMT_SINT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_FMT_SINT("password_asterisk", ctrl->password_asterisk); VTOY_JSON_FMT_SINT("password_asterisk", ctrl->password_asterisk);
VTOY_JSON_FMT_SINT("menu_timeout", ctrl->menu_timeout); VTOY_JSON_FMT_SINT("menu_timeout", ctrl->menu_timeout);
VTOY_JSON_FMT_SINT("uefi_res_lock", ctrl->uefi_res_lock);
VTOY_JSON_FMT_SINT("uefi_sb_policy", ctrl->uefi_sb_policy);
VTOY_JSON_FMT_SINT("secondary_menu_timeout", ctrl->secondary_menu_timeout); VTOY_JSON_FMT_SINT("secondary_menu_timeout", ctrl->secondary_menu_timeout);
VTOY_JSON_FMT_STRN("default_kbd_layout", ctrl->default_kbd_layout); VTOY_JSON_FMT_STRN("default_kbd_layout", ctrl->default_kbd_layout);
VTOY_JSON_FMT_STRN("menu_language", ctrl->menu_language); VTOY_JSON_FMT_STRN("menu_language", ctrl->menu_language);
@@ -751,6 +759,8 @@ static int ventoy_api_save_control(struct mg_connection *conn, VTOY_JSON *json)
VTOY_JSON_INT("secondary_menu", ctrl->secondary_menu); VTOY_JSON_INT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_INT("password_asterisk", ctrl->password_asterisk); VTOY_JSON_INT("password_asterisk", ctrl->password_asterisk);
VTOY_JSON_INT("menu_timeout", ctrl->menu_timeout); VTOY_JSON_INT("menu_timeout", ctrl->menu_timeout);
VTOY_JSON_INT("uefi_res_lock", ctrl->uefi_res_lock);
VTOY_JSON_INT("uefi_sb_policy", ctrl->uefi_sb_policy);
VTOY_JSON_INT("secondary_menu_timeout", ctrl->secondary_menu_timeout); VTOY_JSON_INT("secondary_menu_timeout", ctrl->secondary_menu_timeout);
VTOY_JSON_STR("default_image", ctrl->default_image); VTOY_JSON_STR("default_image", ctrl->default_image);
@@ -4164,6 +4174,14 @@ static int ventoy_parse_control(VTOY_JSON *json, void *p)
{ {
CONTROL_PARSE_INT_DEF_0(child, data->sort_casesensitive); CONTROL_PARSE_INT_DEF_0(child, data->sort_casesensitive);
} }
else if (strcmp(child->pcName, "VTOY_WIN_UEFI_RES_LOCK") == 0)
{
CONTROL_PARSE_INT_DEF_3(child, data->uefi_res_lock);
}
else if (strcmp(child->pcName, "VTOY_SECURE_BOOT_POLICY") == 0)
{
CONTROL_PARSE_INT_DEF_0(child, data->uefi_sb_policy);
}
else if (strcmp(child->pcName, "VTOY_MAX_SEARCH_LEVEL") == 0) else if (strcmp(child->pcName, "VTOY_MAX_SEARCH_LEVEL") == 0)
{ {
if (strcmp(child->unData.pcStrVal, "max") == 0) if (strcmp(child->unData.pcStrVal, "max") == 0)

View File

@@ -81,6 +81,8 @@ typedef struct data_control
int linux_remount; int linux_remount;
int secondary_menu; int secondary_menu;
int password_asterisk; int password_asterisk;
int uefi_res_lock;
int uefi_sb_policy;
char default_search_root[MAX_PATH]; char default_search_root[MAX_PATH];
char default_image[MAX_PATH]; char default_image[MAX_PATH];
char default_kbd_layout[32]; char default_kbd_layout[32];
@@ -411,6 +413,9 @@ else\
#define CONTROL_PARSE_INT_DEF_1(node, val) \ #define CONTROL_PARSE_INT_DEF_1(node, val) \
if (node->unData.pcStrVal[0] == '0') val = 0 if (node->unData.pcStrVal[0] == '0') val = 0
#define CONTROL_PARSE_INT_DEF_3(node, val) \
if (node->unData.pcStrVal[0] == '3') val = 3
#define VTOY_JSON_INT(key, val) vtoy_json_get_int(json, key, &val) #define VTOY_JSON_INT(key, val) vtoy_json_get_int(json, key, &val)
#define VTOY_JSON_STR(key, buf) vtoy_json_get_string(json, key, sizeof(buf), buf) #define VTOY_JSON_STR(key, buf) vtoy_json_get_string(json, key, sizeof(buf), buf)
#define VTOY_JSON_STR_EX(key) vtoy_json_get_string_ex(json, key) #define VTOY_JSON_STR_EX(key) vtoy_json_get_string_ex(json, key)

View File

@@ -1 +1 @@
20231014 18:52:12 20260624 16:39:09

View File

@@ -1 +1 @@
ar_ARbn_BNcs_CZde_DEel_GRen_USes_ESfr_FRhi_HIhr_HRhu_HUid_IDit_ITja_JPka_GEko_KRpl_PLpt_BRpt_PTru_RUsr_RSta_INtr_TRuk_UAzh_CNzh_TW ar_ARbn_BNcs_CZde_DEel_GRen_USes_ESfa_IRfr_FRhi_HIhr_HRhu_HUid_IDit_ITja_JPka_GEko_KRlg_UGpl_PLpt_BRpt_PTru_RUsl_SIsr_RSta_INtr_TRuk_UAvi_VNzh_CNzh_TW

View File

@@ -39,6 +39,9 @@
.treeview-menu a { .treeview-menu a {
margin-left: 20px; margin-left: 20px;
} }
.label-rt {
margin-left: 20px !important;
}
</style> </style>
</head> </head>
@@ -757,7 +760,7 @@
<footer class="main-footer"> <footer class="main-footer">
<div class="pull-right hidden-xs"> <div class="pull-right hidden-xs">
<b id="plugson_build_date">20231014 18:52:12</b> <b id="plugson_build_date">20260624 16:39:09</b>
</div> </div>
<strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong> <strong><a href="https://www.ventoy.net" target="_blank">https://www.ventoy.net</a></strong>
</footer> </footer>
@@ -777,10 +780,10 @@
<script src="/static/js/jQuery-2.1.4.min.js"></script> <script src="/static/js/jQuery-2.1.4.min.js"></script>
<!-- jquery validate --> <!-- jquery validate -->
<script src="/static/js/jquery.validate.min.js"></script> <script src="/static/js/jquery.validate.min.js"></script>
<script src="/static/js/jquery.validate.vtoymethods.js?v=253"></script> <script src="/static/js/jquery.validate.vtoymethods.js?v=317"></script>
<script src="/static/js/jquery.vtoy.alert.js?v=253"></script> <script src="/static/js/jquery.vtoy.alert.js?v=317"></script>
<script src="/static/js/vtoy.js?v=253"></script> <script src="/static/js/vtoy.js?v=317"></script>
<script src="/static/js/md5.min.js"></script> <script src="/static/js/md5.min.js"></script>
<!-- Bootstrap 3.3.5 --> <!-- Bootstrap 3.3.5 -->

View File

@@ -1 +1 @@
ar_ARbn_BNcs_CZde_DEel_GRen_USes_ESfr_FRhi_HIhr_HRhu_HUid_IDit_ITja_JPka_GEko_KRpl_PLpt_BRpt_PTru_RUsl_sisr_RSta_INtr_TRuk_UAzh_CNzh_TW ar_ARbn_BNcs_CZde_DEel_GRen_USes_ESfa_IRfr_FRhi_HIhr_HRhu_HUid_IDit_ITja_JPka_GEko_KRlg_UGpl_PLpt_BRpt_PTru_RUsl_SIsr_RSta_INtr_TRuk_UAvi_VNzh_CNzh_TW

View File

@@ -119,6 +119,79 @@
</div><!-- /.box --> </div><!-- /.box -->
<div class="box box-primary box-solid">
<div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SECURE_BOOT_POLICY
<span id="id_span_desc_cn"> —— UEFI 安全启动策略</span></h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div><!-- /.box-tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<table class="table table-bordered no-padding">
<tr style="font-weight:bold;">
<td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td>
<label class="radio-inline">
<input type="radio" id="id_ctrl_uefi_sb_policy_radio0" name="id_ctrl_uefi_sb_policy_radio" data-type="0" value="0"/>
<span id="id_span_desc_cn">绕过安全启动检查</span>
<span id="id_span_desc_en">ByPass Secure Boot</span>
</label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_uefi_sb_policy_radio1" name="id_ctrl_uefi_sb_policy_radio" data-type="1" value="1"/>
<span id="id_span_desc_cn">遵循UEFI安全启动检查规则</span>
<span id="id_span_desc_en">Follow UEFI Secure Boot Check</span>
</label>
</td>
</tr>
</table>
</div><!-- /.box-body -->
</div><!-- /.box -->
<div class="box box-primary box-solid">
<div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN_UEFI_RES_LOCK
<span id="id_span_desc_cn"> —— UEFI 分辨率锁定</span></h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div><!-- /.box-tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<table class="table table-bordered no-padding">
<tr style="font-weight:bold;">
<td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td>
<label class="radio-inline">
<input type="radio" id="id_ctrl_uefi_res_lock_radio0" name="id_ctrl_uefi_res_lock_radio" data-type="0" value="0"/>
<span id="id_span_desc_cn">不锁定</span>
<span id="id_span_desc_en">None</span>
</label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_uefi_res_lock_radio1" name="id_ctrl_uefi_res_lock_radio" data-type="1" value="1"/>
<span id="id_span_desc_cn">锁定最高分辨率</span>
<span id="id_span_desc_en">Highest</span>
</label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_uefi_res_lock_radio2" name="id_ctrl_uefi_res_lock_radio" data-type="1" value="2"/>
<span id="id_span_desc_cn">锁定 1024x768</span>
<span id="id_span_desc_en">Fixed 1024x768</span>
</label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_uefi_res_lock_radio3" name="id_ctrl_uefi_res_lock_radio" data-type="1" value="3"/>
<span id="id_span_desc_cn">锁定 1024x768及以上</span>
<span id="id_span_desc_en">At least 1024x768</span>
</label>
</td>
</tr>
</table>
</div><!-- /.box-body -->
</div><!-- /.box -->
<div class="box box-primary box-solid"> <div class="box box-primary box-solid">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN11_BYPASS_CHECK <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN11_BYPASS_CHECK
@@ -133,18 +206,20 @@
<td class="td_ctrl_col" id="td_title_setting">选项设置</td> <td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td> <td>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" id="id_ctrl_bypass_win11_radio0" name="id_ctrl_bypass_win11_radio" data-type="0" value="0"/> <span style="font-weight:bold;">0</span> <input type="radio" id="id_ctrl_bypass_win11_radio0" name="id_ctrl_bypass_win11_radio" data-type="0" value="0"/>
</label>&nbsp;&nbsp;&nbsp;&nbsp; <span id="id_span_desc_cn">不绕过Windows 11安装时的硬件检查</span>
<label class="radio-inline"> <span id="id_span_desc_en">Do not bypass Windows 11 hardware check</span>
<input type="radio" id="id_ctrl_bypass_win11_radio1" name="id_ctrl_bypass_win11_radio" data-type="1" value="1"/> <span style="font-weight:bold;">1</span> </label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_bypass_win11_radio1" name="id_ctrl_bypass_win11_radio" data-type="1" value="1"/>
<span id="id_span_desc_cn">绕过Windows 11安装时的硬件检查</span>
<span id="id_span_desc_en">Bypass Windows 11 hardware check</span>
</label> </label>
</td> </td>
</tr> </tr>
<tr id="tr_title_desc_cn"> <tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td> <td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td> <td>
<code style="font-weight: bold;">0</code> 不绕过Windows 11安装时的硬件检查。<br/>
<code style="font-weight: bold;">1</code> 绕过Windows 11安装时的硬件检查。<br/><br/>
该选项只对标准Windows 11 ISO文件有效对于其他镜像文件无效。 该选项只对标准Windows 11 ISO文件有效对于其他镜像文件无效。
当设置为1时Ventoy 会在安装时创建以下几个注册表项用来绕过 Windows 11 安装程序的硬件检查。<br/> 当设置为1时Ventoy 会在安装时创建以下几个注册表项用来绕过 Windows 11 安装程序的硬件检查。<br/>
<code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck</code><br/> <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck</code><br/>
@@ -156,8 +231,6 @@
<tr id="tr_title_desc_en"> <tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td> <td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td> <td>
<code style="font-weight: bold;">0</code> Do not bypass Windows 11 hardware check.<br/>
<code style="font-weight: bold;">1</code> Bypass Windows 11 hardware check. <br/><br/>
This option only avaliable for standard Windows 11 ISO files. This option only avaliable for standard Windows 11 ISO files.
When set to 1, Ventoy will create the following registries to bypass Windows 11 hardware check when install. <br/> When set to 1, Ventoy will create the following registries to bypass Windows 11 hardware check when install. <br/>
<code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck</code><br/> <code>HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck</code><br/>
@@ -187,18 +260,20 @@
<td class="td_ctrl_col" id="td_title_setting">选项设置</td> <td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td> <td>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" id="id_ctrl_bypass_nro_radio0" name="id_ctrl_bypass_nro_radio" data-type="0" value="0"/> <span style="font-weight:bold;">0</span> <input type="radio" id="id_ctrl_bypass_nro_radio0" name="id_ctrl_bypass_nro_radio" data-type="0" value="0"/>
</label>&nbsp;&nbsp;&nbsp;&nbsp; <span id="id_span_desc_cn">不绕过Windows 11安装时的在线账户需求</span>
<label class="radio-inline"> <span id="id_span_desc_en">Do not bypass Windows 11 online account requirement</span>
<input type="radio" id="id_ctrl_bypass_nro_radio1" name="id_ctrl_bypass_nro_radio" data-type="1" value="1"/> <span style="font-weight:bold;">1</span> </label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_bypass_nro_radio1" name="id_ctrl_bypass_nro_radio" data-type="1" value="1"/>
<span id="id_span_desc_cn">绕过Windows 11安装时的在线账户需求</span>
<span id="id_span_desc_en">Bypass Windows 11 online account requirement</span>
</label> </label>
</td> </td>
</tr> </tr>
<tr id="tr_title_desc_cn"> <tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td> <td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td> <td>
<code style="font-weight: bold;">0</code> 不绕过Windows 11安装时的在线账户需求。<br/>
<code style="font-weight: bold;">1</code> 绕过Windows 11安装时的在线账户需求。<br/><br/>
该选项只对标准Windows 11 ISO文件有效对于其他镜像文件无效。 该选项只对标准Windows 11 ISO文件有效对于其他镜像文件无效。
当设置为1时Ventoy 会在安装时创建以下注册表项用来绕过 Windows 11 安装时对在线账户的需求。<br/> 当设置为1时Ventoy 会在安装时创建以下注册表项用来绕过 Windows 11 安装时对在线账户的需求。<br/>
<code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code><br/> <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code><br/>
@@ -207,8 +282,6 @@
<tr id="tr_title_desc_en"> <tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td> <td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td> <td>
<code style="font-weight: bold;">0</code> Do not bypass Windows 11 online account requirement.<br/>
<code style="font-weight: bold;">1</code> Bypass Windows 11 online account requirement. <br/><br/>
This option only avaliable for standard Windows 11 ISO files. This option only avaliable for standard Windows 11 ISO files.
When set to 1, Ventoy will create the following registry to bypass Windows 11 online account requirement when install. <br/> When set to 1, Ventoy will create the following registry to bypass Windows 11 online account requirement when install. <br/>
<code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code> <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code>
@@ -237,25 +310,15 @@
<td class="td_ctrl_col" id="td_title_setting">选项设置</td> <td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td> <td>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" id="id_ctrl_radio_menu_mode0" name="id_ctrl_radio_menu_mode" data-type="0" value="0"> <span style="font-weight:bold;">0</span> <input type="radio" id="id_ctrl_radio_menu_mode0" name="id_ctrl_radio_menu_mode" data-type="0" value="0">
</label>&nbsp;&nbsp;&nbsp;&nbsp; <span id="id_span_desc_cn">文件列表模式</span>
<label class="radio-inline"> <span id="id_span_desc_en">ListView Mode</span>
<input type="radio" id="id_ctrl_radio_menu_mode1" name="id_ctrl_radio_menu_mode" data-type="1" value="1"> <span style="font-weight:bold;">1</span> </label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_radio_menu_mode1" name="id_ctrl_radio_menu_mode" data-type="1" value="1">
<span id="id_span_desc_cn">目录树模式</span>
<span id="id_span_desc_en">TreeView Mode</span>
</label> </label>
</td>
</tr>
<tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td>启动菜单默认显示模式,
<code style="font-weight: bold;">0</code> 列表模式 &nbsp;&nbsp;
<code style="font-weight: bold;">1</code> TreeView目录树 模式</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col">Option Description</td>
<td>
Default boot menu display mode.
<code style="font-weight: bold;">0</code> ListView Mode &nbsp;&nbsp
<code style="font-weight: bold;">1</code> TreeView Mode
</td> </td>
</tr> </tr>
</table> </table>
@@ -426,57 +489,6 @@
<div class="box box-primary box-solid">
<div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_LINUX_REMOUNT
<span id="id_span_desc_cn"> —— Linux 启动后继续访问ISO文件所在分区</span></h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div><!-- /.box-tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<table class="table table-bordered no-padding">
<tr style="font-weight:bold;">
<td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td>
<label class="radio-inline">
<input type="radio" id="id_ctrl_linux_remount_radio0" name="id_ctrl_linux_remount_radio" data-type="0" value="0"/> <span style="font-weight:bold;">0</span>
</label>&nbsp;&nbsp;&nbsp;&nbsp;
<label class="radio-inline">
<input type="radio" id="id_ctrl_linux_remount_radio1" name="id_ctrl_linux_remount_radio" data-type="1" value="1"/> <span style="font-weight:bold;">1</span>
</label>
</td>
</tr>
<tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td>
<code style="font-weight: bold;">0</code> Linux启动后不需要继续访问ISO文件所在的分区。<br/>
<code style="font-weight: bold;">1</code> Linux启动后需要继续访问ISO文件所在的分区。<br/><br/>
该选项只对 Linux 系统镜像有效。<br/>
默认情况下受Linux内核相关功能的限制对于Linux系统在启动后无法继续访问ISO文件所在的分区。在mount的时候会提示 device busy。<br/>
如果这里选择 1则 Ventoy 会尝试通过一些特殊的手段绕过内核的这个限制,但是这个功能是实验性质的,没有经过大规模和长时间的验证。
</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td>
<code style="font-weight: bold;">0</code> I don't need to access the image partition after boot.<br/>
<code style="font-weight: bold;">1</code> I need to access the image partition after boot. <br/><br/>
This option is only avaliable for Linux distro image files. <br/>
By default, the image partition where the ISO files locate can not be accessed after boot. When you try to mount it you will get device busy error.
This is due to linux kernel restriction (device-mapper module).<br/>
If you select 1 here, Ventoy will try to bypass the restriction with some special mechanism.<br/>
But it should be noted that, this is an experimental feature and is not fully tested.
</td>
</tr>
</table>
</div><!-- /.box-body -->
</div><!-- /.box -->
<div class="box box-primary box-solid"> <div class="box box-primary box-solid">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SECONDARY_BOOT_MENU <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_SECONDARY_BOOT_MENU
@@ -491,26 +503,15 @@
<td class="td_ctrl_col" id="td_title_setting">选项设置</td> <td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td> <td>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" id="id_ctrl_secondary_radio0" name="id_ctrl_secondary_radio" data-type="0" value="0"> <span style="font-weight:bold;">0</span> <input type="radio" id="id_ctrl_secondary_radio0" name="id_ctrl_secondary_radio" data-type="0" value="0">
</label>&nbsp;&nbsp;&nbsp;&nbsp; <span id="id_span_desc_cn">不显示二级启动菜单</span>
<label class="radio-inline"> <span id="id_span_desc_en">Don't show secondary boot menu</span>
<input type="radio" id="id_ctrl_secondary_radio1" name="id_ctrl_secondary_radio" data-type="1" value="1"> <span style="font-weight:bold;">1</span> </label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_secondary_radio1" name="id_ctrl_secondary_radio" data-type="1" value="1">
<span id="id_span_desc_cn">显示二级启动菜单</span>
<span id="id_span_desc_en">Show show secondary boot menu</span>
</label> </label>
</td>
</tr>
<tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td>二级启动菜单控制开关
<code style="font-weight: bold;">0</code> 不显示 &nbsp;&nbsp;
<code style="font-weight: bold;">1</code> 显示
</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td>
Secondary boot menu display option
<code style="font-weight: bold;">0</code> Don't display &nbsp;&nbsp;&nbsp;
<code style="font-weight: bold;">1</code> Display
</td> </td>
</tr> </tr>
</table> </table>
@@ -532,26 +533,15 @@
<td class="td_ctrl_col" id="td_title_setting">选项设置</td> <td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td> <td>
<label class="radio-inline"> <label class="radio-inline">
<input type="radio" id="id_ctrl_asterisk_radio0" name="id_ctrl_asterisk_radio" data-type="0" value="0"> <span style="font-weight:bold;">0</span> <input type="radio" id="id_ctrl_asterisk_radio0" name="id_ctrl_asterisk_radio" data-type="0" value="0">
</label>&nbsp;&nbsp;&nbsp;&nbsp; <span id="id_span_desc_cn">隐藏</span>
<label class="radio-inline"> <span id="id_span_desc_en">Hide</span>
<input type="radio" id="id_ctrl_asterisk_radio1" name="id_ctrl_asterisk_radio" data-type="1" value="1"> <span style="font-weight:bold;">1</span> </label>
<label class="radio-inline label-rt">
<input type="radio" id="id_ctrl_asterisk_radio1" name="id_ctrl_asterisk_radio" data-type="1" value="1">
<span id="id_span_desc_cn">显示</span>
<span id="id_span_desc_en">Show</span>
</label> </label>
</td>
</tr>
<tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td>输入密码时是否显示星号
<code style="font-weight: bold;">0</code> 不显示 &nbsp;&nbsp;
<code style="font-weight: bold;">1</code> 显示
</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td>
Display asterisk when typing password
<code style="font-weight: bold;">0</code> Don't display &nbsp;&nbsp;&nbsp;
<code style="font-weight: bold;">1</code> Display
</td> </td>
</tr> </tr>
</table> </table>
@@ -1107,8 +1097,10 @@
data.win11_bypass_check = parseInt($('input:radio[name=id_ctrl_bypass_win11_radio]:checked').val()); data.win11_bypass_check = parseInt($('input:radio[name=id_ctrl_bypass_win11_radio]:checked').val());
data.win11_bypass_nro = parseInt($('input:radio[name=id_ctrl_bypass_nro_radio]:checked').val()); data.win11_bypass_nro = parseInt($('input:radio[name=id_ctrl_bypass_nro_radio]:checked').val());
data.linux_remount = parseInt($('input:radio[name=id_ctrl_linux_remount_radio]:checked').val()); data.linux_remount = 0;
data.secondary_menu = parseInt($('input:radio[name=id_ctrl_secondary_radio]:checked').val()); data.secondary_menu = parseInt($('input:radio[name=id_ctrl_secondary_radio]:checked').val());
data.uefi_res_lock = parseInt($('input:radio[name=id_ctrl_uefi_res_lock_radio]:checked').val());
data.uefi_sb_policy = parseInt($('input:radio[name=id_ctrl_uefi_sb_policy_radio]:checked').val());
data.password_asterisk = parseInt($('input:radio[name=id_ctrl_asterisk_radio]:checked').val()); data.password_asterisk = parseInt($('input:radio[name=id_ctrl_asterisk_radio]:checked').val());
data.default_search_root = $('input:text[id=id_ctrl_text_search_root]').val(); data.default_search_root = $('input:text[id=id_ctrl_text_search_root]').val();
data.menu_timeout = parseInt($('input:text[id=id_ctrl_text_timeout]').val()); data.menu_timeout = parseInt($('input:text[id=id_ctrl_text_timeout]').val());
@@ -1145,8 +1137,9 @@
$('input:radio[name=id_ctrl_bypass_win11_radio]')[data.win11_bypass_check].checked = true; $('input:radio[name=id_ctrl_bypass_win11_radio]')[data.win11_bypass_check].checked = true;
//VTOY_WIN11_BYPASS_NRO //VTOY_WIN11_BYPASS_NRO
$('input:radio[name=id_ctrl_bypass_nro_radio]')[data.win11_bypass_nro].checked = true; $('input:radio[name=id_ctrl_bypass_nro_radio]')[data.win11_bypass_nro].checked = true;
$('input:radio[name=id_ctrl_linux_remount_radio]')[data.linux_remount].checked = true;
$('input:radio[name=id_ctrl_secondary_radio]')[data.secondary_menu].checked = true; $('input:radio[name=id_ctrl_secondary_radio]')[data.secondary_menu].checked = true;
$('input:radio[name=id_ctrl_uefi_res_lock_radio]')[data.uefi_res_lock].checked = true;
$('input:radio[name=id_ctrl_uefi_sb_policy_radio]')[data.uefi_sb_policy].checked = true;
$('input:radio[name=id_ctrl_asterisk_radio]')[data.password_asterisk].checked = true; $('input:radio[name=id_ctrl_asterisk_radio]')[data.password_asterisk].checked = true;
//VTOY_DEFAULT_SEARCH_ROOT //VTOY_DEFAULT_SEARCH_ROOT
@@ -1253,6 +1246,8 @@
win11_bypass_check: data.win11_bypass_check, win11_bypass_check: data.win11_bypass_check,
win11_bypass_nro: data.win11_bypass_nro, win11_bypass_nro: data.win11_bypass_nro,
linux_remount:data.linux_remount, linux_remount:data.linux_remount,
uefi_res_lock:data.uefi_res_lock,
uefi_sb_policy:data.uefi_sb_policy,
secondary_menu:data.secondary_menu, secondary_menu:data.secondary_menu,
password_asterisk:data.password_asterisk, password_asterisk:data.password_asterisk,
default_search_root: data.default_search_root, default_search_root: data.default_search_root,

View File

@@ -934,6 +934,9 @@ function VtoyCommonChangeLanguage(newlang) {
$("span[id=id_span_desc_cn]").each(function(){ $("span[id=id_span_desc_cn]").each(function(){
$(this).hide(); $(this).hide();
}); });
$("span[id=id_span_desc_en]").each(function(){
$(this).show();
});
} else { } else {
g_vtoy_cur_language = g_vtoy_cur_language_cn; g_vtoy_cur_language = g_vtoy_cur_language_cn;
@@ -982,6 +985,10 @@ function VtoyCommonChangeLanguage(newlang) {
$("span[id=id_span_desc_cn]").each(function(){ $("span[id=id_span_desc_cn]").each(function(){
$(this).show(); $(this).show();
}); });
$("span[id=id_span_desc_en]").each(function(){
$(this).hide();
});
} }
$("span[id=id_span_menu_device]").text(g_vtoy_cur_language.STR_PLUG_DEVICE); $("span[id=id_span_menu_device]").text(g_vtoy_cur_language.STR_PLUG_DEVICE);