mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-20 10:51:13 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ed1aa3d5be | ||
|
8e66110374 | ||
|
f5f65aa868 | ||
|
4e5fcf211b | ||
|
9789069c0d | ||
|
1cf45ac0c5 | ||
|
40fe21f909 | ||
|
e6bdf075ca | ||
|
7c76e57bf4 | ||
|
7fe038b697 | ||
|
c01c69db3b | ||
|
0e996e74c9 | ||
|
1371159f0b | ||
|
44b38dce74 |
2
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
2
.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.71
|
||||
placeholder: 1.0.72
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
|
@@ -960,7 +960,7 @@ static int ventoy_plugin_parse_pwdstr(char *pwdstr, vtoy_password *pwd)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (len - 1 - (int)(long)(pos - pwdstr) != 32)
|
||||
if (len - 1 - ((long)pos - (long)pwdstr) != 32)
|
||||
{
|
||||
if (NULL == pwd) grub_printf("Invalid md5 salt password format %s\n", pwdstr);
|
||||
return 1;
|
||||
|
@@ -20,7 +20,7 @@
|
||||
. $VTOY_PATH/hook/ventoy-os-lib.sh
|
||||
|
||||
if $GREP -q '^"$mount_handler"' /init; then
|
||||
echo 'use mount_handler ...' >> $VTLOG
|
||||
echo 'use mount_handler1 ...' >> $VTLOG
|
||||
|
||||
vthookfile=/hooks/archiso
|
||||
|
||||
@@ -37,6 +37,9 @@ if $GREP -q '^"$mount_handler"' /init; then
|
||||
if [ -f $vthookfile ]; then
|
||||
$SED '/while ! poll_device "${dev}"/a\ if /ventoy/busybox/sh /ventoy/hook/arch/ventoy-timeout.sh ${dev}; then break; fi' -i $vthookfile
|
||||
fi
|
||||
elif $GREP -q '^$mount_handler' /init; then
|
||||
echo 'use mount_handler2 ...' >> $VTLOG
|
||||
$SED "/^\$mount_handler/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/arch/ventoy-disk.sh" -i /init
|
||||
|
||||
elif $GREP -q '^KEEP_SEARCHING' /init; then
|
||||
echo 'KEEP_SEARCHING found ...' >> $VTLOG
|
||||
|
@@ -342,6 +342,24 @@ ventoy_get_os_type() {
|
||||
echo "openEuler"; return
|
||||
fi
|
||||
|
||||
|
||||
#special arch based iso file check
|
||||
if [ -f /init ]; then
|
||||
if $GREP -q 'mount_handler' /init; then
|
||||
if [ -d /hooks ]; then
|
||||
if $BUSYBOX_PATH/ls -1 /hooks/ | $GREP -q '.*iso$'; then
|
||||
echo "arch"; return
|
||||
fi
|
||||
elif [ -d /hook ]; then
|
||||
if $BUSYBOX_PATH/ls -1 /hook/ | $GREP -q '.*iso$'; then
|
||||
echo "arch"; return
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "default"
|
||||
}
|
||||
|
||||
|
@@ -2113,7 +2113,7 @@ function img_unsupport_menuentry {
|
||||
#############################################################
|
||||
#############################################################
|
||||
|
||||
set VENTOY_VERSION="1.0.71"
|
||||
set VENTOY_VERSION="1.0.72"
|
||||
|
||||
#ACPI not compatible with Window7/8, so disable by default
|
||||
set VTOY_PARAM_NO_ACPI=1
|
||||
@@ -2349,11 +2349,11 @@ if [ $ventoy_img_count -gt 0 ]; then
|
||||
fi
|
||||
else
|
||||
if [ -n "$VTOY_NO_ISO_TIP" ]; then
|
||||
NO_ISO_MENU="No ISO files found, $VTOY_NO_ISO_TIP"
|
||||
NO_ISO_MENU="No ISO or supported IMG files found, $VTOY_NO_ISO_TIP"
|
||||
elif [ -n "$VTOY_DEFAULT_SEARCH_ROOT" ]; then
|
||||
NO_ISO_MENU="No ISO files found, please check VTOY_DEFAULT_SEARCH_ROOT"
|
||||
NO_ISO_MENU="No ISO or supported IMG files found, please check VTOY_DEFAULT_SEARCH_ROOT"
|
||||
else
|
||||
NO_ISO_MENU="No ISO files found"
|
||||
NO_ISO_MENU="No ISO or supported IMG files found"
|
||||
fi
|
||||
menuentry "$NO_ISO_MENU (Press enter to reboot ...)" {
|
||||
echo -e "\n Rebooting ... "
|
||||
|
@@ -3,11 +3,11 @@
|
||||
. ./tool/ventoy_lib.sh
|
||||
|
||||
print_usage() {
|
||||
|
||||
|
||||
echo 'Usage: Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX'
|
||||
echo ' CMD:'
|
||||
echo ' -i install Ventoy to sdX (fails if disk already installed with Ventoy)'
|
||||
echo ' -I force install Ventoy to sdX (no matter installed or not)'
|
||||
echo ' -I force install Ventoy to sdX (no matter if installed or not)'
|
||||
echo ' -u update Ventoy in sdX'
|
||||
echo ' -l list Ventoy information in sdX'
|
||||
echo ''
|
||||
@@ -67,7 +67,7 @@ while [ -n "$1" ]; do
|
||||
DISK=$(readlink -e -n "$DISK")
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
@@ -113,19 +113,19 @@ if [ "$MODE" = "list" ]; then
|
||||
version=$(get_disk_ventoy_version $DISK)
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Ventoy Version in Disk: $version"
|
||||
|
||||
|
||||
vtPart1Type=$(dd if=$DISK bs=1 count=1 skip=450 status=none | hexdump -n1 -e '1/1 "%02X"')
|
||||
if [ "$vtPart1Type" = "EE" ]; then
|
||||
if [ "$vtPart1Type" = "EE" ]; then
|
||||
echo "Disk Partition Style : GPT"
|
||||
else
|
||||
echo "Disk Partition Style : MBR"
|
||||
fi
|
||||
|
||||
|
||||
if check_disk_secure_boot $DISK; then
|
||||
echo "Secure Boot Support : YES"
|
||||
else
|
||||
echo "Secure Boot Support : NO"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Ventoy Version: NA"
|
||||
fi
|
||||
@@ -149,7 +149,7 @@ if swapon --help 2>&1 | grep -q '^ \-s,'; then
|
||||
fi
|
||||
fi
|
||||
|
||||
#check access
|
||||
#check access
|
||||
if dd if="$DISK" of=/dev/null bs=1 count=1 >/dev/null 2>&1; then
|
||||
vtdebug "root permission check ok ..."
|
||||
else
|
||||
@@ -165,7 +165,7 @@ if [ -d ./tmp_mnt ]; then
|
||||
umount ./tmp_mnt >/dev/null 2>&1
|
||||
rm -rf ./tmp_mnt
|
||||
if [ -d ./tmp_mnt ]; then
|
||||
vterr "tmp_mnt directory exits, please delete it first."
|
||||
vterr "tmp_mnt directory exists, please delete it first."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -192,7 +192,7 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
version=$(get_disk_ventoy_version $DISK)
|
||||
if [ $? -eq 0 ]; then
|
||||
if [ -z "$FORCE" ]; then
|
||||
@@ -203,7 +203,7 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
disk_sector_num=$(cat /sys/block/${DISK#/dev/}/size)
|
||||
disk_size_gb=$(expr $disk_sector_num / 2097152)
|
||||
|
||||
@@ -215,7 +215,7 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
if [ -n "$RESERVE_SPACE" ]; then
|
||||
sum_size_mb=$(expr $RESERVE_SIZE_MB + $VENTOY_PART_SIZE_MB)
|
||||
reserve_sector_num=$(expr $sum_size_mb \* 2048)
|
||||
|
||||
|
||||
if [ $disk_sector_num -le $reserve_sector_num ]; then
|
||||
vterr "Can't reserve $RESERVE_SIZE_MB MB space from $DISK"
|
||||
exit 1
|
||||
@@ -225,12 +225,12 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
#Print disk info
|
||||
echo "Disk : $DISK"
|
||||
parted -s $DISK p 2>&1 | grep Model
|
||||
echo "Size : $disk_size_gb GB"
|
||||
echo "Size : $disk_size_gb GB"
|
||||
if [ -n "$VTGPT" ]; then
|
||||
echo "Style: GPT"
|
||||
else
|
||||
echo "Style: MBR"
|
||||
fi
|
||||
fi
|
||||
echo ''
|
||||
|
||||
if [ -n "$RESERVE_SPACE" ]; then
|
||||
@@ -259,7 +259,7 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $disk_sector_num -le $VENTOY_SECTOR_NUM ]; then
|
||||
if [ $disk_sector_num -le $VENTOY_SECTOR_NUM ]; then
|
||||
vterr "No enough space in disk $DISK"
|
||||
exit 1
|
||||
fi
|
||||
@@ -290,8 +290,8 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
cluster_sectors=64
|
||||
fi
|
||||
|
||||
PART1=$(get_disk_part_name $DISK 1)
|
||||
PART2=$(get_disk_part_name $DISK 2)
|
||||
PART1=$(get_disk_part_name $DISK 1)
|
||||
PART2=$(get_disk_part_name $DISK 2)
|
||||
|
||||
#clean part2
|
||||
dd status=none conv=fsync if=/dev/zero of=$DISK bs=512 count=32 seek=$part2_start_sector
|
||||
@@ -315,11 +315,11 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
vterr "${PART1} NOT exist"
|
||||
fi
|
||||
|
||||
vtinfo "writing data to disk ..."
|
||||
vtinfo "writing data to disk ..."
|
||||
dd status=none conv=fsync if=./boot/boot.img of=$DISK bs=1 count=446
|
||||
|
||||
|
||||
if [ -n "$VTGPT" ]; then
|
||||
echo -en '\x22' | dd status=none of=$DISK conv=fsync bs=1 count=1 seek=92
|
||||
echo -en '\x22' | dd status=none of=$DISK conv=fsync bs=1 count=1 seek=92
|
||||
xzcat ./boot/core.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=2014 seek=34
|
||||
echo -en '\x23' | dd of=$DISK conv=fsync bs=1 count=1 seek=17908 status=none
|
||||
else
|
||||
@@ -328,23 +328,24 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
||||
|
||||
# check and umount
|
||||
check_umount_disk "$DISK"
|
||||
|
||||
|
||||
xzcat ./ventoy/ventoy.disk.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=$VENTOY_SECTOR_NUM seek=$part2_start_sector
|
||||
|
||||
|
||||
#test UUID
|
||||
testUUIDStr=$(vtoy_gen_uuid | hexdump -C)
|
||||
vtdebug "test uuid: $testUUIDStr"
|
||||
|
||||
|
||||
#disk uuid
|
||||
vtoy_gen_uuid | dd status=none conv=fsync of=${DISK} seek=384 bs=1 count=16
|
||||
|
||||
|
||||
#disk signature
|
||||
vtoy_gen_uuid | dd status=none conv=fsync of=${DISK} skip=12 seek=440 bs=1 count=4
|
||||
|
||||
vtinfo "sync data ..."
|
||||
sync
|
||||
|
||||
|
||||
vtinfo "esp partition processing ..."
|
||||
|
||||
if [ "$SECUREBOOT" != "YES" ]; then
|
||||
sleep 2
|
||||
check_umount_disk "$DISK"
|
||||
@@ -551,7 +552,7 @@ else
|
||||
vtinfo "Upgrade operation is safe, all the data in the 1st partition (iso files and other) will be unchanged!"
|
||||
echo ""
|
||||
|
||||
read -p "Update Ventoy $oldver ===> $curver Continue? (y/n)" Answer
|
||||
read -p "Update Ventoy $oldver ===> $curver Continue? (y/n) " Answer
|
||||
if [ "$Answer" != "y" ]; then
|
||||
if [ "$Answer" != "Y" ]; then
|
||||
exit 0
|
||||
@@ -561,13 +562,13 @@ else
|
||||
PART2=$(get_disk_part_name $DISK 2)
|
||||
SHORT_PART2=${PART2#/dev/}
|
||||
part2_start=$(cat /sys/class/block/$SHORT_PART2/start)
|
||||
|
||||
|
||||
PART1_TYPE=$(dd if=$DISK bs=1 count=1 skip=450 status=none | hexdump -n1 -e '1/1 "%02X"')
|
||||
|
||||
|
||||
#reserve disk uuid
|
||||
rm -f ./diskuuid.bin
|
||||
dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of=./diskuuid.bin
|
||||
|
||||
|
||||
dd status=none conv=fsync if=./boot/boot.img of=$DISK bs=1 count=440
|
||||
dd status=none conv=fsync if=./diskuuid.bin of=$DISK bs=1 count=16 seek=384
|
||||
rm -f ./diskuuid.bin
|
||||
@@ -577,16 +578,16 @@ else
|
||||
dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of=./rsvdata.bin
|
||||
|
||||
if [ "$PART1_TYPE" = "EE" ]; then
|
||||
vtdebug "This is GPT partition style ..."
|
||||
vtdebug "This is GPT partition style ..."
|
||||
echo -en '\x22' | dd status=none of=$DISK conv=fsync bs=1 count=1 seek=92
|
||||
xzcat ./boot/core.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=2014 seek=34
|
||||
echo -en '\x23' | dd of=$DISK conv=fsync bs=1 count=1 seek=17908 status=none
|
||||
else
|
||||
vtdebug "This is MBR partition style ..."
|
||||
|
||||
|
||||
PART1_ACTIVE=$(dd if=$DISK bs=1 count=1 skip=446 status=none | hexdump -n1 -e '1/1 "%02X"')
|
||||
PART2_ACTIVE=$(dd if=$DISK bs=1 count=1 skip=462 status=none | hexdump -n1 -e '1/1 "%02X"')
|
||||
|
||||
|
||||
vtdebug "PART1_ACTIVE=$PART1_ACTIVE PART2_ACTIVE=$PART2_ACTIVE"
|
||||
if [ "$PART1_ACTIVE" = "00" ] && [ "$PART2_ACTIVE" = "80" ]; then
|
||||
vtdebug "change 1st partition active, 2nd partition inactive ..."
|
||||
@@ -614,7 +615,7 @@ else
|
||||
echo ""
|
||||
vtinfo "Update Ventoy on $DISK successfully finished."
|
||||
echo ""
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
@@ -176,6 +176,13 @@ chmod +x $tmpdir/VentoyWeb.sh
|
||||
chmod +x $tmpdir/VentoyPlugson.sh
|
||||
chmod +x $tmpdir/VentoyVlnk.sh
|
||||
chmod +x $tmpdir/VentoyGUI*
|
||||
chmod +x $tmpdir/tool/*.sh
|
||||
|
||||
for d in i386 x86_64 aarch64 mips64el; do
|
||||
chmod +x $tmpdir/tool/$d/xzcat
|
||||
chmod +x $tmpdir/tool/$d/Ventoy2Disk.*
|
||||
done
|
||||
|
||||
|
||||
cp $OPT $LANG_DIR/languages.json $tmpdir/tool/
|
||||
|
||||
|
@@ -248,9 +248,9 @@
|
||||
"STR_INSTALL_TIP":"The device will be formatted and all the data will be lost.#@Continue?",
|
||||
"STR_INSTALL_TIP2":"The device will be formatted and all the data will be lost.#@Continue? (Double Check)",
|
||||
"STR_INSTALL_SUCCESS":"Congratulations!#@Ventoy has been successfully installed to the device.",
|
||||
"STR_INSTALL_FAILED":"An error occurred during the installation. You can replug the USB device and try again. Check log.txt for detail. If it always fail, please refer the FAQ in the official website.",
|
||||
"STR_UPDATE_SUCCESS":"Congratulations!#@Ventoy has been successfully updated to the device.",
|
||||
"STR_UPDATE_FAILED":"An error occurred during the update. You can replug the USB device and try again. Check log.txt for detail. If it always fail, please refer the FAQ in the official website.",
|
||||
"STR_INSTALL_FAILED":"An error occurred during the installation. You can reinsert the USB device and try again. Check log.txt for details. If it always fails, please refer the FAQ on the official website.",
|
||||
"STR_UPDATE_SUCCESS":"Congratulations!#@Ventoy has been successfully updated on the device.",
|
||||
"STR_UPDATE_FAILED":"An error occurred during the update. You can reinsert the USB device and try again. Check log.txt for details. If it always fails, please refer the FAQ on the official website.",
|
||||
"STR_WAIT_PROCESS":"A thread is running, please wait...",
|
||||
"STR_MENU_OPTION":"Option",
|
||||
"STR_MENU_SECURE_BOOT":"Secure Boot Support",
|
||||
@@ -261,7 +261,7 @@
|
||||
"STR_SPACE_VAL_INVALID":"Invalid value for reserved space",
|
||||
"STR_MENU_CLEAR":"Clear Ventoy",
|
||||
"STR_CLEAR_SUCCESS":"Ventoy has been successfully removed from the device.",
|
||||
"STR_CLEAR_FAILED":"An error occurred when clearing Ventoy from disk. You can replug the USB device and try again. Check log.txt for details.",
|
||||
"STR_CLEAR_FAILED":"An error occurred when removing Ventoy from disk. You can reinsert the USB device and try again. Check log.txt for details.",
|
||||
"STR_MENU_PART_STYLE":"Partition Style",
|
||||
"STR_DISK_2TB_MBR_ERROR":"Please select GPT for devices over 2TB",
|
||||
"STR_SHOW_ALL_DEV":"Show All Devices",
|
||||
@@ -402,7 +402,7 @@
|
||||
"name":"Portuguese Brazilian (Português do Brasil)",
|
||||
"FontFamily":"Courier New",
|
||||
"FontSize":16,
|
||||
"Author":"EstevaoCostaG3, David BrazSan, Hildo Guillardi Júnior",
|
||||
"Author":"EstevaoCostaG3, David BrazSan, Hildo Guillardi Júnior, Chrystian Rubio",
|
||||
|
||||
"STR_ERROR":"Erro",
|
||||
"STR_WARNING":"Atenção",
|
||||
@@ -429,7 +429,7 @@
|
||||
"STR_BTN_OK":"OK",
|
||||
"STR_BTN_CANCEL":"Cancelar",
|
||||
"STR_PRESERVE_SPACE":"Preservar algum espaço no final do disco",
|
||||
"STR_SPACE_VAL_INVALID":"Valor invalido para o espaço reservado",
|
||||
"STR_SPACE_VAL_INVALID":"Valor inválido para o espaço reservado",
|
||||
"STR_MENU_CLEAR":"Remover o Ventoy",
|
||||
"STR_CLEAR_SUCCESS":"O Ventoy foi removido deste dispositivo com sucesso.",
|
||||
"STR_CLEAR_FAILED":"Um erro ocorreu ao remover o Ventoy do disco. Você pode reconectar o dispositivo USB e tentar novamente. Verifique o Arquivo log.txt para mais detalhes.",
|
||||
@@ -439,18 +439,18 @@
|
||||
"STR_PART_ALIGN_4KB":"Alinhar partições com 4KB",
|
||||
"STR_WEB_COMMUNICATION_ERR":"Erro de comunicação:",
|
||||
"STR_WEB_REMOTE_ABNORMAL":"Erro de comunicação: remoto anormal",
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Erro de comunicação: Solicitação cronometrado",
|
||||
"STR_WEB_REQUEST_TIMEOUT":"Erro de comunicação: Solicitação cronometrada",
|
||||
"STR_WEB_SERVICE_UNAVAILABLE":"Erro de comunicação: Serviço indisponível",
|
||||
"STR_WEB_TOKEN_MISMATCH":"Status daemon atualizado, por favor, tente novamente mais tarde.",
|
||||
"STR_WEB_SERVICE_BUSY":"O serviço está ocupado, por favor, tente novamente mais tarde.",
|
||||
"STR_MENU_VTSI_CREATE":"Gerar arquivo VTSI",
|
||||
"STR_VTSI_CREATE_TIP":"Não será gravado no dispositivo, desta vez, apenas derado um VTSI file#@Continuar?",
|
||||
"STR_VTSI_CREATE_TIP":"Não será gravado no dispositivo, desta vez, apenas gerado um arquivo VTSI.#@Continuar?",
|
||||
"STR_VTSI_CREATE_SUCCESS":"Arquivo VTSI criado com sucesso!#@Você pode usar Rufus(3.15+) para gravá-lo no dispositivo e completar a instalação do Ventoy.",
|
||||
"STR_VTSI_CREATE_FAILED":"Criaçao do arquivo VTSI falhada.",
|
||||
"STR_VTSI_CREATE_FAILED":"Criação do arquivo VTSI falhada.",
|
||||
"STR_MENU_PART_RESIZE":"Instalação não destrutiva",
|
||||
"STR_PART_RESIZE_TIP":"Ventoy tentará uma instalação não destrutiva, se possível.#@Continuar?",
|
||||
"STR_PART_RESIZE_SUCCESS":"Parabéns!#@Instalação não destrutiva do Ventoy concluída com sucesso.",
|
||||
"STR_PART_RESIZE_FAILED":"Falha na installação não destrutiva, cheque o arquivo log.txt para entender.",
|
||||
"STR_PART_RESIZE_FAILED":"Falha na instalação não destrutiva, cheque o arquivo log.txt para entender.",
|
||||
"STR_PART_RESIZE_UNSUPPORTED":"Instalação não destrutiva do Ventoy interrompida devido fato desconhecido. Cheque o arquivo log.txt para detalhes.",
|
||||
|
||||
"STRXXX":""
|
||||
|
@@ -7,6 +7,7 @@
|
||||
<img src="https://img.shields.io/github/license/ventoy/Ventoy?style=for-the-badge">
|
||||
<img src="https://img.shields.io/github/stars/ventoy/Ventoy?style=for-the-badge">
|
||||
<img src="https://img.shields.io/github/downloads/ventoy/Ventoy/total.svg?style=for-the-badge">
|
||||
<img src="https://img.shields.io/github/workflow/status/ventoy/Ventoy/Ventoy%20CI?label=actions&logo=github&style=for-the-badge">
|
||||
</p>
|
||||
|
||||
<h4 align="left">
|
||||
@@ -37,6 +38,12 @@ FydeOS, CloudReady
|
||||
**Other**
|
||||
VMware ESXi, Citrix XenServer, Xen XCP-ng
|
||||
|
||||
# Subscription Service
|
||||
Ventoy is an open source software under GPLv3 license.
|
||||
But Ventoy project need to pay for the server hosting, domain name, bandwidth, many USB sticks for test, large capacity of HDD (for downloading ISO files) and so on.
|
||||
For the better and sustainable development of Ventoy, I provide the [【subscription service】](https://www.ventoy.net/en/doc_subscription.html).
|
||||
|
||||
|
||||
# Tested Image Report
|
||||
[【How to report a successfully tested image file】](https://github.com/ventoy/Ventoy/issues/1195)
|
||||
|
||||
|
@@ -297,7 +297,7 @@ int read_sort_file(char *filename, int source, char *source_path[])
|
||||
} else if((errno == ERANGE) ||
|
||||
(priority < -32768 || priority > 32767)) {
|
||||
ERROR("Sort file \"%s\", entry \"%s\" has priority "
|
||||
"outside range of -32767:32768.\n", filename,
|
||||
"outside range of -32768:32767.\n", filename,
|
||||
line_buffer);
|
||||
goto failed;
|
||||
}
|
||||
|
Reference in New Issue
Block a user