Merge branch 'ventoy:master' into patch-1

This commit is contained in:
Chauncy♋ 2023-08-28 17:19:20 +08:00 committed by GitHub
commit 93fe79ce96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 439 additions and 83 deletions

View File

@ -342,10 +342,12 @@ grub_file_read (grub_file_t file, void *buf, grub_size_t len)
if (len == 0) if (len == 0)
return 0; return 0;
if (grub_strncmp(file->name, GRUB_MEMFILE_MEM, grub_strlen(GRUB_MEMFILE_MEM)) == 0) { if (file->name) {
if (grub_strncmp(file->name, GRUB_MEMFILE_MEM, grub_strlen(GRUB_MEMFILE_MEM)) == 0) {
grub_memcpy(buf, (grub_uint8_t *)(file->data) + file->offset, len); grub_memcpy(buf, (grub_uint8_t *)(file->data) + file->offset, len);
file->offset += len; file->offset += len;
return len; return len;
}
} }
read_hook = file->read_hook; read_hook = file->read_hook;

View File

@ -1099,6 +1099,7 @@ static grub_err_t ventoy_linux_locate_initrd(int filt, int *filtcnt)
if (filtbysize if (filtbysize
&& (NULL == grub_strstr(node->name, "minirt.gz")) && (NULL == grub_strstr(node->name, "minirt.gz"))
&& (NULL == grub_strstr(node->name, "initrd.xz")) && (NULL == grub_strstr(node->name, "initrd.xz"))
&& (NULL == grub_strstr(node->name, "initrd.gz"))
) )
{ {
if (filt > 0 && file->size <= g_ventoy_cpio_size + 2048) if (filt > 0 && file->size <= g_ventoy_cpio_size + 2048)

View File

@ -40,13 +40,13 @@ ventoy_os_install_dmsetup_by_unsquashfs() {
dmModPath="/usr/lib/modules/$vtKerVer/kernel/drivers/md/dm-mod.$vtKoPo" dmModPath="/usr/lib/modules/$vtKerVer/kernel/drivers/md/dm-mod.$vtKoPo"
echo $dmModPath > $VTOY_PATH/fsextract echo $dmModPath > $VTOY_PATH/fsextract
vtoy_unsquashfs -d $VTOY_PATH/sqfs -n -q -e $VTOY_PATH/fsextract $VTOY_PATH/fsdisk vtoy_unsquashfs -d $VTOY_PATH/sqfs -n -q -e $VTOY_PATH/fsextract $VTOY_PATH/fsdisk 2>>$VTLOG
if ! [ -e $VTOY_PATH/sqfs${dmModPath} ]; then if ! [ -e $VTOY_PATH/sqfs${dmModPath} ]; then
rm -rf $VTOY_PATH/sqfs rm -rf $VTOY_PATH/sqfs
dmModPath="/lib/modules/$vtKerVer/kernel/drivers/md/dm-mod.$vtKoPo" dmModPath="/lib/modules/$vtKerVer/kernel/drivers/md/dm-mod.$vtKoPo"
echo $dmModPath > $VTOY_PATH/fsextract echo $dmModPath > $VTOY_PATH/fsextract
vtoy_unsquashfs -d $VTOY_PATH/sqfs -n -q -e $VTOY_PATH/fsextract $VTOY_PATH/fsdisk vtoy_unsquashfs -d $VTOY_PATH/sqfs -n -q -e $VTOY_PATH/fsextract $VTOY_PATH/fsdisk 2>>$VTLOG
fi fi
if [ -e $VTOY_PATH/sqfs${dmModPath} ]; then if [ -e $VTOY_PATH/sqfs${dmModPath} ]; then

View File

@ -37,12 +37,20 @@ ventoy_os_install_dmsetup_by_fuse() {
mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso
sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs) if ls $VTOY_PATH/mnt/iso/zdrv_*.sfs 2>/dev/null; then
sfsfile=$(ls $VTOY_PATH/mnt/iso/zdrv_*.sfs)
else
sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs)
fi
mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs
kVer=$(uname -r) kVer=$(uname -r)
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*) KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*)
if [ -z "$KoName" ]; then
KoName=$(ls $VTOY_PATH/mnt/squashfs/usr/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*)
fi
vtlog "insmod $KoName" vtlog "insmod $KoName"
insmod $KoName insmod $KoName

View File

@ -28,6 +28,7 @@ vtlog "####### $0 $* ########"
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
ventoy_os_install_dmsetup_by_fuse() { ventoy_os_install_dmsetup_by_fuse() {
local drvdir=""
vtlog "ventoy_os_install_dmsetup_by_fuse $*" vtlog "ventoy_os_install_dmsetup_by_fuse $*"
mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs
@ -37,11 +38,13 @@ ventoy_os_install_dmsetup_by_fuse() {
mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso
for sfsfile in $(ls $VTOY_PATH/mnt/iso/*drv_veket*.sfs); do for sfsfile in $(ls $VTOY_PATH/mnt/iso/*drv_veket*.sfs); do
mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs
if [ -d $VTOY_PATH/mnt/squashfs/lib/modules ]; then if [ -d $VTOY_PATH/mnt/squashfs/lib/modules ]; then
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$2/kernel/drivers/md/dm-mod.ko*) KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$2/kernel/drivers/md/dm-mod.ko*)
if [ -n "$KoName" -a -f $KoName ]; then if [ -n "$KoName" -a -f $KoName ]; then
drvdir=$VTOY_PATH/mnt/squashfs/lib/modules/$2
break break
fi fi
fi fi
@ -49,11 +52,29 @@ ventoy_os_install_dmsetup_by_fuse() {
umount $VTOY_PATH/mnt/squashfs umount $VTOY_PATH/mnt/squashfs
done done
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$2/kernel/drivers/dax/dax.ko*)
if [ -z "$drvdir" ]; then
vtlog "retry for usr/lib dir"
for sfsfile in $(ls $VTOY_PATH/mnt/iso/*drv_veket*.sfs); do
mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs
if [ -d $VTOY_PATH/mnt/squashfs/usr/lib/modules ]; then
KoName=$(ls $VTOY_PATH/mnt/squashfs/usr/lib/modules/$2/kernel/drivers/md/dm-mod.ko*)
if [ -n "$KoName" -a -f $KoName ]; then
drvdir=$VTOY_PATH/mnt/squashfs/usr/lib/modules/$2
break
fi
fi
umount $VTOY_PATH/mnt/squashfs
done
fi
KoName=$(ls $drvdir/kernel/drivers/dax/dax.ko*)
vtlog "insmod $KoName" vtlog "insmod $KoName"
insmod $KoName insmod $KoName
KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$2/kernel/drivers/md/dm-mod.ko*) KoName=$(ls $drvdir/kernel/drivers/md/dm-mod.ko*)
vtlog "insmod $KoName" vtlog "insmod $KoName"
insmod $KoName insmod $KoName

View File

@ -376,6 +376,14 @@ ventoy_get_os_type() {
if $GREP -q 'chimera' /proc/version; then if $GREP -q 'chimera' /proc/version; then
echo 'chimera'; return echo 'chimera'; return
fi fi
if $GREP -q '4.19.' /proc/version; then
if [ -d /lib/dracut/hooks ]; then
echo 'openEuler'; return
fi
fi
echo "default" echo "default"
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2285,6 +2285,8 @@ function img_common_menuentry {
if [ -z "$vtImgHd1Label" ]; then if [ -z "$vtImgHd1Label" ]; then
if [ -d (vtimghd,2)/efi ]; then if [ -d (vtimghd,2)/efi ]; then
vt_get_fs_label (vtimghd,3) vtImgHd3Label vt_get_fs_label (vtimghd,3) vtImgHd3Label
elif [ -d (vtimghd,12)/efi ]; then
vt_get_fs_label (vtimghd,3) vtImgHd3Label
fi fi
fi fi
@ -2395,7 +2397,7 @@ function mimg_common_menuentry {
############################################################# #############################################################
############################################################# #############################################################
set VENTOY_VERSION="1.0.93" set VENTOY_VERSION="1.0.95"
#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

@ -0,0 +1,19 @@
L - Seleção de Idiomas
F1 - Exibir informações de ajuda
F2 - Explorar e inicializar os arquivos no disco local
F3 - Trocar o modo do menu entre Visualização em Árvore <-> Visualização em Lista
F4 - Inicializar o Windows/Linux no disco local
F5 - Utilitários
F6 - Carregar o Menu Personalizado do Grub2
F7 - Trocar entre o Modo GUI <-> Modo TEXTO
m/Ctrl+m - Checksum dos arquivos de imagem (md5/sha1/sha256/sha512)
d/Ctrl+d - Modo Memdisk (Só pros pequenos WinPE/LiveCD ISO/IMG)
w/Ctrl+w - Modo WIMBOOT (Só pra arquivos ISO do Windows/WinPE)
r/Ctrl+r - Modo Grub2 (Só pra algumas distros do Linux)
i/Ctrl+i - Modo Compatível (Só pra debugging)
u/Ctrl+u - Carregar o driver EFI da ISO (Só pra debugging, não pode ser usado oficialmente)
Pressione ESC pra retornar...

View File

@ -7,12 +7,12 @@ F5 - Інструменти
F6 - Завантажити Custom Grub2 меню F6 - Завантажити Custom Grub2 меню
F7 - Переключитись між графічним інтерфейсом <-> текстовим інтерфейсом F7 - Переключитись між графічним інтерфейсом <-> текстовим інтерфейсом
m/Ctrl+m - Контрольна сума образу диску (md5/sha1/sha256/sha512) m/Ctrl + m - Контрольна сума образу диску (md5/sha1/sha256/sha512)
d/Ctrl+d - Режим Memdisk (Тільки для невеликих образів WinPE/LiveCD ISO/IMG) d/Ctrl + d - Режим Memdisk (Тільки для невеликих образів WinPE/LiveCD ISO/IMG)
w/Ctrl+w - Режим WIMBOOT (Тільки для ISO-файлів Windows/WinPE) w/Ctrl + w - Режим WIMBOOT (Тільки для ISO-файлів Windows/WinPE)
r/Ctrl+r - Режим Grub2 (Тільки для деяких дистрибутивів Linux) r/Ctrl + r - Режим Grub2 (Тільки для деяких дистрибутивів Linux)
i/Ctrl+i - Сумісний режим (Тільки для зневадження) i/Ctrl + i - Сумісний режим (Тільки для зневадження)
u/Ctrl+u - Завантажити драйвер ISO EFI (Тільки для зневадження, не офіційно) u/Ctrl + u - Завантажити драйвер ISO EFI (Тільки для зневадження, не офіційно)

View File

@ -201,7 +201,7 @@ cbmemc: cbtable normal terminfo
hfsplus: fshelp hfsplus: fshelp
gcry_cast5: crypto gcry_cast5: crypto
extcmd: extcmd:
squash4: fshelp lzopio zfs xzio gzio squash4: fshelp zstd lzopio zfs xzio gzio
part_plan: part_plan:
minix_be: minix_be:
gcry_whirlpool: crypto gcry_whirlpool: crypto

Binary file not shown.

View File

@ -83,7 +83,7 @@ gfxterm_background: video_colors bitmap_scale gfxterm extcmd video bitmap
search_fs_uuid: search_fs_uuid:
gcry_dsa: pgp mpi gcry_dsa: pgp mpi
keystatus: extcmd keystatus: extcmd
linux: ventoy verifiers normal vbe video boot relocator mmap linux: ventoy verifiers vbe normal video boot relocator mmap
geli: cryptodisk crypto gcry_sha512 pbkdf2 gcry_sha256 geli: cryptodisk crypto gcry_sha512 pbkdf2 gcry_sha256
cmdline_cat_test: font functional_test normal procfs video_fb cmdline_cat_test: font functional_test normal procfs video_fb
rdmsr: extcmd rdmsr: extcmd
@ -124,7 +124,7 @@ crypto:
part_bsd: part_msdos part_bsd: part_msdos
cs5536: pci cs5536: pci
biosdisk: biosdisk:
ventoy: ext2 fshelp elf btrfs crypto font gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 iso9660 acpi ventoy: ext2 fshelp elf btrfs crypto font gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 iso9660 reboot acpi
lsapm: lsapm:
gcry_sha512: crypto gcry_sha512: crypto
password: crypto normal password: crypto normal
@ -208,7 +208,7 @@ cmosdump:
hfsplus: fshelp hfsplus: fshelp
gcry_cast5: crypto gcry_cast5: crypto
extcmd: extcmd:
squash4: fshelp lzopio zfs xzio gzio squash4: fshelp zstd lzopio zfs xzio gzio
part_plan: part_plan:
minix_be: minix_be:
gcry_whirlpool: crypto gcry_whirlpool: crypto

Binary file not shown.

View File

@ -47,7 +47,7 @@
"VTLANG_UTIL_SHOW_EFI_DRV": "UEFI 드라이버 표시", "VTLANG_UTIL_SHOW_EFI_DRV": "UEFI 드라이버 표시",
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Windows 초기화 라이브러리 오류 복구", "VTLANG_UTIL_FIX_BLINIT_FAIL": "Windows 초기화 라이브러리 오류 복구",
"VTLANG_JSON_CHK_JSON": "플러그인 파일 구성 확인 (ventoy.json)", "VTLANG_JSON_CHK_JSON": "플러그인 파일 구성 확인 (ventoy.json)",
"VTLANG_JSON_CHK_CONTROL": "전역 제어 플러그인 구성 확인", "VTLANG_JSON_CHK_CONTROL": "전역 제어 플러그인 구성 확인",
"VTLANG_JSON_CHK_THEME": "테마 플러그인 구성 확인", "VTLANG_JSON_CHK_THEME": "테마 플러그인 구성 확인",
"VTLANG_JSON_CHK_AUTOINS": "자동 설치 플러그인 구성 확인", "VTLANG_JSON_CHK_AUTOINS": "자동 설치 플러그인 구성 확인",
@ -78,12 +78,13 @@
"VTLANG_PERSIST_USE": "부팅 대상", "VTLANG_PERSIST_USE": "부팅 대상",
"VTLANG_BROWER_RETURN": "돌아가기", "VTLANG_BROWER_RETURN": "돌아가기",
"VTLANG_ENTER_EXIT": "종료하려면 Enter 키를 누르십시오", "VTLANG_ENTER_EXIT": "종료하려면 Enter 키를 누르십시오",
"VTLANG_ENTER_REBOOT": "다시 시작하려면 Enter 키를 누르십시오", "VTLANG_ENTER_REBOOT": "다시 시작하려면 Enter 키를 누르십시오",
"VTLANG_ENTER_CONTINUE": "계속하려면 Enter 키를 누르십시오", "VTLANG_ENTER_CONTINUE": "계속하려면 Enter 키를 누르십시오",
"VTLANG_CTRL_TEMP_SET": "임시 제어 설정", "VTLANG_CTRL_TEMP_SET": "임시 제어 설정",
"VTLANG_WIN11_BYPASS_CHECK": "Windows 11 설치 시 CPU/TPM/Secure Boot 검사 회피", "VTLANG_WIN11_BYPASS_CHECK": "Windows 11 설치 시 CPU/TPM/SecureBoot 검사 회피",
"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": "보조 부팅 메뉴 표시",

View File

@ -0,0 +1,93 @@
{
"VTLANG_LANGUAGE_NAME": "Brazilian Portuguese (Português Brasileiro)",
"VTLANG_STR_HOTKEY_LIST": "L:Idioma F1:Ajuda F2:Explorar F3:Visualização em Lista F4:Inicialização Local F5:Ferramentas F6:Sair",
"VTLANG_STR_HOTKEY_TREE": "L:Idioma F1:Ajuda F2:Explorar F3:Visualização em Árvore F4:Inicialização Local F5:Ferramentas F6:Sair",
"VTLANG_RETURN_PREVIOUS": "Retornar ao menu anterior [Esc]",
"VTLANG_RETURN_PRV_NOESC": "Retornar ao menu anterior",
"VTLANG_MENU_LANG": "Menu de Seleção dos Idiomas",
"VTLANG_LB_SBOOT_WINDOWS": "Procurar e iniciar o Windows",
"VTLANG_LB_SBOOT_G4D": "Procurar e iniciar o Grub4dos",
"VTLANG_LB_SBOOT_HDD1": "Iniciar o 1º disco local",
"VTLANG_LB_SBOOT_HDD2": "Iniciar o 2º disco local",
"VTLANG_LB_SBOOT_HDD3": "Iniciar o 3º disco local",
"VTLANG_LB_SBOOT_X64EFI": "Procurar e iniciar o BOOTX64.EFI",
"VTLANG_LB_SBOOT_IA32EFI": "Procurar e iniciar o BOOTIA32.EFI",
"VTLANG_LB_SBOOT_AA64EFI": "Procurar e iniciar o BOOTAA64.EFI",
"VTLANG_LB_SBOOT_XORBOOT": "Procurar e iniciar o xorboot",
"VTLANG_FILE_CHKSUM": "Checksum do arquivo",
"VTLANG_CHKSUM_MD5_CALC": "Calcular o md5sum",
"VTLANG_CHKSUM_SHA1_CALC": "Calcular o sha1sum",
"VTLANG_CHKSUM_SHA256_CALC": "Calcular o sha256sum",
"VTLANG_CHKSUM_SHA512_CALC": "Calcular o sha512sum",
"VTLANG_CHKSUM_MD5_CALC_CHK": "Calcular e verificar o md5sum",
"VTLANG_CHKSUM_SHA1_CALC_CHK": "Calcular e verificar o sha1sum",
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Calcular e verificar o sha256sum",
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Calcular e verificar o sha512sum",
"VTLANG_POWER": "Energia",
"VTLANG_POWER_REBOOT": "Reiniciar",
"VTLANG_POWER_HALT": "Desligar",
"VTLANG_POWER_BOOT_EFIFW": "Reiniciar com a configuração do EFI",
"VTLANG_KEYBRD_LAYOUT": "Esquemas do Teclado",
"VTLANG_HWINFO": "Informações do Hardware",
"VTLANG_RESOLUTION_CFG": "Configuração da Resolução",
"VTLANG_SCREEN_MODE": "Modo de Exibição da Tela",
"VTLANG_SCREEN_TEXT_MODE": "Forçar o Modo Texto",
"VTLANG_SCREEN_GUI_MODE": "Forçar o Modo Gráfico",
"VTLANG_THEME_SELECT": "Seleção de Tema",
"VTLANG_UEFI_UTIL": "Utilitários UEFI do Ventoy",
"VTLANG_UTIL_SHOW_EFI_DRV": "Mostrar os Drivers EFI",
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Consertar a Falha BlinitializeLibrary do Windows",
"VTLANG_JSON_CHK_JSON": "Verificar a configuração do plugin json (ventoy.json)",
"VTLANG_JSON_CHK_CONTROL": "Verificar a configuração do plugin de controle global",
"VTLANG_JSON_CHK_THEME": "Verificar a configuração do plugin dos temas",
"VTLANG_JSON_CHK_AUTOINS": "Verificar a configuração do plugin de instalação automática",
"VTLANG_JSON_CHK_PERSIST": "Verificar a configuração do plugin de persistência",
"VTLANG_JSON_CHK_MENU_ALIAS": "Verificar a configuração do plugin do menu alias",
"VTLANG_JSON_CHK_MENU_TIP": "Verificar a configuração do plugin do menu das dicas",
"VTLANG_JSON_CHK_MENU_CLASS": "Verificar a configuração do plugin do menu classe",
"VTLANG_JSON_CHK_INJECTION": "Verificar a configuração do plugin de injeção",
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Verificar a configuração do plugin automático do memdisk",
"VTLANG_JSON_CHK_IMG_LIST": "Verificar a configuração do plugin da lista de imagens",
"VTLANG_JSON_CHK_IMG_BLIST": "Verificar a configuração do plugin da lista negra de imagens",
"VTLANG_JSON_CHK_CONF_REPLACE": "Verificar a configuração do plugin de substituição da configuração de inicialização",
"VTLANG_JSON_CHK_DUD": "Verificar a configuração do plugin dud",
"VTLANG_JSON_CHK_PASSWORD": "Verificar a configuração do plugin das senhas",
"VTLANG_NORMAL_MODE": "Iniciar no modo normal",
"VTLANG_WIMBOOT_MODE": "Iniciar no modo wimboot",
"VTLANG_GRUB2_MODE": "Iniciar no modo grub2",
"VTLANG_MEMDISK_MODE": "Iniciar no modo memdisk",
"VTLANG_RET_TO_LISTVIEW": "Retornar pra Visualização em Lista",
"VTLANG_RET_TO_TREEVIEW": "Retornar para Visualização em Árvore",
"VTLANG_NO_AUTOINS_SCRIPT": "Iniciar sem modelo de instalação automática",
"VTLANG_AUTOINS_USE": "Iniciar com",
"VTLANG_NO_PERSIST": "Iniciar sem persistência",
"VTLANG_PERSIST_USE": "Iniciar com",
"VTLANG_BROWER_RETURN": "Retornar",
"VTLANG_ENTER_EXIT": "Pressione a tecla Enter pra sair",
"VTLANG_ENTER_REBOOT": "Pressione a tecla Enter pra reiniciar",
"VTLANG_ENTER_CONTINUE": "Pressione a tecla Enter pra continuar",
"VTLANG_CTRL_TEMP_SET": "Configurações do Controle Temporário",
"VTLANG_WIN11_BYPASS_CHECK": "Ignorar a verificação da CPU/TPM/SecureBoot quando 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_SECONDARY_BOOT_MENU": "Mostrar o menu secundário da inicialização",
"MENU_STR_XXX": ""
}

View File

@ -30,7 +30,7 @@
"VTLANG_POWER": "Питание", "VTLANG_POWER": "Питание",
"VTLANG_POWER_REBOOT": "Перезагрузить", "VTLANG_POWER_REBOOT": "Перезагрузить",
"VTLANG_POWER_HALT": "Завершить роботу", "VTLANG_POWER_HALT": "Завершить работу",
"VTLANG_POWER_BOOT_EFIFW": "Перезагрузиться в настройку EFI", "VTLANG_POWER_BOOT_EFIFW": "Перезагрузиться в настройку EFI",
"VTLANG_KEYBRD_LAYOUT": "Раскладки клавиатуры", "VTLANG_KEYBRD_LAYOUT": "Раскладки клавиатуры",

View File

@ -31,7 +31,7 @@
"VTLANG_POWER": "Живлення", "VTLANG_POWER": "Живлення",
"VTLANG_POWER_REBOOT": "Перезавантажити", "VTLANG_POWER_REBOOT": "Перезавантажити",
"VTLANG_POWER_HALT": "Завершити роботу", "VTLANG_POWER_HALT": "Завершити роботу",
"VTLANG_POWER_BOOT_EFIFW": "Перезавантажитись до налаштувань EFI", "VTLANG_POWER_BOOT_EFIFW": "Перезавантажитись до налаштувань UEFI/BIOS",
"VTLANG_KEYBRD_LAYOUT": "Розкладка клавіатури", "VTLANG_KEYBRD_LAYOUT": "Розкладка клавіатури",
"VTLANG_HWINFO": "Відомості про пристрій", "VTLANG_HWINFO": "Відомості про пристрій",
@ -41,7 +41,7 @@
"VTLANG_SCREEN_TEXT_MODE": "Перейти до текстового інтерфейсу", "VTLANG_SCREEN_TEXT_MODE": "Перейти до текстового інтерфейсу",
"VTLANG_SCREEN_GUI_MODE": "Перейти до графічного інтерфейсу", "VTLANG_SCREEN_GUI_MODE": "Перейти до графічного інтерфейсу",
"VTLANG_THEME_SELECT": "Обрати тему", "VTLANG_THEME_SELECT": "Теми",
"VTLANG_UEFI_UTIL": "Утиліти Ventoy UEFI", "VTLANG_UEFI_UTIL": "Утиліти Ventoy UEFI",
"VTLANG_UTIL_SHOW_EFI_DRV": "Показати драйвери EFI", "VTLANG_UTIL_SHOW_EFI_DRV": "Показати драйвери EFI",
@ -83,7 +83,7 @@
"VTLANG_ENTER_REBOOT": "натисніть Enter для перезавантаження", "VTLANG_ENTER_REBOOT": "натисніть Enter для перезавантаження",
"VTLANG_ENTER_CONTINUE": "натисніть Enter для продовження", "VTLANG_ENTER_CONTINUE": "натисніть Enter для продовження",
"VTLANG_CTRL_TEMP_SET": "Налаштування тимчасового контролю", "VTLANG_CTRL_TEMP_SET": "Різні налаштування",
"VTLANG_WIN11_BYPASS_CHECK": "Обійти перевірку CPU/TPM/SecureBoot під час інсталяції Windows 11", "VTLANG_WIN11_BYPASS_CHECK": "Обійти перевірку CPU/TPM/SecureBoot під час інсталяції Windows 11",
"VTLANG_WIN11_BYPASS_NRO": "Обійти вимогу онлайн-аккаунту під час інсталяції Windows 11", "VTLANG_WIN11_BYPASS_NRO": "Обійти вимогу онлайн-аккаунту під час інсталяції Windows 11",
"VTLANG_LINUX_REMOUNT": "Монтувати розділ Ventoy після завантаження Linux", "VTLANG_LINUX_REMOUNT": "Монтувати розділ Ventoy після завантаження Linux",

Binary file not shown.

Binary file not shown.

View File

@ -26,7 +26,7 @@ sfs: fshelp
reiserfs: fshelp reiserfs: fshelp
part_sunpc: part_sunpc:
zstd: zstd:
gfxmenu: video_colors trig gfxterm bitmap_scale font normal video bitmap gfxmenu: video_colors trig bitmap_scale gfxterm font normal video bitmap
backtrace: backtrace:
jfs: jfs:
help: extcmd normal help: extcmd normal
@ -121,7 +121,7 @@ ehci: cs5536 usb boot
crypto: crypto:
part_bsd: part_msdos part_bsd: part_msdos
cs5536: cs5536:
ventoy: ext2 fshelp elf btrfs font crypto gcry_md5 exfat udf div extcmd datetime normal video gcry_sha1 mmap iso9660 ventoy: ext2 fshelp elf btrfs crypto font gcry_md5 exfat udf datetime div extcmd normal video gcry_sha1 mmap iso9660
gcry_sha512: crypto gcry_sha512: crypto
password: crypto normal password: crypto normal
fshelp: fshelp:
@ -202,7 +202,7 @@ cbmemc: cbtable normal terminfo
hfsplus: fshelp hfsplus: fshelp
gcry_cast5: crypto gcry_cast5: crypto
extcmd: extcmd:
squash4: fshelp lzopio zfs xzio gzio squash4: fshelp zstd lzopio zfs xzio gzio
part_plan: part_plan:
minix_be: minix_be:
gcry_whirlpool: crypto gcry_whirlpool: crypto

Binary file not shown.

View File

@ -585,67 +585,67 @@
"STRXXX":"" "STRXXX":""
}, },
{ {
"name":"Portuguese Brazilian (Português do Brasil)", "name":"Portuguese Brazilian (Português Brasileiro)",
"FontFamily":"Courier New", "FontFamily":"Courier New",
"FontSize":16, "FontSize":16,
"Author":"EstevaoCostaG3, David BrazSan, Hildo Guillardi Júnior, Chrystian Rubio", "Author":"EstevaoCostaG3, David BrazSan, Hildo Guillardi Júnior, Chrystian Rubio, Felipe",
"STR_ERROR":"Erro", "STR_ERROR":"Erro",
"STR_WARNING":"Atenção", "STR_WARNING":"Aviso",
"STR_INFO":"Informação", "STR_INFO":"Informações",
"STR_INCORRECT_DIR":"Por favor, execute no diretório correto!", "STR_INCORRECT_DIR":"Por favor execute no diretório correto!",
"STR_INCORRECT_TREE_DIR":"Não me execute aqui, por favor baixe o pacote de instalação lançado, e me execute lá.", "STR_INCORRECT_TREE_DIR":"Não me execute aqui, por favor baixe o pacote de instalação lançado e me execute lá.",
"STR_DEVICE":"Dispositivo", "STR_DEVICE":"Dispositivo",
"STR_LOCAL_VER":"Ventoy em pacote", "STR_LOCAL_VER":"Ventoy no Pacote",
"STR_DISK_VER":"Ventoy em dispositivo", "STR_DISK_VER":"Ventoy no Dispositivo",
"STR_STATUS":"Status - PRONTO", "STR_STATUS":"Status - PRONTO",
"STR_INSTALL":"Instalar", "STR_INSTALL":"Instalar",
"STR_UPDATE":"Atualizar", "STR_UPDATE":"Atualizar",
"STR_UPDATE_TIP":"A operação de atualização é segura, os arquivos ISO não serão alterados.#@Continuar?", "STR_UPDATE_TIP":"A operação de atualização é segura, os arquivos ISO não serão alterados.#@Continuar?",
"STR_INSTALL_TIP":"O disco será formatado e todos os dados serão perdidos.#@Continuar?", "STR_INSTALL_TIP":"O dispositivo será formatado e todos os dados serão perdidos.#@Continuar?",
"STR_INSTALL_TIP2":"O disco será formatado e todos os dados serão perdidos.#@Continuar? (Verificação dupla)", "STR_INSTALL_TIP2":"O dispositivo será formatado e todos os dados serão perdidos.#@Continuar? (Verificação Dupla)",
"STR_INSTALL_SUCCESS":"Parabéns!#@Ventoy foi instalado com sucesso no dispositivo.", "STR_INSTALL_SUCCESS":"Parabéns!#@O Ventoy foi instalado com sucesso no dispositivo.",
"STR_INSTALL_FAILED":"Um erro ocorreu durante a instalação. Você pode reconectar o dispositivo USB e tentar novamente. Verifique o arquivo log.txt para mais detalhes.", "STR_INSTALL_FAILED":"Um erro ocorreu durante a instalação. Você pode re-inserir o dispositivo USB e tentar de novo. Verifique o log.txt para mais detalhes. Se ele sempre falha por favor refira-se ao FAQ no site oficial da web.",
"STR_UPDATE_SUCCESS":"Parabéns!#@Ventoy foi atualizado com sucesso no dispositivo.", "STR_UPDATE_SUCCESS":"Parabéns!#@O Ventoy foi atualizado com sucesso no dispositivo.",
"STR_UPDATE_FAILED":"Um erro ocorreu durante a atualização. Você pode reconectar o dispositivo USB e tentar novamente. Verifique o arquivo log.txt para mais detalhes.", "STR_UPDATE_FAILED":"Um erro ocorreu durante a atualização. Você pode re-inserir o dispositivo USB e tentar de novo. Verifique o log.txt para mais detalhes. Se ele sempre falha por favor refira-se ao FAQ no site oficial da web.",
"STR_WAIT_PROCESS":"Uma tarefa está em execução, por favor espere...", "STR_WAIT_PROCESS":"Um thread está em execução, por favor espere...",
"STR_MENU_OPTION":"Opção", "STR_MENU_OPTION":"Opção",
"STR_MENU_SECURE_BOOT":"Boot seguro", "STR_MENU_SECURE_BOOT":"Suporte ao Boot Seguro",
"STR_MENU_PART_CFG":"Configuração de Partição", "STR_MENU_PART_CFG":"Configuração da Partição",
"STR_BTN_OK":"OK", "STR_BTN_OK":"OK",
"STR_BTN_CANCEL":"Cancelar", "STR_BTN_CANCEL":"Cancelar",
"STR_PRESERVE_SPACE":"Preservar algum espaço no final do disco", "STR_PRESERVE_SPACE":"Preservar algum espaço no fim do disco",
"STR_SPACE_VAL_INVALID":"Valor inválido para o espaço reservado", "STR_SPACE_VAL_INVALID":"Valor inválido para o espaço reservado",
"STR_MENU_CLEAR":"Remover o Ventoy", "STR_MENU_CLEAR":"Limpar o Ventoy",
"STR_CLEAR_SUCCESS":"O Ventoy foi removido deste dispositivo com sucesso.", "STR_CLEAR_SUCCESS":"O Ventoy foi removido do 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.", "STR_CLEAR_FAILED":"Um erro ocorreu quando removia o Ventoy do disco. Você pode re-inserir o dispositivo USB e tentar de novo. Verifique o log.txt para mais detalhes.",
"STR_MENU_PART_STYLE":"Estilo de Partição", "STR_MENU_PART_STYLE":"Estilo da Partição",
"STR_DISK_2TB_MBR_ERROR":"Por favor selecione GPT para discos maiores que 2TB", "STR_DISK_2TB_MBR_ERROR":"Por favor selecione o GPT para dispositivos acima de 2 TBs",
"STR_SHOW_ALL_DEV":"Mostrar Todos os Dispositivos", "STR_SHOW_ALL_DEV":"Mostrar Todos os Dispositivos",
"STR_PART_ALIGN_4KB":"Alinhar partições com 4kB", "STR_PART_ALIGN_4KB":"Alinhar as partições com 4 KBs",
"STR_WEB_COMMUNICATION_ERR":"Erro de comunicação:", "STR_WEB_COMMUNICATION_ERR":"Erro de comunicação:",
"STR_WEB_REMOTE_ABNORMAL":"Erro de comunicação: remoto anormal", "STR_WEB_REMOTE_ABNORMAL":"Erro de comunicação: Remoto Anormal",
"STR_WEB_REQUEST_TIMEOUT":"Erro de comunicação: Solicitação cronometrada", "STR_WEB_REQUEST_TIMEOUT":"Erro de comunicação: O Tempo da Requisição se Esgotou",
"STR_WEB_SERVICE_UNAVAILABLE":"Erro de comunicação: Serviço indisponível", "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_TOKEN_MISMATCH":"Status do daemon atualizado, por favor tente de novo mais tarde.",
"STR_WEB_SERVICE_BUSY":"O serviço está ocupado, por favor, tente novamente mais tarde.", "STR_WEB_SERVICE_BUSY":"O serviço está ocupado, por favor tente de novo mais tarde.",
"STR_MENU_VTSI_CREATE":"Gerar arquivo VTSI", "STR_MENU_VTSI_CREATE":"Gerar arquivo VTSI",
"STR_VTSI_CREATE_TIP":"Não será gravado no dispositivo, desta vez, apenas gerado um arquivo VTSI.#@Continuar?", "STR_VTSI_CREATE_TIP":"Desta vez não gravará no dispositivo mas vai gerar apenas 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_SUCCESS":"Arquivo VTSI criado com sucesso!#@Você pode usar o Rufus (3.15+) pra gravá-lo no dispositivo e completar a instalação do Ventoy.",
"STR_VTSI_CREATE_FAILED":"Criação do arquivo VTSI falhada.", "STR_VTSI_CREATE_FAILED":"A criação do arquivo VTSI falhou.",
"STR_MENU_PART_RESIZE":"Instalação não destrutiva", "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_TIP":"O 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_SUCCESS":"Parabéns!#@Instalação não destrutiva do Ventoy concluída com sucesso.",
"STR_PART_RESIZE_FAILED":"Falha na instalação não destrutiva, cheque o arquivo log.txt para entender.", "STR_PART_RESIZE_FAILED":"A instalação não destrutiva falhou, verifique o log.txt para detalhes.",
"STR_PART_RESIZE_UNSUPPORTED":"Instalação não destrutiva do Ventoy interrompida devido fato desconhecido. Cheque o arquivo log.txt para detalhes.", "STR_PART_RESIZE_UNSUPPORTED":"A instalação não destrutiva do Ventoy parou porque algumas condições não podem ser atendidas. Verifique o log.txt para detalhes.",
"STR_INSTALL_YES_TIP1":"Aviso: Os dados serão perdidos!", "STR_INSTALL_YES_TIP1":"Aviso: Os dados serão perdidos!",
"STR_INSTALL_YES_TIP2":"Por favor, digite YES na caixa de texto abaixo para confirmar que você realmente quer fazer uma nova instalação em vez de atualização.", "STR_INSTALL_YES_TIP2":"Por favor insira YES na caixa de texto abaixo pra confirmar que você de fato quer fazer uma nova instalação ao invés de atualizar.",
"STR_PART_VENTOY_FS":"Sistema de arquivos para partição Ventoy", "STR_PART_VENTOY_FS":"Sistema de Arquivos para a partição do Ventoy",
"STR_PART_FS":"Sistema de arquivo", "STR_PART_FS":"Sistema de Arquivos",
"STR_PART_CLUSTER":"Tamanho do cluster", "STR_PART_CLUSTER":"Tamanho do Cluster",
"STR_PART_CLUSTER_DEFAULT":"Valor padrão do sistema", "STR_PART_CLUSTER_DEFAULT":"Valor Padrão do Sistema",
"STR_DONATE":"Doar", "STR_DONATE":"Doar",
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.", "STR_4KN_UNSUPPORTED":"Atualmente o Ventoy não suporta dispositivos 4K nativos.",
"STRXXX":"" "STRXXX":""
}, },
@ -735,9 +735,9 @@
"STR_INSTALL_TIP":"Das Gerät wird formatiert und alle Daten gehen verloren.#@Fortfahren?", "STR_INSTALL_TIP":"Das Gerät wird formatiert und alle Daten gehen verloren.#@Fortfahren?",
"STR_INSTALL_TIP2":"Das Gerät wird formatiert und alle Daten gehen verloren.#@Fortfahren? (erneute Überprüfung)", "STR_INSTALL_TIP2":"Das Gerät wird formatiert und alle Daten gehen verloren.#@Fortfahren? (erneute Überprüfung)",
"STR_INSTALL_SUCCESS":"Herzlichen Glückwunsch!#@Ventoy wurde erfolgreich auf dem Gerät installiert.", "STR_INSTALL_SUCCESS":"Herzlichen Glückwunsch!#@Ventoy wurde erfolgreich auf dem Gerät installiert.",
"STR_INSTALL_FAILED":"Während der Installation ist ein Fehler aufgetreten. Stecken Sie das Gerät neu ein und versuchen Sie es erneut. Überprüfen Sie die log.txt auf Details.", "STR_INSTALL_FAILED":"Während der Installation ist ein Fehler aufgetreten. Stecken Sie das Gerät neu ein und versuchen Sie es erneut. Details finden Sie in log.txt. Falls der Vorgang immer fehlschlägt, lesen Sie bitte das FAQ auf der offiziellen Website.",
"STR_UPDATE_SUCCESS":"Herzlichen Glückwunsch!#@Ventoy wurde erfolgreich auf dem Gerät aktualisiert.", "STR_UPDATE_SUCCESS":"Herzlichen Glückwunsch!#@Ventoy wurde erfolgreich auf dem Gerät aktualisiert.",
"STR_UPDATE_FAILED":"Während der Aktualisierung ist ein Fehler aufgetreten. Stecken Sie das Gerät neu ein und versuchen Sie es erneut. Überprüfen Sie die log.txt auf Details.", "STR_UPDATE_FAILED":"Während der Aktualisierung ist ein Fehler aufgetreten. Stecken Sie das Gerät neu ein und versuchen Sie es erneut. Details finden Sie in log.txt. Falls der Vorgang immer fehlschlägt, lesen Sie bitte das FAQ auf der offiziellen Website.",
"STR_WAIT_PROCESS":"Ein anderer Thread läuft, bitte warten...", "STR_WAIT_PROCESS":"Ein anderer Thread läuft, bitte warten...",
"STR_MENU_OPTION":"Optionen", "STR_MENU_OPTION":"Optionen",
"STR_MENU_SECURE_BOOT":"Secure Boot", "STR_MENU_SECURE_BOOT":"Secure Boot",
@ -1223,7 +1223,7 @@
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.", "STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.",
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Ventoy остановлена из-за несоответствия некоторым требованиям. См. файл log.txt с подробностями.", "STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Ventoy остановлена из-за несоответствия некоторым требованиям. См. файл log.txt с подробностями.",
"STR_INSTALL_YES_TIP1":"ВНИМАНИЕ: все данные будут потеряны!", "STR_INSTALL_YES_TIP1":"ВНИМАНИЕ: все данные будут потеряны!",
"STR_INSTALL_YES_TIP2":"Введите «YES» в текстовом поле ниже, чтобы подтвердить, что вы действительно хотите выполнить новую установку, а не обновление.", "STR_INSTALL_YES_TIP2":"Введите «YES» в текстовом поле ниже, чтобы подтвердить, что Вы действительно хотите выполнить новую установку, а не обновление.",
"STR_PART_VENTOY_FS":"Файловая система для раздела Ventoy", "STR_PART_VENTOY_FS":"Файловая система для раздела Ventoy",
"STR_PART_FS":"Тип:", "STR_PART_FS":"Тип:",
"STR_PART_CLUSTER":"Размер кластера:", "STR_PART_CLUSTER":"Размер кластера:",
@ -1614,11 +1614,11 @@
"STR_PART_RESIZE_UNSUPPORTED":"L'installazione non distruttiva di Ventoy è stata interrotta perché alcune condizioni non possono essere soddisfatte.#@Controlla il file log.txt per i dettagli.", "STR_PART_RESIZE_UNSUPPORTED":"L'installazione non distruttiva di Ventoy è stata interrotta perché alcune condizioni non possono essere soddisfatte.#@Controlla il file log.txt per i dettagli.",
"STR_INSTALL_YES_TIP1":"Attenzione: i dati verranno persi!", "STR_INSTALL_YES_TIP1":"Attenzione: i dati verranno persi!",
"STR_INSTALL_YES_TIP2":"Digita YES nella casella di testo qui sotto per confermare che vuoi davvero eseguire un'installazione pulita anziché un aggiornamento.", "STR_INSTALL_YES_TIP2":"Digita YES nella casella di testo qui sotto per confermare che vuoi davvero eseguire un'installazione pulita anziché un aggiornamento.",
"STR_PART_VENTOY_FS":"File system per la partizione Ventoy", "STR_PART_VENTOY_FS":"File system partizione Ventoy",
"STR_PART_FS":"File system", "STR_PART_FS":"File system",
"STR_PART_CLUSTER":"Dimensione del cluster", "STR_PART_CLUSTER":"Dimensione cluster",
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema", "STR_PART_CLUSTER_DEFAULT":"Valore predefinito sistema",
"STR_DONATE":"Donare", "STR_DONATE":"Dona",
"STR_4KN_UNSUPPORTED":"Attualmente Ventoy non supporta dispositivi nativi 4K.", "STR_4KN_UNSUPPORTED":"Attualmente Ventoy non supporta dispositivi nativi 4K.",
"STRXXX":"" "STRXXX":""
@ -2399,7 +2399,7 @@
"STR_PART_CLUSTER":"Tamanho do cluster", "STR_PART_CLUSTER":"Tamanho do cluster",
"STR_PART_CLUSTER_DEFAULT":"Valor predefinido do sistema", "STR_PART_CLUSTER_DEFAULT":"Valor predefinido do sistema",
"STR_DONATE":"Doar", "STR_DONATE":"Doar",
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.", "STR_4KN_UNSUPPORTED":"Atualmente, o Ventoy não é compatível com dispositivos nativos 4K.",
"STRXXX":"" "STRXXX":""
}, },
@ -2622,7 +2622,7 @@
"STR_INSTALL_FAILED":"Παρουσιάστηκε σφάλμα κατά την εγκατάσταση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.", "STR_INSTALL_FAILED":"Παρουσιάστηκε σφάλμα κατά την εγκατάσταση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
"STR_UPDATE_SUCCESS":"Συγχαρητήρια!#@Ventoy ενημερώθηκε με επιτυχία στη συσκευή.", "STR_UPDATE_SUCCESS":"Συγχαρητήρια!#@Ventoy ενημερώθηκε με επιτυχία στη συσκευή.",
"STR_UPDATE_FAILED":"Παρουσιάστηκε σφάλμα κατά την ενημέρωση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.", "STR_UPDATE_FAILED":"Παρουσιάστηκε σφάλμα κατά την ενημέρωση. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
"STR_WAIT_PROCESS":"Ένα νήμα εκτελείται, παρακαλώ περιμένετε...", "STR_WAIT_PROCESS":"Μια εργασία εκτελείται, παρακαλώ περιμένετε...",
"STR_MENU_OPTION":"Επιλογές", "STR_MENU_OPTION":"Επιλογές",
"STR_MENU_SECURE_BOOT":"Υποστήριξη ασφαλούς εκκίνησης (Secure Boot)", "STR_MENU_SECURE_BOOT":"Υποστήριξη ασφαλούς εκκίνησης (Secure Boot)",
"STR_MENU_PART_CFG":"Διαμόρφωση κατατμήσεων", "STR_MENU_PART_CFG":"Διαμόρφωση κατατμήσεων",
@ -2630,7 +2630,7 @@
"STR_BTN_CANCEL":"Ακύρωση", "STR_BTN_CANCEL":"Ακύρωση",
"STR_PRESERVE_SPACE":"Διατηρήστε λίγο χώρο στο κάτω μέρος του δίσκου", "STR_PRESERVE_SPACE":"Διατηρήστε λίγο χώρο στο κάτω μέρος του δίσκου",
"STR_SPACE_VAL_INVALID":"Μη έγκυρη τιμή για τον δεσμευμένο χώρο", "STR_SPACE_VAL_INVALID":"Μη έγκυρη τιμή για τον δεσμευμένο χώρο",
"STR_MENU_CLEAR":"Απεγκατάσταση του Ventoy", "STR_MENU_CLEAR":"Κατάργηση του Ventoy",
"STR_CLEAR_SUCCESS":"Το Ventoy καταργήθηκε με επιτυχία από τη συσκευή.", "STR_CLEAR_SUCCESS":"Το Ventoy καταργήθηκε με επιτυχία από τη συσκευή.",
"STR_CLEAR_FAILED":"Παρουσιάστηκε σφάλμα κατά την εκκαθάριση του Ventoy από το δίσκο. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.", "STR_CLEAR_FAILED":"Παρουσιάστηκε σφάλμα κατά την εκκαθάριση του Ventoy από το δίσκο. Μπορείτε να επανασυνδέσετε το USB και να δοκιμάσετε ξανά. Ελέγξτε το αρχείο log.txt για λεπτομέρειες.",
"STR_MENU_PART_STYLE":"Στυλ κατατμήσεων", "STR_MENU_PART_STYLE":"Στυλ κατατμήσεων",
@ -2644,7 +2644,7 @@
"STR_WEB_TOKEN_MISMATCH":"Η κατάσταση του δαίμονα επικαιροποιήθηκε. Παρακαλώ δοκιμάστε αργότερα.", "STR_WEB_TOKEN_MISMATCH":"Η κατάσταση του δαίμονα επικαιροποιήθηκε. Παρακαλώ δοκιμάστε αργότερα.",
"STR_WEB_SERVICE_BUSY":"Η υπηρεσία είναι απασχολημένη. Παρακαλώ δοκιμάστε αργότερα.", "STR_WEB_SERVICE_BUSY":"Η υπηρεσία είναι απασχολημένη. Παρακαλώ δοκιμάστε αργότερα.",
"STR_MENU_VTSI_CREATE":"Δημιουργία αρχείου VTSI", "STR_MENU_VTSI_CREATE":"Δημιουργία αρχείου VTSI",
"STR_VTSI_CREATE_TIP":"Αυτή τη φορά δεν θα γράψει στη συσκευή, αλλά θα δημιουργήσει μόνο ένα αρχείο VTSI#@Συνέχεια;", "STR_VTSI_CREATE_TIP":"Αυτή τη φορά δε θα γράψει στη συσκευή, αλλά θα δημιουργήσει μόνο ένα αρχείο VTSI#@Συνέχεια;",
"STR_VTSI_CREATE_SUCCESS":"Το αρχείο VTSI δημιουργήθηκε με επιτυχία!#@Μπορείτε να χρησιμοποιήσετε το Rufus(3.15+) για να το γράψετε στη συσκευή ώστε να ολοκληρώσετε την εγκατάσταση του Ventoy.", "STR_VTSI_CREATE_SUCCESS":"Το αρχείο VTSI δημιουργήθηκε με επιτυχία!#@Μπορείτε να χρησιμοποιήσετε το Rufus(3.15+) για να το γράψετε στη συσκευή ώστε να ολοκληρώσετε την εγκατάσταση του Ventoy.",
"STR_VTSI_CREATE_FAILED":"Αποτυχία δημιουργίας αρχείου VTSI.", "STR_VTSI_CREATE_FAILED":"Αποτυχία δημιουργίας αρχείου VTSI.",
"STR_MENU_PART_RESIZE":"Μη καταστροφική εγκατάσταση", "STR_MENU_PART_RESIZE":"Μη καταστροφική εγκατάσταση",
@ -2653,13 +2653,13 @@
"STR_PART_RESIZE_FAILED":"Η μη καταστροφική εγκατάσταση απέτυχε. Ελέγξτε το log.txt για λεπτομέρειες.", "STR_PART_RESIZE_FAILED":"Η μη καταστροφική εγκατάσταση απέτυχε. Ελέγξτε το log.txt για λεπτομέρειες.",
"STR_PART_RESIZE_UNSUPPORTED":"Η μη καταστρεπτική εγκατάσταση του Ventoy σταμάτησε επειδή δεν μπορούν να τηρηθούν ορισμένες προϋποθέσεις. Ελέγξτε το log.txt για λεπτομέρειες.", "STR_PART_RESIZE_UNSUPPORTED":"Η μη καταστρεπτική εγκατάσταση του Ventoy σταμάτησε επειδή δεν μπορούν να τηρηθούν ορισμένες προϋποθέσεις. Ελέγξτε το log.txt για λεπτομέρειες.",
"STR_INSTALL_YES_TIP1":"Προειδοποίηση: Τα δεδομένα θα χαθούν!", "STR_INSTALL_YES_TIP1":"Προειδοποίηση: Τα δεδομένα θα χαθούν!",
"STR_INSTALL_YES_TIP2":"Εισαγάγετε ΝΑΙ στο παρακάτω πλαίσιο κειμένου για να επιβεβαιώσετε ότι όντως θέλετε να κάνετε μια νέα εγκατάσταση αντί για αναβάθμιση.", "STR_INSTALL_YES_TIP2":"Εισάγετε ΝΑΙ στο παρακάτω πλαίσιο κειμένου για να επιβεβαιώσετε ότι όντως θέλετε να κάνετε μια νέα εγκατάσταση αντί για αναβάθμιση.",
"STR_PART_VENTOY_FS":"Σύστημα αρχείων για το διαμέρισμα Ventoy", "STR_PART_VENTOY_FS":"Σύστημα αρχείων για το διαμέρισμα Ventoy",
"STR_PART_FS":"Σύστημα αρχείων", "STR_PART_FS":"Σύστημα αρχείων",
"STR_PART_CLUSTER":"Μέγεθος συμπλέγματος", "STR_PART_CLUSTER":"Μέγεθος συμπλέγματος",
"STR_PART_CLUSTER_DEFAULT":"Προεπιλεγμένη τιμή συστήματος", "STR_PART_CLUSTER_DEFAULT":"Προεπιλεγμένη τιμή συστήματος",
"STR_DONATE":"Προσφέρω", "STR_DONATE":"Δωρεά",
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.", "STR_4KN_UNSUPPORTED":"Επί του παρόντος, το Ventoy δεν υποστηρίζει εγγενείς συσκευές 4K.",
"STRXXX":"" "STRXXX":""
}, },
@ -2718,14 +2718,14 @@
"STR_PART_RESIZE_SUCCESS":"Gratulerar!#@Ventoy lyckades slutföra en icke-förstörande installation.", "STR_PART_RESIZE_SUCCESS":"Gratulerar!#@Ventoy lyckades slutföra en icke-förstörande installation.",
"STR_PART_RESIZE_FAILED":"Ventoy misslyckades slutföra en icke-förstörande installation. Mer information finns i log.txt.", "STR_PART_RESIZE_FAILED":"Ventoy misslyckades slutföra en icke-förstörande installation. Mer information finns i log.txt.",
"STR_PART_RESIZE_UNSUPPORTED":"Icke-förstörande installation stoppades eftersom vissa villkor inte kunde uppfyllas. Mer information finns i log.txt.", "STR_PART_RESIZE_UNSUPPORTED":"Icke-förstörande installation stoppades eftersom vissa villkor inte kunde uppfyllas. Mer information finns i log.txt.",
"STR_INSTALL_YES_TIP1":"Varning: Data kommer att gå förlorade!", "STR_INSTALL_YES_TIP1":"Varning: Data kommer att gå förlorad!",
"STR_INSTALL_YES_TIP2":"Skriv YES i textrutan nedan för att bekräfta att du verkligen vill göra en nyinstallation i stället för att uppgradera.", "STR_INSTALL_YES_TIP2":"Skriv YES i textrutan nedan för att bekräfta att du verkligen vill göra en nyinstallation i stället för att uppgradera.",
"STR_PART_VENTOY_FS":"Filsystem för Ventoy-partition", "STR_PART_VENTOY_FS":"Filsystem för Ventoy-partition",
"STR_PART_FS":"Filsystem", "STR_PART_FS":"Filsystem",
"STR_PART_CLUSTER":"Klusterstorlek", "STR_PART_CLUSTER":"Klusterstorlek",
"STR_PART_CLUSTER_DEFAULT":"Systemets standardvärde", "STR_PART_CLUSTER_DEFAULT":"Systemets standardvärde",
"STR_DONATE":"Donera", "STR_DONATE":"Donera",
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.", "STR_4KN_UNSUPPORTED":"För närvarande stöder inte Ventoy 4K-enheter.",
"STRXXX":"" "STRXXX":""
}, },

Binary file not shown.

View File

@ -544,6 +544,199 @@ int GetAllPhysicalDriveInfo(PHY_DRIVE_INFO *pDriveList, DWORD *pDriveCount)
return 0; return 0;
} }
BOOL VentoyPhydriveMatch(PHY_DRIVE_INFO* pPhyDrive)
{
BOOL bRet = FALSE;
DWORD dwBytes;
HANDLE Handle = INVALID_HANDLE_VALUE;
CHAR PhyDrive[128];
GET_LENGTH_INFORMATION LengthInfo;
STORAGE_PROPERTY_QUERY Query;
STORAGE_DESCRIPTOR_HEADER DevDescHeader;
STORAGE_DEVICE_DESCRIPTOR* pDevDesc = NULL;
STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR diskAlignment;
CHAR VendorId[128] = { 0 };
CHAR ProductId[128] = { 0 };
CHAR ProductRev[128] = { 0 };
CHAR SerialNumber[128] = { 0 };
safe_sprintf(PhyDrive, "\\\\.\\PhysicalDrive%d", pPhyDrive->PhyDrive);
Handle = CreateFileA(PhyDrive, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (Handle == INVALID_HANDLE_VALUE)
{
Log("Create file Handle:%p %s status:%u", Handle, PhyDrive, LASTERR);
return FALSE;
}
bRet = DeviceIoControl(Handle,
IOCTL_DISK_GET_LENGTH_INFO, NULL,
0,
&LengthInfo,
sizeof(LengthInfo),
&dwBytes,
NULL);
if (!bRet)
{
Log("DeviceIoControl IOCTL_DISK_GET_LENGTH_INFO failed error:%u", LASTERR);
return FALSE;
}
if (pPhyDrive->SizeInBytes != (ULONGLONG)LengthInfo.Length.QuadPart)
{
Log("PHYSICALDRIVE%d size not match %llu %llu", pPhyDrive->PhyDrive, (ULONGLONG)LengthInfo.Length.QuadPart,
(ULONGLONG)pPhyDrive->SizeInBytes);
CHECK_CLOSE_HANDLE(Handle);
return FALSE;
}
Query.PropertyId = StorageDeviceProperty;
Query.QueryType = PropertyStandardQuery;
bRet = DeviceIoControl(Handle,
IOCTL_STORAGE_QUERY_PROPERTY,
&Query,
sizeof(Query),
&DevDescHeader,
sizeof(STORAGE_DESCRIPTOR_HEADER),
&dwBytes,
NULL);
if (!bRet)
{
Log("DeviceIoControl1 error:%u dwBytes:%u", LASTERR, dwBytes);
CHECK_CLOSE_HANDLE(Handle);
return FALSE;
}
if (DevDescHeader.Size < sizeof(STORAGE_DEVICE_DESCRIPTOR))
{
Log("Invalid DevDescHeader.Size:%u", DevDescHeader.Size);
CHECK_CLOSE_HANDLE(Handle);
return FALSE;
}
pDevDesc = (STORAGE_DEVICE_DESCRIPTOR*)malloc(DevDescHeader.Size);
if (!pDevDesc)
{
Log("failed to malloc error:%u len:%u", LASTERR, DevDescHeader.Size);
CHECK_CLOSE_HANDLE(Handle);
return FALSE;
}
bRet = DeviceIoControl(Handle,
IOCTL_STORAGE_QUERY_PROPERTY,
&Query,
sizeof(Query),
pDevDesc,
DevDescHeader.Size,
&dwBytes,
NULL);
if (!bRet)
{
Log("DeviceIoControl2 error:%u dwBytes:%u", LASTERR, dwBytes);
free(pDevDesc);
goto out;
}
memset(&Query, 0, sizeof(STORAGE_PROPERTY_QUERY));
Query.PropertyId = StorageAccessAlignmentProperty;
Query.QueryType = PropertyStandardQuery;
memset(&diskAlignment, 0, sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR));
bRet = DeviceIoControl(Handle,
IOCTL_STORAGE_QUERY_PROPERTY,
&Query,
sizeof(STORAGE_PROPERTY_QUERY),
&diskAlignment,
sizeof(STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR),
&dwBytes,
NULL);
if (!bRet)
{
Log("DeviceIoControl3 error:%u dwBytes:%u", LASTERR, dwBytes);
}
if (pPhyDrive->DeviceType != pDevDesc->DeviceType ||
pPhyDrive->RemovableMedia != pDevDesc->RemovableMedia ||
pPhyDrive->BusType != pDevDesc->BusType ||
pPhyDrive->BytesPerLogicalSector != diskAlignment.BytesPerLogicalSector ||
pPhyDrive->BytesPerPhysicalSector != diskAlignment.BytesPerPhysicalSector
)
{
Log("Some properties not match DeviceType[%u %u] Removable[%u %u] BusType[%u %u] LogSec[%u %u] PhySec[%u %u]",
pPhyDrive->DeviceType, pDevDesc->DeviceType,
pPhyDrive->RemovableMedia, pDevDesc->RemovableMedia,
pPhyDrive->BusType, pDevDesc->BusType,
pPhyDrive->BytesPerLogicalSector, diskAlignment.BytesPerLogicalSector,
pPhyDrive->BytesPerPhysicalSector, diskAlignment.BytesPerPhysicalSector
);
goto out;
}
if (pDevDesc->VendorIdOffset)
{
safe_strcpy(VendorId, (char*)pDevDesc + pDevDesc->VendorIdOffset);
TrimString(VendorId);
if (strcmp(pPhyDrive->VendorId, VendorId))
{
Log("VendorId not match <%s %s>", pPhyDrive->VendorId, VendorId);
goto out;
}
}
if (pDevDesc->ProductIdOffset)
{
safe_strcpy(ProductId, (char*)pDevDesc + pDevDesc->ProductIdOffset);
TrimString(ProductId);
if (strcmp(pPhyDrive->ProductId, ProductId))
{
Log("ProductId not match <%s %s>", pPhyDrive->ProductId, ProductId);
goto out;
}
}
if (pDevDesc->ProductRevisionOffset)
{
safe_strcpy(ProductRev, (char*)pDevDesc + pDevDesc->ProductRevisionOffset);
TrimString(ProductRev);
if (strcmp(pPhyDrive->ProductRev, ProductRev))
{
Log("ProductRev not match <%s %s>", pPhyDrive->ProductRev, ProductRev);
goto out;
}
}
if (pDevDesc->SerialNumberOffset)
{
safe_strcpy(SerialNumber, (char*)pDevDesc + pDevDesc->SerialNumberOffset);
TrimString(SerialNumber);
if (strcmp(pPhyDrive->SerialNumber, SerialNumber))
{
Log("ProductRev not match <%s %s>", pPhyDrive->SerialNumber, SerialNumber);
goto out;
}
}
Log("PhyDrive%d ALL match, now continue", pPhyDrive->PhyDrive);
bRet = TRUE;
out:
if (pDevDesc)
{
free(pDevDesc);
}
CHECK_CLOSE_HANDLE(Handle);
return bRet;
}
static HANDLE g_FatPhyDrive; static HANDLE g_FatPhyDrive;
static UINT64 g_Part2StartSec; static UINT64 g_Part2StartSec;

View File

@ -253,6 +253,7 @@ int VentoyFillGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo);
BOOL IsVentoyLogicalDrive(CHAR DriveLetter); BOOL IsVentoyLogicalDrive(CHAR DriveLetter);
int GetRegDwordValue(HKEY Key, LPCSTR SubKey, LPCSTR ValueName, DWORD *pValue); int GetRegDwordValue(HKEY Key, LPCSTR SubKey, LPCSTR ValueName, DWORD *pValue);
int GetPhysicalDriveCount(void); int GetPhysicalDriveCount(void);
BOOL VentoyPhydriveMatch(PHY_DRIVE_INFO* pPhyDrive);
int GetAllPhysicalDriveInfo(PHY_DRIVE_INFO *pDriveList, DWORD *pDriveCount); int GetAllPhysicalDriveInfo(PHY_DRIVE_INFO *pDriveList, DWORD *pDriveCount);
int GetPhyDriveByLogicalDrive(int DriveLetter, UINT64*Offset); int GetPhyDriveByLogicalDrive(int DriveLetter, UINT64*Offset);
int GetVentoyVerInPhyDrive(const PHY_DRIVE_INFO *pDriveInfo, UINT64 Part2StartSector, CHAR *VerBuf, size_t BufLen, BOOL *pSecureBoot); int GetVentoyVerInPhyDrive(const PHY_DRIVE_INFO *pDriveInfo, UINT64 Part2StartSector, CHAR *VerBuf, size_t BufLen, BOOL *pSecureBoot);
@ -388,4 +389,11 @@ PHY_DRIVE_INFO* CLI_PhyDrvInfo(void);
#define VTSI_SUPPORT 1 #define VTSI_SUPPORT 1
#define WM_OFFSET (WM_USER + 40)
#define WM_WIDTH_CHANGE (WM_OFFSET + 1)
int ExpandDlg(HWND hParent, UINT uiID, int WidthDelta);
int MoveDlg(HWND hParent, UINT uiID, int WidthDelta);
#endif #endif

Binary file not shown.

Binary file not shown.