mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-09-17 01:11:19 +00:00
Compare commits
82 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
038c0533d9 | ||
|
102b179cd9 | ||
|
6785f5d049 | ||
|
0c812ed5e9 | ||
|
9f2b9b0867 | ||
|
c79b072680 | ||
|
6b4509a550 | ||
|
feea11e2bb | ||
|
35c952d891 | ||
|
82053680bf | ||
|
6d5de12f52 | ||
|
84b2ee7ee3 | ||
|
da1b306e81 | ||
|
0961ce5624 | ||
|
07574f0379 | ||
|
142aa47944 | ||
|
11739fa9d0 | ||
|
9fc85051a7 | ||
|
b9e82bcf16 | ||
|
cff3a01289 | ||
|
0f90149c4e | ||
|
8ef9732931 | ||
|
b32eda4262 | ||
|
e743f7c15f | ||
|
652475f1ef | ||
|
abfc2a6343 | ||
|
e73ac04cb6 | ||
|
8727e63880 | ||
|
2d281d7dee | ||
|
385c806adf | ||
|
e869bc2386 | ||
|
b47aa1abc7 | ||
|
d8698b2194 | ||
|
7fa4724743 | ||
|
2717405a7a | ||
|
d494007df9 | ||
|
bc9e3f641b | ||
|
9f02d37001 | ||
|
fa1461bac7 | ||
|
3d56c3fa17 | ||
|
a7e3d78d14 | ||
|
879a7592bd | ||
|
5a433f49f7 | ||
|
0cce956c54 | ||
|
0b6372857c | ||
|
028663de9a | ||
|
5feb3f7b4b | ||
|
7035787f38 | ||
|
7dd0f509f5 | ||
|
15947caea2 | ||
|
6aeba8f8b4 | ||
|
fd46b2c3c3 | ||
|
e502f4291e | ||
|
9c59c27eff | ||
|
daeb96ce80 | ||
|
b7e878c466 | ||
|
b76ebf5b07 | ||
|
9532776f39 | ||
|
d8e81d41e4 | ||
|
fa3aa3b36f | ||
|
e717d00d53 | ||
|
6bcaf19a1a | ||
|
bcbe8835d4 | ||
|
ed746ce13e | ||
|
07a790fc6a | ||
|
fd393a02fd | ||
|
0501d03dbb | ||
|
c9939a8cfc | ||
|
5067020a61 | ||
|
4f5334026e | ||
|
3e34dd8514 | ||
|
4df793e021 | ||
|
e0132ac4b5 | ||
|
2b3192b098 | ||
|
7ee3a6d9f8 | ||
|
e1d3ca9fc4 | ||
|
8653832551 | ||
|
c308892db0 | ||
|
1300f7f4f1 | ||
|
d9182dbfa4 | ||
|
e988c0dfe2 | ||
|
0714971f8c |
2
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
2
.github/ISSUE_TEMPLATE/issue_template.yml
vendored
@@ -21,7 +21,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Ventoy Version
|
label: Ventoy Version
|
||||||
description: What version of ventoy are you running?
|
description: What version of ventoy are you running?
|
||||||
placeholder: 1.0.87
|
placeholder: 1.0.91
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
|
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
@@ -12,26 +12,26 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Run docker-compose up
|
- name: Run docker-compose up
|
||||||
run: docker-compose up
|
run: docker-compose up
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ventoy-windows
|
name: ventoy-windows
|
||||||
path: INSTALL/ventoy-*windows*
|
path: INSTALL/ventoy-*windows*
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ventoy-linux
|
name: ventoy-linux
|
||||||
path: INSTALL/ventoy-*linux*
|
path: INSTALL/ventoy-*linux*
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ventoy-livecd
|
name: ventoy-livecd
|
||||||
path: INSTALL/ventoy-*livecd*
|
path: INSTALL/ventoy-*livecd*
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: SHA256SUM
|
name: SHA256SUM
|
||||||
path: INSTALL/sha256.txt
|
path: INSTALL/sha256.txt
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: xxx-build-log
|
name: xxx-build-log
|
||||||
path: DOC/build.log
|
path: DOC/build.log
|
||||||
|
7
DMPATCH/Makefile_IBT
Normal file
7
DMPATCH/Makefile_IBT
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
obj-m += dm_patch_ibt.o
|
||||||
|
|
||||||
|
EXTRA_CFLAGS := -Wall -DVTOY_IBT -fcf-protection=branch -mindirect-branch-register
|
||||||
|
|
||||||
|
dm_patch_ibt-objs := dmpatch.o
|
||||||
|
|
@@ -51,7 +51,9 @@ typedef struct ko_param
|
|||||||
unsigned long sym_get_size;
|
unsigned long sym_get_size;
|
||||||
unsigned long sym_put_addr;
|
unsigned long sym_put_addr;
|
||||||
unsigned long sym_put_size;
|
unsigned long sym_put_size;
|
||||||
unsigned long padding[3];
|
unsigned long kv_major;
|
||||||
|
unsigned long ibt;
|
||||||
|
unsigned long padding[1];
|
||||||
}ko_param;
|
}ko_param;
|
||||||
|
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
@@ -69,17 +71,73 @@ static volatile ko_param g_ko_param =
|
|||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CONFIG_X86_64)
|
#if defined(CONFIG_X86_64)
|
||||||
#define PATCH_OP_POS 3
|
#define PATCH_OP_POS1 3
|
||||||
#define CODE_MATCH(code, i) \
|
#define CODE_MATCH1(code, i) \
|
||||||
(code[i] == 0x40 && code[i + 1] == 0x80 && code[i + 2] == 0xce && code[i + 3] == 0x80)
|
(code[i] == 0x40 && code[i + 1] == 0x80 && code[i + 2] == 0xce && code[i + 3] == 0x80)
|
||||||
|
|
||||||
|
#define PATCH_OP_POS2 1
|
||||||
|
#define CODE_MATCH2(code, i) \
|
||||||
|
(code[i] == 0x0C && code[i + 1] == 0x80 && code[i + 2] == 0x89 && code[i + 3] == 0xC6)
|
||||||
|
|
||||||
#elif defined(CONFIG_X86_32)
|
#elif defined(CONFIG_X86_32)
|
||||||
#define PATCH_OP_POS 2
|
#define PATCH_OP_POS1 2
|
||||||
#define CODE_MATCH(code, i) \
|
#define CODE_MATCH1(code, i) \
|
||||||
(code[i] == 0x80 && code[i + 1] == 0xca && code[i + 2] == 0x80 && code[i + 3] == 0xe8)
|
(code[i] == 0x80 && code[i + 1] == 0xca && code[i + 2] == 0x80 && code[i + 3] == 0xe8)
|
||||||
|
|
||||||
|
#define PATCH_OP_POS2 2
|
||||||
|
#define CODE_MATCH2(code, i) \
|
||||||
|
(code[i] == 0x80 && code[i + 1] == 0xca && code[i + 2] == 0x80 && code[i + 3] == 0xe8)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error "unsupported arch"
|
#error "unsupported arch"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef VTOY_IBT
|
||||||
|
#ifdef CONFIG_X86_64
|
||||||
|
/* Using 64-bit values saves one instruction clearing the high half of low */
|
||||||
|
#define DECLARE_ARGS(val, low, high) unsigned long low, high
|
||||||
|
#define EAX_EDX_VAL(val, low, high) ((low) | (high) << 32)
|
||||||
|
#define EAX_EDX_RET(val, low, high) "=a" (low), "=d" (high)
|
||||||
|
#else
|
||||||
|
#define DECLARE_ARGS(val, low, high) unsigned long long val
|
||||||
|
#define EAX_EDX_VAL(val, low, high) (val)
|
||||||
|
#define EAX_EDX_RET(val, low, high) "=A" (val)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define EX_TYPE_WRMSR 8
|
||||||
|
#define EX_TYPE_RDMSR 9
|
||||||
|
#define MSR_IA32_S_CET 0x000006a2 /* kernel mode cet */
|
||||||
|
#define CET_ENDBR_EN (1ULL << 2)
|
||||||
|
|
||||||
|
/* Exception table entry */
|
||||||
|
#ifdef __ASSEMBLY__
|
||||||
|
|
||||||
|
#define _ASM_EXTABLE_TYPE(from, to, type) \
|
||||||
|
.pushsection "__ex_table","a" ; \
|
||||||
|
.balign 4 ; \
|
||||||
|
.long (from) - . ; \
|
||||||
|
.long (to) - . ; \
|
||||||
|
.long type ; \
|
||||||
|
.popsection
|
||||||
|
|
||||||
|
#else /* ! __ASSEMBLY__ */
|
||||||
|
|
||||||
|
#define _ASM_EXTABLE_TYPE(from, to, type) \
|
||||||
|
" .pushsection \"__ex_table\",\"a\"\n" \
|
||||||
|
" .balign 4\n" \
|
||||||
|
" .long (" #from ") - .\n" \
|
||||||
|
" .long (" #to ") - .\n" \
|
||||||
|
" .long " __stringify(type) " \n" \
|
||||||
|
" .popsection\n"
|
||||||
|
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
|
#endif /* VTOY_IBT */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define vdebug(fmt, args...) if(kprintf) kprintf(KERN_ERR fmt, ##args)
|
#define vdebug(fmt, args...) if(kprintf) kprintf(KERN_ERR fmt, ##args)
|
||||||
|
|
||||||
static unsigned char *g_get_patch[MAX_PATCH] = { NULL };
|
static unsigned char *g_get_patch[MAX_PATCH] = { NULL };
|
||||||
@@ -100,6 +158,7 @@ static void notrace dmpatch_restore_code(unsigned char *opCode)
|
|||||||
|
|
||||||
static int notrace dmpatch_replace_code
|
static int notrace dmpatch_replace_code
|
||||||
(
|
(
|
||||||
|
int style,
|
||||||
unsigned long addr,
|
unsigned long addr,
|
||||||
unsigned long size,
|
unsigned long size,
|
||||||
int expect,
|
int expect,
|
||||||
@@ -112,14 +171,25 @@ static int notrace dmpatch_replace_code
|
|||||||
unsigned long align;
|
unsigned long align;
|
||||||
unsigned char *opCode = (unsigned char *)addr;
|
unsigned char *opCode = (unsigned char *)addr;
|
||||||
|
|
||||||
vdebug("patch for %s 0x%lx %d\n", desc, addr, (int)size);
|
vdebug("patch for %s style[%d] 0x%lx %d\n", desc, style, addr, (int)size);
|
||||||
|
|
||||||
for (i = 0; i < (int)size - 4; i++)
|
for (i = 0; i < (int)size - 4; i++)
|
||||||
{
|
{
|
||||||
if (CODE_MATCH(opCode, i) && cnt < MAX_PATCH)
|
if (style == 1)
|
||||||
{
|
{
|
||||||
patch[cnt] = opCode + i + PATCH_OP_POS;
|
if (CODE_MATCH1(opCode, i) && cnt < MAX_PATCH)
|
||||||
cnt++;
|
{
|
||||||
|
patch[cnt] = opCode + i + PATCH_OP_POS1;
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (CODE_MATCH2(opCode, i) && cnt < MAX_PATCH)
|
||||||
|
{
|
||||||
|
patch[cnt] = opCode + i + PATCH_OP_POS2;
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,11 +213,66 @@ static int notrace dmpatch_replace_code
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef VTOY_IBT
|
||||||
|
static __always_inline unsigned long long dmpatch_rdmsr(unsigned int msr)
|
||||||
|
{
|
||||||
|
DECLARE_ARGS(val, low, high);
|
||||||
|
|
||||||
|
asm volatile("1: rdmsr\n"
|
||||||
|
"2:\n"
|
||||||
|
_ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_RDMSR)
|
||||||
|
: EAX_EDX_RET(val, low, high) : "c" (msr));
|
||||||
|
|
||||||
|
return EAX_EDX_VAL(val, low, high);
|
||||||
|
}
|
||||||
|
|
||||||
|
static __always_inline void dmpatch_wrmsr(unsigned int msr, u32 low, u32 high)
|
||||||
|
{
|
||||||
|
asm volatile("1: wrmsr\n"
|
||||||
|
"2:\n"
|
||||||
|
_ASM_EXTABLE_TYPE(1b, 2b, EX_TYPE_WRMSR)
|
||||||
|
: : "c" (msr), "a"(low), "d" (high) : "memory");
|
||||||
|
}
|
||||||
|
|
||||||
|
static u64 dmpatch_ibt_save(void)
|
||||||
|
{
|
||||||
|
u64 msr = 0;
|
||||||
|
u64 val = 0;
|
||||||
|
|
||||||
|
msr = dmpatch_rdmsr(MSR_IA32_S_CET);
|
||||||
|
val = msr & ~CET_ENDBR_EN;
|
||||||
|
dmpatch_wrmsr(MSR_IA32_S_CET, (u32)(val & 0xffffffffULL), (u32)(val >> 32));
|
||||||
|
|
||||||
|
return msr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void dmpatch_ibt_restore(u64 save)
|
||||||
|
{
|
||||||
|
u64 msr;
|
||||||
|
|
||||||
|
msr = dmpatch_rdmsr(MSR_IA32_S_CET);
|
||||||
|
|
||||||
|
msr &= ~CET_ENDBR_EN;
|
||||||
|
msr |= (save & CET_ENDBR_EN);
|
||||||
|
|
||||||
|
dmpatch_wrmsr(MSR_IA32_S_CET, (u32)(msr & 0xffffffffULL), (u32)(msr >> 32));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static u64 dmpatch_ibt_save(void) { return 0; }
|
||||||
|
static void dmpatch_ibt_restore(u64 save) { (void)save; }
|
||||||
|
#endif
|
||||||
|
|
||||||
static int notrace dmpatch_init(void)
|
static int notrace dmpatch_init(void)
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
u64 msr = 0;
|
||||||
|
|
||||||
|
if (g_ko_param.ibt == 0x8888)
|
||||||
|
{
|
||||||
|
msr = dmpatch_ibt_save();
|
||||||
|
}
|
||||||
|
|
||||||
kprintf = (printk_pf)(g_ko_param.printk_addr);
|
kprintf = (printk_pf)(g_ko_param.printk_addr);
|
||||||
|
|
||||||
vdebug("dmpatch_init start pagesize=%lu ...\n", g_ko_param.pgsize);
|
vdebug("dmpatch_init start pagesize=%lu ...\n", g_ko_param.pgsize);
|
||||||
@@ -169,7 +294,13 @@ static int notrace dmpatch_init(void)
|
|||||||
reg_kprobe = (kprobe_reg_pf)g_ko_param.reg_kprobe_addr;
|
reg_kprobe = (kprobe_reg_pf)g_ko_param.reg_kprobe_addr;
|
||||||
unreg_kprobe = (kprobe_unreg_pf)g_ko_param.unreg_kprobe_addr;
|
unreg_kprobe = (kprobe_unreg_pf)g_ko_param.unreg_kprobe_addr;
|
||||||
|
|
||||||
r = dmpatch_replace_code(g_ko_param.sym_get_addr, g_ko_param.sym_get_size, 2, "dm_get_table_device", g_get_patch);
|
r = dmpatch_replace_code(1, g_ko_param.sym_get_addr, g_ko_param.sym_get_size, 2, "dm_get_table_device", g_get_patch);
|
||||||
|
if (r && g_ko_param.kv_major >= 5)
|
||||||
|
{
|
||||||
|
vdebug("new patch dm_get_table_device...\n");
|
||||||
|
r = dmpatch_replace_code(2, g_ko_param.sym_get_addr, g_ko_param.sym_get_size, 1, "dm_get_table_device", g_get_patch);
|
||||||
|
}
|
||||||
|
|
||||||
if (r)
|
if (r)
|
||||||
{
|
{
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
@@ -177,7 +308,7 @@ static int notrace dmpatch_init(void)
|
|||||||
}
|
}
|
||||||
vdebug("patch dm_get_table_device success\n");
|
vdebug("patch dm_get_table_device success\n");
|
||||||
|
|
||||||
r = dmpatch_replace_code(g_ko_param.sym_put_addr, g_ko_param.sym_put_size, 1, "dm_put_table_device", g_put_patch);
|
r = dmpatch_replace_code(1, g_ko_param.sym_put_addr, g_ko_param.sym_put_size, 1, "dm_put_table_device", g_put_patch);
|
||||||
if (r)
|
if (r)
|
||||||
{
|
{
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
@@ -189,6 +320,11 @@ static int notrace dmpatch_init(void)
|
|||||||
vdebug("######## dm patch success ###########\n");
|
vdebug("######## dm patch success ###########\n");
|
||||||
vdebug("#####################################\n");
|
vdebug("#####################################\n");
|
||||||
|
|
||||||
|
if (g_ko_param.ibt == 0x8888)
|
||||||
|
{
|
||||||
|
dmpatch_ibt_restore(msr);
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
@@ -197,6 +333,12 @@ out:
|
|||||||
static void notrace dmpatch_exit(void)
|
static void notrace dmpatch_exit(void)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
u64 msr;
|
||||||
|
|
||||||
|
if (g_ko_param.ibt == 0x8888)
|
||||||
|
{
|
||||||
|
msr = dmpatch_ibt_save();
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_PATCH; i++)
|
for (i = 0; i < MAX_PATCH; i++)
|
||||||
{
|
{
|
||||||
@@ -205,6 +347,11 @@ static void notrace dmpatch_exit(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
vdebug("dmpatch_exit success\n");
|
vdebug("dmpatch_exit success\n");
|
||||||
|
|
||||||
|
if (g_ko_param.ibt == 0x8888)
|
||||||
|
{
|
||||||
|
dmpatch_ibt_restore(msr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(dmpatch_init);
|
module_init(dmpatch_init);
|
||||||
|
65
DMPATCH/ubuntu_build.sh
Normal file
65
DMPATCH/ubuntu_build.sh
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FTPIP=168.0.0.209
|
||||||
|
FTPUSR='a:a'
|
||||||
|
|
||||||
|
rm -f dmpatch.c Makefile Makefile_IBT
|
||||||
|
|
||||||
|
for f in dmpatch.c Makefile Makefile_IBT; do
|
||||||
|
curl -s -u $FTPUSR ftp://$FTPIP/$f -o $f
|
||||||
|
if [ -f $f ]; then
|
||||||
|
echo "download $f OK ..."
|
||||||
|
else
|
||||||
|
echo "download $f FAILED ..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rm -f *.ko
|
||||||
|
|
||||||
|
|
||||||
|
echo "build dm_patch.ko ..."
|
||||||
|
rm -rf ./aa
|
||||||
|
mkdir ./aa
|
||||||
|
|
||||||
|
cp -a *.c aa/
|
||||||
|
cp -a Makefile aa/
|
||||||
|
|
||||||
|
cd /home/panda/linux-source-5.13.0
|
||||||
|
make modules M=/home/panda/build/aa/
|
||||||
|
strip --strip-debug /home/panda/build/aa/dm_patch.ko
|
||||||
|
cd -
|
||||||
|
|
||||||
|
cp -a aa/dm_patch.ko ./
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
echo "build dm_patch_ibt.ko ..."
|
||||||
|
rm -rf ./aa
|
||||||
|
mkdir ./aa
|
||||||
|
|
||||||
|
cp -a *.c aa/
|
||||||
|
cp -a Makefile_IBT aa/Makefile
|
||||||
|
|
||||||
|
cd /home/panda/linux-source-5.13.0
|
||||||
|
make modules M=/home/panda/build/aa/
|
||||||
|
strip --strip-debug /home/panda/build/aa/dm_patch_ibt.ko
|
||||||
|
cd -
|
||||||
|
|
||||||
|
cp -a aa/dm_patch_ibt.ko ./
|
||||||
|
|
||||||
|
rm -rf ./aa
|
||||||
|
|
||||||
|
|
||||||
|
curl -s -T dm_patch.ko -u $FTPUSR ftp://$FTPIP/dm_patch_64.ko || exit 1
|
||||||
|
curl -s -T dm_patch_ibt.ko -u $FTPUSR ftp://$FTPIP/dm_patch_ibt_64.ko || exit 1
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f ./dm_patch.ko -a -f ./dm_patch_ibt.ko ]; then
|
||||||
|
echo -e "\n\n=============== SUCCESS =============\n\n"
|
||||||
|
else
|
||||||
|
echo -e "\n\n=============== FAILED ==============\n\n"
|
||||||
|
fi
|
||||||
|
|
@@ -5,7 +5,7 @@ use an old version of dmsetup
|
|||||||
http://vault.centos.org/5.3/os/SRPMS/device-mapper-1.02.28-2.el5.src.rpm
|
http://vault.centos.org/5.3/os/SRPMS/device-mapper-1.02.28-2.el5.src.rpm
|
||||||
https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz
|
https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz
|
||||||
|
|
||||||
======== Build Envrioment ========
|
======== Build Environment ========
|
||||||
build for 32bit, static linked with dietlibc
|
build for 32bit, static linked with dietlibc
|
||||||
1. install centos 6.10 i386 with CentOS-6.10-i386-bin-DVD1.iso
|
1. install centos 6.10 i386 with CentOS-6.10-i386-bin-DVD1.iso
|
||||||
2. yum install gcc kernel-devel package
|
2. yum install gcc kernel-devel package
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
==========================================
|
==========================================
|
||||||
1. Compile Enviroment
|
1. Compile Environment
|
||||||
==========================================
|
==========================================
|
||||||
My build envrioment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.
|
My build environment is CentOS 7.8 x86_64. So here I first explain how to create the build environment from scratch.
|
||||||
Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine firstly.
|
Because Ventoy is based on many open source projects, so the environment is important. I suggest you test it on a virtual machine firstly.
|
||||||
|
|
||||||
1.1 Install CentOS 7.8
|
1.1 Install CentOS 7.8
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
mv /opt/output /opt/mips64el-linux-musl-gcc730
|
mv /opt/output /opt/mips64el-linux-musl-gcc730
|
||||||
|
|
||||||
|
|
||||||
2.4 Set PATH envrioment
|
2.4 Set PATH environment
|
||||||
export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin:/opt/aarch64--uclibc--stable-2020.08-1/bin:/opt/mips64el-linux-musl-gcc730/bin
|
export PATH=$PATH:/opt/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin:/opt/aarch64--uclibc--stable-2020.08-1/bin:/opt/mips64el-linux-musl-gcc730/bin
|
||||||
better to add this line to /root/.bashrc and relogin as root
|
better to add this line to /root/.bashrc and relogin as root
|
||||||
|
|
||||||
|
@@ -1533,7 +1533,7 @@ module = {
|
|||||||
name = squash4;
|
name = squash4;
|
||||||
common = fs/squash4.c;
|
common = fs/squash4.c;
|
||||||
cflags = '$(CFLAGS_POSIX) -Wno-undef';
|
cflags = '$(CFLAGS_POSIX) -Wno-undef';
|
||||||
cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -I$(srcdir)/lib/minilzo -DMINILZO_HAVE_CONFIG_H';
|
cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -I$(srcdir)/lib/minilzo -I$(srcdir)/lib/zstd -DMINILZO_HAVE_CONFIG_H';
|
||||||
};
|
};
|
||||||
|
|
||||||
module = {
|
module = {
|
||||||
|
@@ -889,6 +889,7 @@ grub_ntfs_mount (grub_disk_t disk)
|
|||||||
struct grub_ntfs_bpb bpb;
|
struct grub_ntfs_bpb bpb;
|
||||||
struct grub_ntfs_data *data = 0;
|
struct grub_ntfs_data *data = 0;
|
||||||
grub_uint32_t spc;
|
grub_uint32_t spc;
|
||||||
|
grub_uint32_t sectors_per_cluster;
|
||||||
|
|
||||||
if (!disk)
|
if (!disk)
|
||||||
goto fail;
|
goto fail;
|
||||||
@@ -903,14 +904,18 @@ grub_ntfs_mount (grub_disk_t disk)
|
|||||||
if (grub_disk_read (disk, 0, 0, sizeof (bpb), &bpb))
|
if (grub_disk_read (disk, 0, 0, sizeof (bpb), &bpb))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
sectors_per_cluster = bpb.sectors_per_cluster;
|
||||||
|
if (sectors_per_cluster > 0x80)
|
||||||
|
sectors_per_cluster = 1U << (256U - bpb.sectors_per_cluster);
|
||||||
|
|
||||||
if (grub_memcmp ((char *) &bpb.oem_name, "NTFS", 4) != 0
|
if (grub_memcmp ((char *) &bpb.oem_name, "NTFS", 4) != 0
|
||||||
|| bpb.sectors_per_cluster == 0
|
|| sectors_per_cluster == 0
|
||||||
|| (bpb.sectors_per_cluster & (bpb.sectors_per_cluster - 1)) != 0
|
|| (sectors_per_cluster & (sectors_per_cluster - 1)) != 0
|
||||||
|| bpb.bytes_per_sector == 0
|
|| bpb.bytes_per_sector == 0
|
||||||
|| (bpb.bytes_per_sector & (bpb.bytes_per_sector - 1)) != 0)
|
|| (bpb.bytes_per_sector & (bpb.bytes_per_sector - 1)) != 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
spc = (((grub_uint32_t) bpb.sectors_per_cluster
|
spc = (((grub_uint32_t) sectors_per_cluster
|
||||||
* (grub_uint32_t) grub_le_to_cpu16 (bpb.bytes_per_sector))
|
* (grub_uint32_t) grub_le_to_cpu16 (bpb.bytes_per_sector))
|
||||||
>> GRUB_NTFS_BLK_SHR);
|
>> GRUB_NTFS_BLK_SHR);
|
||||||
if (spc == 0)
|
if (spc == 0)
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#include <grub/fshelp.h>
|
#include <grub/fshelp.h>
|
||||||
#include <grub/deflate.h>
|
#include <grub/deflate.h>
|
||||||
#include <minilzo.h>
|
#include <minilzo.h>
|
||||||
|
#include <zstd.h>
|
||||||
|
|
||||||
#include "xz.h"
|
#include "xz.h"
|
||||||
#include "xz_stream.h"
|
#include "xz_stream.h"
|
||||||
@@ -184,6 +185,7 @@ enum
|
|||||||
COMPRESSION_LZO = 3,
|
COMPRESSION_LZO = 3,
|
||||||
COMPRESSION_XZ = 4,
|
COMPRESSION_XZ = 4,
|
||||||
COMPRESSION_LZ4 = 5,
|
COMPRESSION_LZ4 = 5,
|
||||||
|
COMPRESSION_ZSTD = 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -398,6 +400,25 @@ static grub_ssize_t lz4_decompress_wrap(char *inbuf, grub_size_t insize, grub_of
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static grub_ssize_t zstd_decompress_wrap(char *inbuf, grub_size_t insize, grub_off_t off,
|
||||||
|
char *outbuf, grub_size_t len, struct grub_squash_data *data)
|
||||||
|
{
|
||||||
|
char *udata = NULL;
|
||||||
|
int usize = data->blksz;
|
||||||
|
if (usize < 8192)
|
||||||
|
usize = 8192;
|
||||||
|
|
||||||
|
udata = grub_malloc (usize);
|
||||||
|
if (!udata)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
ZSTD_decompress(udata, usize, inbuf, insize);
|
||||||
|
grub_memcpy(outbuf, udata + off, len);
|
||||||
|
grub_free(udata);
|
||||||
|
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
static struct grub_squash_data *
|
static struct grub_squash_data *
|
||||||
squash_mount (grub_disk_t disk)
|
squash_mount (grub_disk_t disk)
|
||||||
{
|
{
|
||||||
@@ -447,6 +468,9 @@ squash_mount (grub_disk_t disk)
|
|||||||
case grub_cpu_to_le16_compile_time (COMPRESSION_LZ4):
|
case grub_cpu_to_le16_compile_time (COMPRESSION_LZ4):
|
||||||
data->decompress = lz4_decompress_wrap;
|
data->decompress = lz4_decompress_wrap;
|
||||||
break;
|
break;
|
||||||
|
case grub_cpu_to_le16_compile_time (COMPRESSION_ZSTD):
|
||||||
|
data->decompress = zstd_decompress_wrap;
|
||||||
|
break;
|
||||||
case grub_cpu_to_le16_compile_time (COMPRESSION_XZ):
|
case grub_cpu_to_le16_compile_time (COMPRESSION_XZ):
|
||||||
data->decompress = xz_decompress;
|
data->decompress = xz_decompress;
|
||||||
data->xzbuf = grub_malloc (XZBUFSIZ);
|
data->xzbuf = grub_malloc (XZBUFSIZ);
|
||||||
@@ -519,7 +543,7 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir,
|
|||||||
break;
|
break;
|
||||||
case grub_cpu_to_le16_compile_time (SQUASH_TYPE_LONG_DIR):
|
case grub_cpu_to_le16_compile_time (SQUASH_TYPE_LONG_DIR):
|
||||||
off = grub_le_to_cpu16 (dir->ino.long_dir.offset);
|
off = grub_le_to_cpu16 (dir->ino.long_dir.offset);
|
||||||
endoff = grub_le_to_cpu16 (dir->ino.long_dir.size) + off - 3;
|
endoff = grub_le_to_cpu32 (dir->ino.long_dir.size) + off - 3;
|
||||||
chunk = grub_le_to_cpu32 (dir->ino.long_dir.chunk);
|
chunk = grub_le_to_cpu32 (dir->ino.long_dir.chunk);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@@ -734,6 +734,11 @@ read_property (struct parsebuf *p)
|
|||||||
"%s:%d:%d property value invalid; "
|
"%s:%d:%d property value invalid; "
|
||||||
"enclose literal values in quotes (\")",
|
"enclose literal values in quotes (\")",
|
||||||
p->filename, p->line_num, p->col_num);
|
p->filename, p->line_num, p->col_num);
|
||||||
|
|
||||||
|
grub_printf("File: %s\nLine:%d Column:%d\n"
|
||||||
|
"property value invalid; enclose literal values in quotes (\")\n\n",
|
||||||
|
p->filename, p->line_num, p->col_num);
|
||||||
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -229,10 +229,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
|||||||
if (! file)
|
if (! file)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
/* Get the root device's device path. */
|
dev = file->device;
|
||||||
dev = grub_device_open (0);
|
|
||||||
if (! dev)
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
if (dev->disk)
|
if (dev->disk)
|
||||||
dev_handle = grub_efidisk_get_device_handle (dev->disk);
|
dev_handle = grub_efidisk_get_device_handle (dev->disk);
|
||||||
@@ -257,16 +254,13 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
|||||||
if (dev_handle)
|
if (dev_handle)
|
||||||
dp = grub_efi_get_device_path (dev_handle);
|
dp = grub_efi_get_device_path (dev_handle);
|
||||||
|
|
||||||
if (! dp)
|
if (dp != NULL)
|
||||||
{
|
{
|
||||||
grub_error (GRUB_ERR_BAD_DEVICE, "not a valid root device");
|
file_path = make_file_path (dp, filename);
|
||||||
goto fail;
|
if (! file_path)
|
||||||
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
file_path = make_file_path (dp, filename);
|
|
||||||
if (! file_path)
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
//grub_printf ("file path: ");
|
//grub_printf ("file path: ");
|
||||||
//grub_efi_print_device_path (file_path);
|
//grub_efi_print_device_path (file_path);
|
||||||
|
|
||||||
@@ -390,16 +384,12 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)),
|
|||||||
}
|
}
|
||||||
|
|
||||||
grub_file_close (file);
|
grub_file_close (file);
|
||||||
grub_device_close (dev);
|
|
||||||
|
|
||||||
grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0);
|
grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
|
||||||
if (dev)
|
|
||||||
grub_device_close (dev);
|
|
||||||
|
|
||||||
if (file)
|
if (file)
|
||||||
grub_file_close (file);
|
grub_file_close (file);
|
||||||
|
|
||||||
|
@@ -88,6 +88,8 @@ static int ventoy_linux_argc = 0;
|
|||||||
static char **ventoy_linux_args = NULL;
|
static char **ventoy_linux_args = NULL;
|
||||||
static int ventoy_extra_initrd_num = 0;
|
static int ventoy_extra_initrd_num = 0;
|
||||||
static char *ventoy_extra_initrd_list[256];
|
static char *ventoy_extra_initrd_list[256];
|
||||||
|
static grub_command_func_t ventoy_linux16_func = NULL;
|
||||||
|
static grub_command_func_t ventoy_initrd16_func = NULL;
|
||||||
static grub_err_t
|
static grub_err_t
|
||||||
grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[]);
|
grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[]);
|
||||||
|
|
||||||
@@ -667,54 +669,6 @@ static int ventoy_bootopt_hook(int argc, char *argv[])
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static grub_err_t
|
|
||||||
grub_cmd_set_boot_opt (grub_command_t cmd __attribute__ ((unused)),
|
|
||||||
int argc, char *argv[])
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
const char *vtdebug;
|
|
||||||
|
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
{
|
|
||||||
ventoy_linux_args[ventoy_linux_argc + (LINUX_MAX_ARGC / 2) ] = grub_strdup(argv[i]);
|
|
||||||
ventoy_linux_argc++;
|
|
||||||
}
|
|
||||||
|
|
||||||
vtdebug = grub_env_get("vtdebug_flag");
|
|
||||||
if (vtdebug && vtdebug[0])
|
|
||||||
{
|
|
||||||
ventoy_debug = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ventoy_debug) grub_printf("ventoy set boot opt %d\n", ventoy_linux_argc);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static grub_err_t
|
|
||||||
grub_cmd_unset_boot_opt (grub_command_t cmd __attribute__ ((unused)),
|
|
||||||
int argc, char *argv[])
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
(void)argc;
|
|
||||||
(void)argv;
|
|
||||||
|
|
||||||
for (i = 0; i < LINUX_MAX_ARGC; i++)
|
|
||||||
{
|
|
||||||
if (ventoy_linux_args[i])
|
|
||||||
{
|
|
||||||
grub_free(ventoy_linux_args[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ventoy_debug = 0;
|
|
||||||
ventoy_linux_argc = 0;
|
|
||||||
ventoy_initrd_called = 0;
|
|
||||||
grub_memset(ventoy_linux_args, 0, sizeof(char *) * LINUX_MAX_ARGC);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static grub_err_t
|
static grub_err_t
|
||||||
grub_cmd_extra_initrd_append (grub_command_t cmd __attribute__ ((unused)),
|
grub_cmd_extra_initrd_append (grub_command_t cmd __attribute__ ((unused)),
|
||||||
int argc, char *argv[])
|
int argc, char *argv[])
|
||||||
@@ -1576,6 +1530,92 @@ ventoy_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
|
|||||||
return grub_cmd_initrd(cmd, ventoy_extra_initrd_num, ventoy_extra_initrd_list);
|
return grub_cmd_initrd(cmd, ventoy_extra_initrd_num, ventoy_extra_initrd_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static grub_err_t
|
||||||
|
grub_cmd_set_boot_opt (grub_command_t cmd __attribute__ ((unused)),
|
||||||
|
int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
const char *vtdebug;
|
||||||
|
grub_command_t regcmd;
|
||||||
|
|
||||||
|
for (i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
ventoy_linux_args[ventoy_linux_argc + (LINUX_MAX_ARGC / 2) ] = grub_strdup(argv[i]);
|
||||||
|
ventoy_linux_argc++;
|
||||||
|
}
|
||||||
|
|
||||||
|
vtdebug = grub_env_get("vtdebug_flag");
|
||||||
|
if (vtdebug && vtdebug[0])
|
||||||
|
{
|
||||||
|
ventoy_debug = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ventoy_debug) grub_printf("ventoy set boot opt %d\n", ventoy_linux_argc);
|
||||||
|
|
||||||
|
ventoy_linux16_func = ventoy_initrd16_func = NULL;
|
||||||
|
regcmd = grub_command_find("linux16");
|
||||||
|
if (regcmd)
|
||||||
|
{
|
||||||
|
ventoy_linux16_func = regcmd->func;
|
||||||
|
regcmd->func = grub_cmd_linux;
|
||||||
|
}
|
||||||
|
|
||||||
|
regcmd = grub_command_find("initrd16");
|
||||||
|
if (regcmd)
|
||||||
|
{
|
||||||
|
ventoy_initrd16_func = regcmd->func;
|
||||||
|
regcmd->func = ventoy_cmd_initrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_err_t
|
||||||
|
grub_cmd_unset_boot_opt (grub_command_t cmd __attribute__ ((unused)),
|
||||||
|
int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
grub_command_t regcmd;
|
||||||
|
|
||||||
|
(void)argc;
|
||||||
|
(void)argv;
|
||||||
|
|
||||||
|
for (i = 0; i < LINUX_MAX_ARGC; i++)
|
||||||
|
{
|
||||||
|
if (ventoy_linux_args[i])
|
||||||
|
{
|
||||||
|
grub_free(ventoy_linux_args[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_debug = 0;
|
||||||
|
ventoy_linux_argc = 0;
|
||||||
|
ventoy_initrd_called = 0;
|
||||||
|
grub_memset(ventoy_linux_args, 0, sizeof(char *) * LINUX_MAX_ARGC);
|
||||||
|
|
||||||
|
if (ventoy_linux16_func)
|
||||||
|
{
|
||||||
|
regcmd = grub_command_find("linux16");
|
||||||
|
if (regcmd)
|
||||||
|
{
|
||||||
|
regcmd->func = ventoy_linux16_func;
|
||||||
|
}
|
||||||
|
ventoy_linux16_func = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ventoy_initrd16_func)
|
||||||
|
{
|
||||||
|
regcmd = grub_command_find("initrd16");
|
||||||
|
if (regcmd)
|
||||||
|
{
|
||||||
|
regcmd->func = ventoy_initrd16_func;
|
||||||
|
}
|
||||||
|
ventoy_initrd16_func = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static grub_command_t cmd_linux, cmd_initrd, cmd_linuxefi, cmd_initrdefi;
|
static grub_command_t cmd_linux, cmd_initrd, cmd_linuxefi, cmd_initrdefi;
|
||||||
static grub_command_t cmd_set_bootopt, cmd_unset_bootopt, cmd_extra_initrd_append, cmd_extra_initrd_reset;
|
static grub_command_t cmd_set_bootopt, cmd_unset_bootopt, cmd_extra_initrd_append, cmd_extra_initrd_reset;
|
||||||
|
@@ -951,12 +951,12 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
|
|||||||
menu_fini ();
|
menu_fini ();
|
||||||
if (g_ventoy_terminal_output == 0)
|
if (g_ventoy_terminal_output == 0)
|
||||||
{
|
{
|
||||||
grub_script_execute_sourcecode("terminal_output console");
|
grub_script_execute_sourcecode("vt_push_menu_lang en_US\nterminal_output console");
|
||||||
g_ventoy_terminal_output = 1;
|
g_ventoy_terminal_output = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
grub_script_execute_sourcecode("terminal_output gfxterm");
|
grub_script_execute_sourcecode("terminal_output gfxterm\nvt_pop_menu_lang");
|
||||||
g_ventoy_terminal_output = 0;
|
g_ventoy_terminal_output = 0;
|
||||||
}
|
}
|
||||||
goto refresh;
|
goto refresh;
|
||||||
|
@@ -392,6 +392,11 @@ static int ventoy_browser_iterate_dir(const char *filename, const struct grub_di
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grub_file_is_vlnk_suffix(filename, len))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
node = grub_zalloc(sizeof(browser_node));
|
node = grub_zalloc(sizeof(browser_node));
|
||||||
if (!node)
|
if (!node)
|
||||||
{
|
{
|
||||||
|
@@ -158,7 +158,9 @@ const char *g_menu_prefix[img_type_max] =
|
|||||||
"iso", "wim", "efi", "img", "vhd", "vtoy"
|
"iso", "wim", "efi", "img", "vhd", "vtoy"
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *g_lower_chksum_name[] = { "md5", "sha1", "sha256", "sha512" };
|
static const char *g_lower_chksum_name[VTOY_CHKSUM_NUM] = { "md5", "sha1", "sha256", "sha512" };
|
||||||
|
static int g_lower_chksum_namelen[VTOY_CHKSUM_NUM] = { 3, 4, 6, 6 };
|
||||||
|
static int g_chksum_retlen[VTOY_CHKSUM_NUM] = { 32, 40, 64, 128 };
|
||||||
|
|
||||||
static int g_vtoy_secondary_need_recover = 0;
|
static int g_vtoy_secondary_need_recover = 0;
|
||||||
|
|
||||||
@@ -1765,6 +1767,10 @@ static int ventoy_check_vlnk_data(ventoy_vlnk *vlnk, int print, char *dst, int s
|
|||||||
cur->fs->fs_close(&file);
|
cur->fs->fs_close(&file);
|
||||||
grub_snprintf(dst, size - 1, "(%s)%s", cur->device, vlnk->filepath);
|
grub_snprintf(dst, size - 1, "(%s)%s", cur->device, vlnk->filepath);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_errno = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6305,36 +6311,6 @@ static grub_err_t ventoy_cmd_load_menu_lang(grub_extcmd_context_t ctxt, int argc
|
|||||||
VENTOY_CMD_RETURN(0);
|
VENTOY_CMD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static grub_err_t ventoy_cmd_vtoychksum_exist(grub_extcmd_context_t ctxt, int argc, char **args)
|
|
||||||
{
|
|
||||||
int cnt;
|
|
||||||
char c;
|
|
||||||
char *pos = NULL;
|
|
||||||
|
|
||||||
(void)ctxt;
|
|
||||||
(void)argc;
|
|
||||||
|
|
||||||
cnt = ventoy_str_chrcnt(args[1], '/');
|
|
||||||
if (cnt > 1)
|
|
||||||
{
|
|
||||||
pos = grub_strrchr(args[1], '/');
|
|
||||||
c = *pos;
|
|
||||||
*pos = 0;
|
|
||||||
if (ventoy_check_file_exist("%s%s/VENTOY_CHECKSUM", args[0], args[1]))
|
|
||||||
{
|
|
||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
|
||||||
}
|
|
||||||
*pos = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ventoy_check_file_exist("%s/VENTOY_CHECKSUM", args[0]))
|
|
||||||
{
|
|
||||||
VENTOY_CMD_RETURN(GRUB_ERR_NONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ventoy_chksum_pathcmp(int chktype, char *rlpath, char *rdpath)
|
static int ventoy_chksum_pathcmp(int chktype, char *rlpath, char *rdpath)
|
||||||
{
|
{
|
||||||
char *pos1 = NULL;
|
char *pos1 = NULL;
|
||||||
@@ -6485,13 +6461,12 @@ static grub_err_t ventoy_cmd_cmp_checksum(grub_extcmd_context_t ctxt, int argc,
|
|||||||
char fchksum[64];
|
char fchksum[64];
|
||||||
char readchk[256] = {0};
|
char readchk[256] = {0};
|
||||||
char filebuf[512] = {0};
|
char filebuf[512] = {0};
|
||||||
int retlen[] = { 32, 40, 64, 128 };
|
|
||||||
char uchkname[16];
|
char uchkname[16];
|
||||||
|
|
||||||
(void)ctxt;
|
(void)ctxt;
|
||||||
|
|
||||||
index = (int)grub_strtol(args[0], NULL, 10);
|
index = (int)grub_strtol(args[0], NULL, 10);
|
||||||
if (argc != 2 || index < 0 || index >= (int)ARRAY_SIZE(retlen))
|
if (argc != 2 || index < 0 || index >= VTOY_CHKSUM_NUM)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -6519,17 +6494,17 @@ static grub_err_t ventoy_cmd_cmp_checksum(grub_extcmd_context_t ctxt, int argc,
|
|||||||
if (pos)
|
if (pos)
|
||||||
{
|
{
|
||||||
VTOY_SKIP_SPACE_NEXT(pos, 1);
|
VTOY_SKIP_SPACE_NEXT(pos, 1);
|
||||||
grub_memcpy(readchk, pos, retlen[index]);
|
grub_memcpy(readchk, pos, g_chksum_retlen[index]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
grub_memcpy(readchk, filebuf, retlen[index]);
|
grub_memcpy(readchk, filebuf, g_chksum_retlen[index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (chktype == 3 || chktype == 4)
|
else if (chktype == 3 || chktype == 4)
|
||||||
{
|
{
|
||||||
grub_snprintf(fchksum, sizeof(fchksum), "global VENTOY_CHECKSUM");
|
grub_snprintf(fchksum, sizeof(fchksum), "global VENTOY_CHECKSUM");
|
||||||
ventoy_find_checksum(file, uchkname, retlen[index], args[1], chktype, readchk);
|
ventoy_find_checksum(file, uchkname, g_chksum_retlen[index], args[1], chktype, readchk);
|
||||||
if (readchk[0] == 0)
|
if (readchk[0] == 0)
|
||||||
{
|
{
|
||||||
grub_printf("\n\n%s value not found in %s.\n", uchkname, fchksum);
|
grub_printf("\n\n%s value not found in %s.\n", uchkname, fchksum);
|
||||||
@@ -6539,7 +6514,7 @@ static grub_err_t ventoy_cmd_cmp_checksum(grub_extcmd_context_t ctxt, int argc,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
grub_snprintf(fchksum, sizeof(fchksum), "local VENTOY_CHECKSUM");
|
grub_snprintf(fchksum, sizeof(fchksum), "local VENTOY_CHECKSUM");
|
||||||
ventoy_find_checksum(file, uchkname, retlen[index], args[1], chktype, readchk);
|
ventoy_find_checksum(file, uchkname, g_chksum_retlen[index], args[1], chktype, readchk);
|
||||||
if (readchk[0] == 0)
|
if (readchk[0] == 0)
|
||||||
{
|
{
|
||||||
grub_file_close(file);
|
grub_file_close(file);
|
||||||
@@ -6547,7 +6522,7 @@ static grub_err_t ventoy_cmd_cmp_checksum(grub_extcmd_context_t ctxt, int argc,
|
|||||||
if (file)
|
if (file)
|
||||||
{
|
{
|
||||||
grub_snprintf(fchksum, sizeof(fchksum), "global VENTOY_CHECKSUM");
|
grub_snprintf(fchksum, sizeof(fchksum), "global VENTOY_CHECKSUM");
|
||||||
ventoy_find_checksum(file, uchkname, retlen[index], args[1], 3, readchk);
|
ventoy_find_checksum(file, uchkname, g_chksum_retlen[index], args[1], 3, readchk);
|
||||||
if (readchk[0] == 0)
|
if (readchk[0] == 0)
|
||||||
{
|
{
|
||||||
grub_printf("\n\n%s value not found in both local and global VENTOY_CHECKSUM.\n", uchkname);
|
grub_printf("\n\n%s value not found in both local and global VENTOY_CHECKSUM.\n", uchkname);
|
||||||
@@ -6573,6 +6548,181 @@ end:
|
|||||||
VENTOY_CMD_RETURN(0);
|
VENTOY_CMD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ventoy_find_all_checksum
|
||||||
|
(
|
||||||
|
grub_file_t file,
|
||||||
|
char *path,
|
||||||
|
int chktype,
|
||||||
|
int exists[VTOY_CHKSUM_NUM],
|
||||||
|
int *ptotexist
|
||||||
|
)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int ulen;
|
||||||
|
int tot = 0;
|
||||||
|
char c = 0;
|
||||||
|
char *pos = NULL;
|
||||||
|
char *pos1 = NULL;
|
||||||
|
char *pos2 = NULL;
|
||||||
|
char *buf = NULL;
|
||||||
|
char *currline = NULL;
|
||||||
|
char *nextline = NULL;
|
||||||
|
const char *uname = NULL;
|
||||||
|
|
||||||
|
tot = *ptotexist;
|
||||||
|
|
||||||
|
/* read file to buffer */
|
||||||
|
buf = grub_malloc(file->size + 4);
|
||||||
|
if (!buf)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
grub_file_read(file, buf, file->size);
|
||||||
|
buf[file->size] = 0;
|
||||||
|
|
||||||
|
/* parse each line */
|
||||||
|
for (currline = buf; currline; currline = nextline)
|
||||||
|
{
|
||||||
|
nextline = ventoy_get_line(currline);
|
||||||
|
VTOY_SKIP_SPACE(currline);
|
||||||
|
|
||||||
|
for (i = 0; i < VTOY_CHKSUM_NUM; i++)
|
||||||
|
{
|
||||||
|
if (exists[i])
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
uname = g_lower_chksum_name[i];
|
||||||
|
ulen = g_lower_chksum_namelen[i];
|
||||||
|
|
||||||
|
if (grub_strncasecmp(currline, uname, ulen) == 0)
|
||||||
|
{
|
||||||
|
pos = grub_strchr(currline, '=');
|
||||||
|
pos1 = grub_strchr(currline, '(');
|
||||||
|
pos2 = grub_strchr(currline, ')');
|
||||||
|
|
||||||
|
if (pos && pos1 && pos2)
|
||||||
|
{
|
||||||
|
c = *pos2;
|
||||||
|
*pos2 = 0;
|
||||||
|
if (ventoy_chksum_pathcmp(chktype, path, pos1 + 1) == 0)
|
||||||
|
{
|
||||||
|
exists[i] = 1;
|
||||||
|
tot++;
|
||||||
|
}
|
||||||
|
*pos2 = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ventoy_str_len_alnum(currline, g_chksum_retlen[i]))
|
||||||
|
{
|
||||||
|
VTOY_SKIP_SPACE_NEXT_EX(pos, currline, g_chksum_retlen[i]);
|
||||||
|
if (ventoy_chksum_pathcmp(chktype, path, pos) == 0)
|
||||||
|
{
|
||||||
|
exists[i] = 1;
|
||||||
|
tot++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tot >= VTOY_CHKSUM_NUM)
|
||||||
|
{
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
|
|
||||||
|
*ptotexist = tot;
|
||||||
|
grub_free(buf);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static grub_err_t ventoy_cmd_vtoychksum_exist(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
int cnt = 0;
|
||||||
|
char c = 0;
|
||||||
|
int tip = 0;
|
||||||
|
char *pos = NULL;
|
||||||
|
grub_file_t file = NULL;
|
||||||
|
const char *isopart = NULL;
|
||||||
|
int exists[VTOY_CHKSUM_NUM] = { 0, 0, 0, 0 };
|
||||||
|
int totexist = 0;
|
||||||
|
|
||||||
|
(void)argc;
|
||||||
|
(void)ctxt;
|
||||||
|
|
||||||
|
isopart = grub_env_get("vtoy_iso_part");
|
||||||
|
|
||||||
|
for (i = 0; i < VTOY_CHKSUM_NUM; i++)
|
||||||
|
{
|
||||||
|
if (ventoy_check_file_exist("%s%s.%s", isopart, args[0], g_lower_chksum_name[i]))
|
||||||
|
{
|
||||||
|
exists[i] = 1;
|
||||||
|
totexist++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (totexist == VTOY_CHKSUM_NUM)
|
||||||
|
{
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
cnt = ventoy_str_chrcnt(args[0], '/');
|
||||||
|
if (cnt > 1)
|
||||||
|
{
|
||||||
|
pos = grub_strrchr(args[0], '/');
|
||||||
|
c = *pos;
|
||||||
|
*pos = 0;
|
||||||
|
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s%s/VENTOY_CHECKSUM", isopart, args[0]);
|
||||||
|
*pos = c;
|
||||||
|
|
||||||
|
if (file)
|
||||||
|
{
|
||||||
|
if (tip == 0 && file->size > (32 * VTOY_SIZE_1KB))
|
||||||
|
{
|
||||||
|
tip = 1;
|
||||||
|
grub_printf("Reading checksum file...\n");
|
||||||
|
grub_refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("parse local VENTOY_CHECKSUM\n");
|
||||||
|
ventoy_find_all_checksum(file, args[0], 2, exists, &totexist);
|
||||||
|
grub_file_close(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (totexist == VTOY_CHKSUM_NUM)
|
||||||
|
{
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
file = ventoy_grub_file_open(VENTOY_FILE_TYPE, "%s/VENTOY_CHECKSUM", isopart);
|
||||||
|
if (file)
|
||||||
|
{
|
||||||
|
if (tip == 0 && file->size > (32 * VTOY_SIZE_1KB))
|
||||||
|
{
|
||||||
|
tip = 1;
|
||||||
|
grub_printf("Reading checksum file...\n");
|
||||||
|
grub_refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("parse global VENTOY_CHECKSUM\n");
|
||||||
|
ventoy_find_all_checksum(file, args[0], (cnt > 1) ? 3 : 4, exists, &totexist);
|
||||||
|
grub_file_close(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
|
|
||||||
|
ventoy_env_int_set("VT_EXIST_MD5", exists[0]);
|
||||||
|
ventoy_env_int_set("VT_EXIST_SHA1", exists[1]);
|
||||||
|
ventoy_env_int_set("VT_EXIST_SHA256", exists[2]);
|
||||||
|
ventoy_env_int_set("VT_EXIST_SHA512", exists[3]);
|
||||||
|
|
||||||
|
VENTOY_CMD_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const char * ventoy_menu_lang_read_hook(struct grub_env_var *var, const char *val)
|
static const char * ventoy_menu_lang_read_hook(struct grub_env_var *var, const char *val)
|
||||||
{
|
{
|
||||||
@@ -6805,6 +6955,8 @@ static cmd_para ventoy_cmds[] =
|
|||||||
{ "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
|
{ "vt_cur_menu_lang", ventoy_cmd_cur_menu_lang, 0, NULL, "", "", NULL },
|
||||||
{ "vt_vtoychksum_exist", ventoy_cmd_vtoychksum_exist, 0, NULL, "", "", NULL },
|
{ "vt_vtoychksum_exist", ventoy_cmd_vtoychksum_exist, 0, NULL, "", "", NULL },
|
||||||
{ "vt_cmp_checksum", ventoy_cmd_cmp_checksum, 0, NULL, "", "", NULL },
|
{ "vt_cmp_checksum", ventoy_cmd_cmp_checksum, 0, NULL, "", "", NULL },
|
||||||
|
{ "vt_push_menu_lang", ventoy_cmd_push_menulang, 0, NULL, "", "", NULL },
|
||||||
|
{ "vt_pop_menu_lang", ventoy_cmd_pop_menulang, 0, NULL, "", "", NULL },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -62,6 +62,8 @@
|
|||||||
|
|
||||||
#define VTOY_WARNING "!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!"
|
#define VTOY_WARNING "!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!"
|
||||||
|
|
||||||
|
#define VTOY_CHKSUM_NUM 4
|
||||||
|
|
||||||
#define VTOY_PLAT_I386_UEFI 0x49413332
|
#define VTOY_PLAT_I386_UEFI 0x49413332
|
||||||
#define VTOY_PLAT_ARM64_UEFI 0x41413634
|
#define VTOY_PLAT_ARM64_UEFI 0x41413634
|
||||||
#define VTOY_PLAT_X86_64_UEFI 0x55454649
|
#define VTOY_PLAT_X86_64_UEFI 0x55454649
|
||||||
@@ -1311,6 +1313,8 @@ grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char *
|
|||||||
extern int ventoy_menu_push_key(int code);
|
extern int ventoy_menu_push_key(int code);
|
||||||
int ventoy_ctrl_var_init(void);
|
int ventoy_ctrl_var_init(void);
|
||||||
int ventoy_global_var_init(void);
|
int ventoy_global_var_init(void);
|
||||||
|
grub_err_t ventoy_cmd_push_menulang(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
|
grub_err_t ventoy_cmd_pop_menulang(grub_extcmd_context_t ctxt, int argc, char **args);
|
||||||
|
|
||||||
#endif /* __VENTOY_DEF_H__ */
|
#endif /* __VENTOY_DEF_H__ */
|
||||||
|
|
||||||
|
@@ -66,6 +66,7 @@ static theme_list *g_theme_head = NULL;
|
|||||||
static int g_theme_random = vtoy_theme_random_boot_second;
|
static int g_theme_random = vtoy_theme_random_boot_second;
|
||||||
static char g_theme_single_file[256];
|
static char g_theme_single_file[256];
|
||||||
static char g_cur_menu_language[32] = {0};
|
static char g_cur_menu_language[32] = {0};
|
||||||
|
static char g_push_menu_language[32] = {0};
|
||||||
|
|
||||||
static int ventoy_plugin_is_parent(const char *pat, int patlen, const char *isopath)
|
static int ventoy_plugin_is_parent(const char *pat, int patlen, const char *isopath)
|
||||||
{
|
{
|
||||||
@@ -3624,3 +3625,33 @@ grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char *
|
|||||||
VENTOY_CMD_RETURN(0);
|
VENTOY_CMD_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
grub_err_t ventoy_cmd_push_menulang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
(void)argc;
|
||||||
|
(void)ctxt;
|
||||||
|
|
||||||
|
if (g_push_menu_language[0] == 0)
|
||||||
|
{
|
||||||
|
grub_memcpy(g_push_menu_language, g_cur_menu_language, sizeof(g_push_menu_language));
|
||||||
|
ventoy_plugin_load_menu_lang(0, args[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
VENTOY_CMD_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
grub_err_t ventoy_cmd_pop_menulang(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||||
|
{
|
||||||
|
(void)argc;
|
||||||
|
(void)ctxt;
|
||||||
|
(void)args;
|
||||||
|
|
||||||
|
if (g_push_menu_language[0])
|
||||||
|
{
|
||||||
|
ventoy_plugin_load_menu_lang(0, g_push_menu_language);
|
||||||
|
g_push_menu_language[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VENTOY_CMD_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -262,6 +262,10 @@ static int ventoy_vhd_patch_disk(const char *vhdpath, ventoy_patch_vhd *patch1,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (offset == 0)
|
||||||
|
{
|
||||||
|
offset = gpt->MBR.PartTbl[partIndex].StartSectorId;
|
||||||
|
}
|
||||||
offset *= 512;
|
offset *= 512;
|
||||||
debug("MBR disk signature: %02x%02x%02x%02x Part(%d) offset:%llu\n",
|
debug("MBR disk signature: %02x%02x%02x%02x Part(%d) offset:%llu\n",
|
||||||
gpt->MBR.BootCode[0x1b8 + 0], gpt->MBR.BootCode[0x1b8 + 1],
|
gpt->MBR.BootCode[0x1b8 + 0], gpt->MBR.BootCode[0x1b8 + 1],
|
||||||
|
BIN
ICON/filechecksum.gif
Normal file
BIN
ICON/filechecksum.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 437 KiB |
32
IMG/cpio/ventoy/hook/chimera/disk_hook.sh
Normal file
32
IMG/cpio/ventoy/hook/chimera/disk_hook.sh
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
for i in 0 1 2 3 4 5 6 7 8 9; do
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
vtlog "wait for disk ..."
|
||||||
|
$SLEEP 3
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2"
|
22
IMG/cpio/ventoy/hook/chimera/ventoy-hook.sh
Normal file
22
IMG/cpio/ventoy/hook/chimera/ventoy-hook.sh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. $VTOY_PATH/hook/ventoy-os-lib.sh
|
||||||
|
|
||||||
|
$SED "/maybe_break *premount/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/chimera/disk_hook.sh" -i /init
|
@@ -26,6 +26,10 @@ ventoy_get_debian_distro() {
|
|||||||
if $EGREP -q "ID=.*antix|ID=.*mx" /etc/initrd-release; then
|
if $EGREP -q "ID=.*antix|ID=.*mx" /etc/initrd-release; then
|
||||||
echo 'antix'; return
|
echo 'antix'; return
|
||||||
fi
|
fi
|
||||||
|
elif [ -e /etc/initrd_release ]; then
|
||||||
|
if $EGREP -q "ID=.*antix|ID=.*mx" /etc/initrd_release; then
|
||||||
|
echo 'antix'; return
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e /DISTRO_SPECS ]; then
|
if [ -e /DISTRO_SPECS ]; then
|
||||||
|
40
IMG/cpio/ventoy/hook/deepin/disk_mount_hook.sh
Normal file
40
IMG/cpio/ventoy/hook/deepin/disk_mount_hook.sh
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
vtlog "####### $0 $* ########"
|
||||||
|
|
||||||
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
wait_for_usb_disk_ready
|
||||||
|
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
vtlog "ventoy disk not found"
|
||||||
|
PATH=$VTPATH_OLD
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
vtlog "${vtdiskname#/dev/}2 found..."
|
||||||
|
$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/udev_disk_hook.sh "${vtdiskname#/dev/}2"
|
||||||
|
|
||||||
|
if [ -f /ventoy/autoinstall ]; then
|
||||||
|
sh /ventoy/hook/default/auto_install_varexp.sh /ventoy/autoinstall
|
||||||
|
fi
|
151
IMG/cpio/ventoy/hook/deepin/udev_disk_hook.sh
Normal file
151
IMG/cpio/ventoy/hook/deepin/udev_disk_hook.sh
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
ventoy_os_install_dmsetup() {
|
||||||
|
|
||||||
|
vtlog "ventoy_os_install_dmsetup $1 ..."
|
||||||
|
|
||||||
|
vt_usb_disk=$1
|
||||||
|
|
||||||
|
# dump iso file location
|
||||||
|
$VTOY_PATH/tool/vtoydm -i -f $VTOY_PATH/ventoy_image_map -d ${vt_usb_disk} > $VTOY_PATH/iso_file_list
|
||||||
|
|
||||||
|
# install dmsetup
|
||||||
|
LINE=$($GREP ' dmsetup.*\.udeb' $VTOY_PATH/iso_file_list)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
install_udeb_from_line "$LINE" ${vt_usb_disk}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install libdevmapper
|
||||||
|
LINE=$($GREP ' libdevmapper.*\.udeb' $VTOY_PATH/iso_file_list)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
install_udeb_from_line "$LINE" ${vt_usb_disk}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install md-modules
|
||||||
|
LINE=$($GREP -i ' md-modules.*\.udeb' $VTOY_PATH/iso_file_list)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
LINTCNT=$($GREP -i -c ' md-modules.*\.udeb' $VTOY_PATH/iso_file_list)
|
||||||
|
if [ $LINTCNT -gt 1 ]; then
|
||||||
|
vtlog "more than one pkgs, need to filter..."
|
||||||
|
VER=$($BUSYBOX_PATH/uname -r)
|
||||||
|
|
||||||
|
LINE=$($GREP -i ' md-modules.*\.udeb' $VTOY_PATH/iso_file_list | $GREP -i $VER)
|
||||||
|
LINTCNT=$($GREP -i ' md-modules.*\.udeb' $VTOY_PATH/iso_file_list | $GREP -i -c $VER)
|
||||||
|
if [ $LINTCNT -gt 1 ]; then
|
||||||
|
vtlog "Still more than one pkgs, use the first one..."
|
||||||
|
LINE=$($GREP -i ' md-modules.*\.udeb' $VTOY_PATH/iso_file_list | $GREP -i -m1 $VER)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
install_udeb_from_line "$LINE" ${vt_usb_disk}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# insmod md-mod if needed
|
||||||
|
if $GREP -q 'device-mapper' /proc/devices; then
|
||||||
|
vtlog "device mapper module is loaded"
|
||||||
|
else
|
||||||
|
vtlog "device mapper module is NOT loaded, now load it..."
|
||||||
|
|
||||||
|
VER=$($BUSYBOX_PATH/uname -r)
|
||||||
|
KO=$($FIND /lib/modules/$VER/kernel/drivers/md -name "dm-mod*")
|
||||||
|
vtlog "KO=$KO"
|
||||||
|
|
||||||
|
insmod $KO
|
||||||
|
fi
|
||||||
|
|
||||||
|
vtlog "dmsetup install finish, now check it..."
|
||||||
|
if dmsetup info >> $VTLOG 2>&1; then
|
||||||
|
vtlog "dmsetup work ok"
|
||||||
|
else
|
||||||
|
vtlog "dmsetup not work, now try to load eglibc ..."
|
||||||
|
|
||||||
|
# install eglibc (some ubuntu 32 bit version need it)
|
||||||
|
LINE=$($GREP 'libc6-.*\.udeb' $VTOY_PATH/iso_file_list)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
install_udeb_from_line "$LINE" ${vt_usb_disk}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if dmsetup info >> $VTLOG 2>&1; then
|
||||||
|
vtlog "dmsetup work ok after retry"
|
||||||
|
else
|
||||||
|
vtlog "dmsetup still not work after retry"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if is_ventoy_hook_finished || not_ventoy_disk "${1:0:-1}"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
vtlog "==== $0 $* ===="
|
||||||
|
|
||||||
|
dmsetup_path=$(ventoy_find_bin_path dmsetup)
|
||||||
|
if [ -z "$dmsetup_path" ]; then
|
||||||
|
ventoy_os_install_dmsetup "/dev/${1:0:-1}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $GREP -q 'device-mapper' /proc/devices; then
|
||||||
|
ventoy_os_install_dmsetup "/dev/${1:0:-1}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook $*
|
||||||
|
|
||||||
|
#
|
||||||
|
# Some distro default only accept usb partitions as install medium.
|
||||||
|
# So if ventoy is installed on a non-USB device, we just mount /cdrom here except
|
||||||
|
# for these has boot=live or boot=casper parameter in cmdline
|
||||||
|
#
|
||||||
|
VT_BUS_USB=""
|
||||||
|
if [ -n "$ID_BUS" ]; then
|
||||||
|
if echo $ID_BUS | $GREP -q -i usb; then
|
||||||
|
VT_BUS_USB="YES"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if $BUSYBOX_PATH/ls -l /sys/class/block/${1:0:-1} | $GREP -q -i usb; then
|
||||||
|
VT_BUS_USB="YES"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$VT_BUS_USB" ]; then
|
||||||
|
vtlog "$1 is USB device"
|
||||||
|
echo /dev/$1 > /ventoy/list-devices-usb-part
|
||||||
|
else
|
||||||
|
vtlog "$1 is NOT USB device (bus $ID_BUS)"
|
||||||
|
|
||||||
|
if $EGREP -q 'boot=|casper' /proc/cmdline; then
|
||||||
|
vtlog "boot=, or casper, don't mount"
|
||||||
|
else
|
||||||
|
vtlog "No boot param, need to mount"
|
||||||
|
echo /dev/$1 > /ventoy/list-devices-usb-part
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#special process for Linx
|
||||||
|
if $BUSYBOX_PATH/uname -r | $GREP -q "^2\.6"; then
|
||||||
|
if $GREP -q "linx" /proc/version; then
|
||||||
|
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | $GREP ventoy | $SED 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
|
||||||
|
vtDM=$(ventoy_find_dm_id ${blkdev_num})
|
||||||
|
echo "/dev/$vtDM" > /ventoy/list-devices-usb-part
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# OK finish
|
||||||
|
set_ventoy_hook_finish
|
42
IMG/cpio/ventoy/hook/deepin/ventoy-hook.sh
Normal file
42
IMG/cpio/ventoy/hook/deepin/ventoy-hook.sh
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
if [ -e /init ] && $GREP -q '^mountroot$' /init; then
|
||||||
|
echo "Here before mountroot ..." >> $VTLOG
|
||||||
|
|
||||||
|
$SED "/^mountroot$/i\\$BUSYBOX_PATH/sh $VTOY_PATH/hook/deepin/disk_mount_hook.sh" -i /init
|
||||||
|
$SED "/^mountroot$/i\\export LIVEMEDIA=/dev/mapper/ventoy" -i /init
|
||||||
|
$SED "/^mountroot$/i\\export LIVE_MEDIA=/dev/mapper/ventoy" -i /init
|
||||||
|
|
||||||
|
if $GREP -q 'live-media=' /proc/cmdline; then
|
||||||
|
if [ -f /scripts/casper ] && $GREP -q '^ *LIVEMEDIA=' /scripts/casper; then
|
||||||
|
$SED "s#^ *LIVEMEDIA=.*#LIVEMEDIA=/dev/mapper/ventoy#" -i /scripts/casper
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Here use udev hook ..." >> $VTLOG
|
||||||
|
ventoy_systemd_udevd_work_around
|
||||||
|
ventoy_add_udev_rule "$VTOY_PATH/hook/deepin/udev_disk_hook.sh %k"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f $VTOY_PATH/autoinstall ]; then
|
||||||
|
echo "Do auto install ..." >> $VTLOG
|
||||||
|
$SED '/maybe_break[[:space:]]*init/i\/ventoy/busybox/sh /ventoy/hook/deepin/ventoy_autoinstall.sh >>/ventoy/autoinstall.log 2>&1' -i /init
|
||||||
|
fi
|
122
IMG/cpio/ventoy/hook/deepin/ventoy_autoinstall.sh
Normal file
122
IMG/cpio/ventoy/hook/deepin/ventoy_autoinstall.sh
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy_hook_lib.sh
|
||||||
|
|
||||||
|
change_var_value() {
|
||||||
|
local vfile=$1
|
||||||
|
local vkey=$2
|
||||||
|
local vVal=$3
|
||||||
|
local quote=$4
|
||||||
|
local vline
|
||||||
|
|
||||||
|
if [ $quote -eq 0 ]; then
|
||||||
|
vline="$vkey = $vVal"
|
||||||
|
else
|
||||||
|
vline="$vkey = \"$vVal\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q -m1 "^$vkey[[:space:]]*=" $vfile; then
|
||||||
|
sed "s#^$vkey[[:space:]]*=.*#$vline#g" -i $vfile
|
||||||
|
else
|
||||||
|
echo "$vline" >> $vfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
setting_script_process() {
|
||||||
|
local sfile=$1
|
||||||
|
local vItem
|
||||||
|
local vB64Item
|
||||||
|
|
||||||
|
vItem=$(grep '^language[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
change_var_value $sfile 'select_language_default_locale' "$vItem" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^timezone[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
change_var_value $sfile 'timezone_default' "$vItem" 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^hostname[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
change_var_value $sfile 'system_info_default_hostname' "$vItem" 1
|
||||||
|
change_var_value $sfile 'DI_HOSTNAME' "$vItem" 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^root_password[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
vB64Item=$(echo -n "$vItem" | base64)
|
||||||
|
change_var_value $sfile 'system_info_default_root_password' "$vB64Item" 1
|
||||||
|
change_var_value $sfile 'DI_ROOTPASSWORD' "$vB64Item" 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^default_username[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
change_var_value $sfile 'system_info_default_username' "$vItem" 1
|
||||||
|
change_var_value $sfile 'DI_USERNAME' "$vItem" 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^default_password[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
change_var_value $sfile 'system_info_default_password' "$vItem" 1
|
||||||
|
change_var_value $sfile 'DI_PASSWORD' "$vItem" 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
vItem=$(grep '^install_disk[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
|
||||||
|
if [ -n "$vItem" ]; then
|
||||||
|
echo "DI_FULLDISK_MULTIDISK_DEVICE = $vItem" >> $sfile
|
||||||
|
echo "DI_ROOTDISK = $vItem" >> $sfile
|
||||||
|
echo "DI_BOOTLOADER = $vItem" >> $sfile
|
||||||
|
fi
|
||||||
|
|
||||||
|
change_var_value $sfile 'skip_virtual_machine_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_select_language_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_select_language_page_on_first_boot' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_system_keyboard_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_system_info_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_qr_code_system_info_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_timezone_page' 'true' 0
|
||||||
|
change_var_value $sfile 'skip_partition_page' 'true' 0
|
||||||
|
change_var_value $sfile 'system_info_password_validate_required' '0' 0
|
||||||
|
change_var_value $sfile 'system_info_password_strong_check' 'false' 0
|
||||||
|
change_var_value $sfile 'partition_do_auto_part' 'true' 0
|
||||||
|
change_var_value $sfile 'system_info_disable_license' 'true' 0
|
||||||
|
change_var_value $sfile 'system_info_disable_experience' 'true' 0
|
||||||
|
change_var_value $sfile 'system_info_disable_privacy_license' 'true' 0
|
||||||
|
|
||||||
|
#filesystem.squashfs search ini
|
||||||
|
#first_page_state=0,表示不跳过首页,展示首页让用户自己选择
|
||||||
|
#first_page_state=1,表示跳过首页,并且自动点击一键安装
|
||||||
|
#first_page_state=2,表示跳过首页,并且自动点击自定义安装
|
||||||
|
#first_page_state=3,表示跳过首页,并且直接以全盘安装方式自动安装
|
||||||
|
change_var_value $sfile 'first_page_state' '3' 0
|
||||||
|
}
|
||||||
|
|
||||||
|
update_settings() {
|
||||||
|
local script=$1
|
||||||
|
local newscript
|
||||||
|
|
||||||
|
echo "update_settings for $script ..."
|
||||||
|
|
||||||
|
newscript=$(basename $script)
|
||||||
|
cp -a $script /ventoy/vini_${newscript}
|
||||||
|
setting_script_process /ventoy/vini_${newscript}
|
||||||
|
|
||||||
|
rm -f $script
|
||||||
|
cp -a /ventoy/vini_${newscript} $script
|
||||||
|
}
|
||||||
|
|
||||||
|
sh /ventoy/hook/common/auto_install_varexp.sh /ventoy/autoinstall
|
||||||
|
|
||||||
|
update_settings /root/usr/share/deepin-installer/resources/default_settings.ini
|
||||||
|
|
||||||
|
ls -1 /root/usr/share/deepin-installer/resources/override/ | while read line; do
|
||||||
|
update_settings /root/usr/share/deepin-installer/resources/override/$line
|
||||||
|
done
|
||||||
|
|
||||||
|
ls -1 /root/usr/share/deepin-installer/resources/oem/ | while read line; do
|
||||||
|
update_settings /root/usr/share/deepin-installer/resources/oem/$line
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
if [ -f $VTOY_PATH/autoinstall ]; then
|
if [ -f $VTOY_PATH/autoinstall ]; then
|
||||||
VTKS="inst.ks=file:$VTOY_PATH/autoinstall"
|
VTKS="inst.ks=file:$VTOY_PATH/autoinstall"
|
||||||
|
cp -a $VTOY_PATH/hook/rhel7/ventoy-autoexp.sh /lib/dracut/hooks/pre-mount/99-ventoy-autoexp.sh
|
||||||
else
|
else
|
||||||
for vtParam in $($CAT /proc/cmdline); do
|
for vtParam in $($CAT /proc/cmdline); do
|
||||||
if echo $vtParam | $GREP -q 'ks=file:/'; then
|
if echo $vtParam | $GREP -q 'ks=file:/'; then
|
||||||
@@ -90,23 +91,7 @@ if ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then
|
|||||||
fi
|
fi
|
||||||
echo "vtInstDD=$vtInstDD" >> $VTLOG
|
echo "vtInstDD=$vtInstDD" >> $VTLOG
|
||||||
|
|
||||||
if $GREP -q 'root=live' /proc/cmdline; then
|
|
||||||
$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=live:/dev/ventoy $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh
|
|
||||||
else
|
|
||||||
$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE inst.stage2=hd:/dev/ventoy $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
ventoy_set_inotify_script rhel7/ventoy-inotifyd-hook.sh
|
|
||||||
|
|
||||||
#Fedora
|
|
||||||
if $BUSYBOX_PATH/which dmsquash-live-root > /dev/null; then
|
|
||||||
vtPriority=99
|
|
||||||
else
|
|
||||||
vtPriority=01
|
|
||||||
fi
|
|
||||||
|
|
||||||
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh
|
|
||||||
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/${vtPriority}-ventoy-timeout.sh
|
|
||||||
|
|
||||||
vtNeedRepo=
|
vtNeedRepo=
|
||||||
if [ -f /etc/system-release ]; then
|
if [ -f /etc/system-release ]; then
|
||||||
@@ -125,12 +110,61 @@ if $GREP -i -q Fedora /proc/version; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if $GREP -i -q Fedora /etc/os-release; then
|
||||||
|
if $GREP -q 'Server Edition' /etc/os-release; then
|
||||||
|
vtNeedRepo="yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "vtNeedRepo=$vtNeedRepo" >> $VTLOG
|
echo "vtNeedRepo=$vtNeedRepo" >> $VTLOG
|
||||||
|
|
||||||
if [ "$vtNeedRepo" = "yes" ]; then
|
if [ "$vtNeedRepo" = "yes" ]; then
|
||||||
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-repo.sh /lib/dracut/hooks/pre-pivot/99-ventoy-repo.sh
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-repo.sh /lib/dracut/hooks/pre-pivot/99-ventoy-repo.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#iso-scan (currently only for Fedora)
|
||||||
|
if $GREP -q Fedora /etc/os-release; then
|
||||||
|
if /ventoy/tool/vtoydump -a /ventoy/ventoy_os_param; then
|
||||||
|
if ventoy_iso_scan_check; then
|
||||||
|
echo "iso_scan process ..." >> $VTLOG
|
||||||
|
|
||||||
|
vtIsoPath=$(/ventoy/tool/vtoydump -p /ventoy/ventoy_os_param)
|
||||||
|
VTISO_SCAN="iso-scan/filename=$vtIsoPath"
|
||||||
|
echo -n $vtIsoPath > /ventoy/vtoy_iso_scan
|
||||||
|
|
||||||
|
$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE $VTISO_SCAN $VTKS $VTOVERLAY $vtInstDD#" -i /lib/dracut-lib.sh
|
||||||
|
if [ "$VTOY_LINUX_REMOUNT" = "01" -a "$vtNeedRepo" != "yes" ]; then
|
||||||
|
ventoy_rw_iso_scan
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo "common process ..." >> $VTLOG
|
||||||
|
if $GREP -q 'root=live' /proc/cmdline; then
|
||||||
|
$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE root=live:/dev/ventoy $VTKS $VTOVERLAY $VTISO_SCAN $vtInstDD#" -i /lib/dracut-lib.sh
|
||||||
|
else
|
||||||
|
$SED "s#printf\(.*\)\$CMDLINE#printf\1\$CMDLINE inst.stage2=hd:/dev/ventoy $VTKS $VTOVERLAY $VTISO_SCAN $vtInstDD#" -i /lib/dracut-lib.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
ventoy_set_inotify_script rhel7/ventoy-inotifyd-hook.sh
|
||||||
|
|
||||||
|
#Fedora
|
||||||
|
if $BUSYBOX_PATH/which dmsquash-live-root > /dev/null; then
|
||||||
|
vtPriority=99
|
||||||
|
else
|
||||||
|
vtPriority=01
|
||||||
|
fi
|
||||||
|
|
||||||
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-start.sh /lib/dracut/hooks/pre-udev/${vtPriority}-ventoy-inotifyd-start.sh
|
||||||
|
$BUSYBOX_PATH/cp -a $VTOY_PATH/hook/rhel7/ventoy-timeout.sh /lib/dracut/hooks/initqueue/timeout/${vtPriority}-ventoy-timeout.sh
|
||||||
|
|
||||||
|
|
||||||
if [ -e /sbin/dmsquash-live-root ]; then
|
if [ -e /sbin/dmsquash-live-root ]; then
|
||||||
echo "patch /sbin/dmsquash-live-root ..." >> $VTLOG
|
echo "patch /sbin/dmsquash-live-root ..." >> $VTLOG
|
||||||
$SED "1 a $BUSYBOX_PATH/sh $VTOY_PATH/hook/rhel7/ventoy-make-link.sh" -i /sbin/dmsquash-live-root
|
$SED "1 a $BUSYBOX_PATH/sh $VTOY_PATH/hook/rhel7/ventoy-make-link.sh" -i /sbin/dmsquash-live-root
|
||||||
@@ -147,10 +181,6 @@ if $GREP -i -q 'fedora.*coreos' /etc/os-release; then
|
|||||||
cp -a $VTOY_PATH/hook/rhel7/ventoy-make-link.sh /lib/dracut/hooks/pre-mount/99-ventoy-premount-mklink.sh
|
cp -a $VTOY_PATH/hook/rhel7/ventoy-make-link.sh /lib/dracut/hooks/pre-mount/99-ventoy-premount-mklink.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f $VTOY_PATH/autoinstall ]; then
|
|
||||||
cp -a $VTOY_PATH/hook/rhel7/ventoy-autoexp.sh /lib/dracut/hooks/pre-mount/99-ventoy-autoexp.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#special distro magic
|
#special distro magic
|
||||||
$BUSYBOX_PATH/mkdir -p $VTOY_PATH/distmagic
|
$BUSYBOX_PATH/mkdir -p $VTOY_PATH/distmagic
|
||||||
|
26
IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-call.sh
Normal file
26
IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-call.sh
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2023, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
vtHook=$($CAT $VTOY_PATH/inotifyd-hook-script.txt)
|
||||||
|
|
||||||
|
vtdisk=$(get_ventoy_disk_name)
|
||||||
|
vtlog "... $vtdisk already exist ..."
|
||||||
|
$BUSYBOX_PATH/sh $vtHook n /dev "${vtdisk#/dev/}2"
|
@@ -27,5 +27,8 @@ if [ "$vtdisk" = "unknown" ]; then
|
|||||||
$BUSYBOX_PATH/nohup $VTOY_PATH/tool/inotifyd $vtHook /dev:n 2>&- &
|
$BUSYBOX_PATH/nohup $VTOY_PATH/tool/inotifyd $vtHook /dev:n 2>&- &
|
||||||
else
|
else
|
||||||
vtlog "... $vtdisk already exist ..."
|
vtlog "... $vtdisk already exist ..."
|
||||||
$BUSYBOX_PATH/sh $vtHook n /dev "${vtdisk#/dev/}2"
|
|
||||||
|
#don't call it too early issue 2225
|
||||||
|
#$BUSYBOX_PATH/sh $vtHook n /dev "${vtdisk#/dev/}2"
|
||||||
|
cp -a $VTOY_PATH/hook/rhel7/ventoy-inotifyd-call.sh /lib/dracut/hooks/initqueue/settled/90-ventoy-inotifyd-call.sh
|
||||||
fi
|
fi
|
||||||
|
@@ -23,7 +23,18 @@ vtlog "##### $0 $* ..."
|
|||||||
|
|
||||||
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
repodev=$(ls $VTOY_PATH/dev_backup*)
|
if [ -f /ventoy/vtoy_iso_scan ]; then
|
||||||
echo "inst.repo=hd:/dev/${repodev#*dev_backup_}" >> /sysroot/etc/cmdline
|
repopath=$(cat /ventoy/vtoy_iso_scan)
|
||||||
|
repodev=$(vtoydump -f /ventoy/ventoy_os_param | awk -F'#' '{print $1}')
|
||||||
|
if echo $repodev | egrep -q "nvme|mmc|nbd"; then
|
||||||
|
vtpart1=${repodev}p1
|
||||||
|
else
|
||||||
|
vtpart1=${repodev}1
|
||||||
|
fi
|
||||||
|
echo "inst.repo=hd:${vtpart1}:${repopath}" >> /sysroot/etc/cmdline
|
||||||
|
else
|
||||||
|
repodev=$(ls $VTOY_PATH/dev_backup*)
|
||||||
|
echo "inst.repo=hd:/dev/${repodev#*dev_backup_}" >> /sysroot/etc/cmdline
|
||||||
|
fi
|
||||||
|
|
||||||
PATH=$VTPATH_OLD
|
PATH=$VTPATH_OLD
|
||||||
|
@@ -223,6 +223,42 @@ ventoy_check_dm_module() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ventoy_need_proc_ibt() {
|
||||||
|
vtKv=$($BUSYBOX_PATH/uname -r)
|
||||||
|
vtMajor=$(echo $vtKv | $AWK -F. '{print $1}')
|
||||||
|
vtMinor=$(echo $vtKv | $AWK -F. '{print $2}')
|
||||||
|
|
||||||
|
#ibt was supported since linux kernel 5.18
|
||||||
|
if [ $vtMajor -lt 5 ]; then
|
||||||
|
$BUSYBOX_PATH/false; return
|
||||||
|
elif [ $vtMajor -eq 5 ]; then
|
||||||
|
if [ $vtMajor -lt 18 ]; then
|
||||||
|
$BUSYBOX_PATH/false; return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $GREP -q ' ibt=off' /proc/cmdline; then
|
||||||
|
$BUSYBOX_PATH/false; return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#hardware CPU doesn't support IBT
|
||||||
|
if $VTOY_PATH/tool/vtoykmod -I; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
$BUSYBOX_PATH/false; return
|
||||||
|
fi
|
||||||
|
|
||||||
|
#dot.CONFIG not enabled
|
||||||
|
if $GREP -q ' ibt_restore$' /proc/kallsyms; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
$BUSYBOX_PATH/false; return
|
||||||
|
fi
|
||||||
|
|
||||||
|
$BUSYBOX_PATH/true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ventoy_need_dm_patch() {
|
ventoy_need_dm_patch() {
|
||||||
if [ "$VTOY_LINUX_REMOUNT" != "01" ]; then
|
if [ "$VTOY_LINUX_REMOUNT" != "01" ]; then
|
||||||
if $GREP -q 'VTOY_LINUX_REMOUNT=1' /proc/cmdline; then
|
if $GREP -q 'VTOY_LINUX_REMOUNT=1' /proc/cmdline; then
|
||||||
@@ -269,6 +305,16 @@ ventoy_dm_patch() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ventoy_need_proc_ibt; then
|
||||||
|
vtlog "need to proc IBT"
|
||||||
|
vtKoName=dm_patch_ibt_64.ko
|
||||||
|
vtIBT='0x8888'
|
||||||
|
else
|
||||||
|
vtlog "NO need to proc IBT"
|
||||||
|
vtIBT='0'
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -f $VTOY_PATH/tool/$vtKoName ]; then
|
if [ -f $VTOY_PATH/tool/$vtKoName ]; then
|
||||||
vtlog "/ventoy/tool/$vtKoName exist OK"
|
vtlog "/ventoy/tool/$vtKoName exist OK"
|
||||||
else
|
else
|
||||||
@@ -305,6 +351,9 @@ ventoy_dm_patch() {
|
|||||||
|
|
||||||
if [ "$VTOY_DEBUG_LEVEL" = "01" ]; then
|
if [ "$VTOY_DEBUG_LEVEL" = "01" ]; then
|
||||||
printk_addr=$($GREP ' printk$' /proc/kallsyms | $AWK '{print $1}')
|
printk_addr=$($GREP ' printk$' /proc/kallsyms | $AWK '{print $1}')
|
||||||
|
if [ -z "$printk_addr" ]; then
|
||||||
|
printk_addr=$($GREP ' _printk$' /proc/kallsyms | $AWK '{print $1}')
|
||||||
|
fi
|
||||||
vtDebug="-v"
|
vtDebug="-v"
|
||||||
else
|
else
|
||||||
printk_addr=0
|
printk_addr=0
|
||||||
@@ -361,14 +410,16 @@ ventoy_dm_patch() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#step1: modify vermagic/mod crc/relocation
|
#step1: modify vermagic/mod crc/relocation
|
||||||
vtlog "$VTOY_PATH/tool/vtoykmod -u $VTOY_PATH/tool/$vtKoName $VTOY_PATH/$vtModName $vtDebug"
|
vtlog "$VTOY_PATH/tool/vtoykmod -u $VTOY_PATH/tool/$vtKoName $VTOY_PATH/$vtModName $vtDebug"
|
||||||
$VTOY_PATH/tool/vtoykmod -u $VTOY_PATH/tool/$vtKoName $VTOY_PATH/$vtModName $vtDebug
|
$VTOY_PATH/tool/vtoykmod -u $VTOY_PATH/tool/$vtKoName $VTOY_PATH/$vtModName $vtDebug
|
||||||
|
|
||||||
#step2: fill parameters
|
#step2: fill parameters
|
||||||
vtPgsize=$($VTOY_PATH/tool/vtoyksym -p)
|
vtPgsize=$($VTOY_PATH/tool/vtoyksym -p)
|
||||||
vtlog "$VTOY_PATH/tool/vtoykmod -f $VTOY_PATH/tool/$vtKoName $vtPgsize 0x$printk_addr 0x$ro_addr 0x$rw_addr $get_addr $get_size $put_addr $put_size 0x$kprobe_reg_addr 0x$kprobe_unreg_addr $vtDebug"
|
vtlog "$VTOY_PATH/tool/vtoykmod -f $VTOY_PATH/tool/$vtKoName $vtPgsize 0x$printk_addr 0x$ro_addr 0x$rw_addr $get_addr $get_size $put_addr $put_size 0x$kprobe_reg_addr 0x$kprobe_unreg_addr $vtKv $vtIBT $vtDebug"
|
||||||
$VTOY_PATH/tool/vtoykmod -f $VTOY_PATH/tool/$vtKoName $vtPgsize 0x$printk_addr 0x$ro_addr 0x$rw_addr $get_addr $get_size $put_addr $put_size 0x$kprobe_reg_addr 0x$kprobe_unreg_addr $vtDebug
|
$VTOY_PATH/tool/vtoykmod -f $VTOY_PATH/tool/$vtKoName $vtPgsize 0x$printk_addr 0x$ro_addr 0x$rw_addr $get_addr $get_size $put_addr $put_size 0x$kprobe_reg_addr 0x$kprobe_unreg_addr $vtKv $vtIBT $vtDebug
|
||||||
|
|
||||||
$BUSYBOX_PATH/insmod $VTOY_PATH/tool/$vtKoName
|
$BUSYBOX_PATH/insmod $VTOY_PATH/tool/$vtKoName
|
||||||
|
|
||||||
|
@@ -121,3 +121,53 @@ ventoy_check_mount() {
|
|||||||
$BUSYBOX_PATH/mount $1 $2
|
$BUSYBOX_PATH/mount $1 $2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ventoy_has_exfat_ko() {
|
||||||
|
vtExfat=''
|
||||||
|
vtKerVer=$($BUSYBOX_PATH/uname -r)
|
||||||
|
if [ -d /lib/modules/$vtKerVer/kernel/fs/exfat ]; then
|
||||||
|
vtExfat=$(ls /lib/modules/$vtKerVer/kernel/fs/exfat/)
|
||||||
|
fi
|
||||||
|
[ -n "$vtExfat" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_is_exfat_part() {
|
||||||
|
$VTOY_PATH/tool/vtoydump -s /ventoy/ventoy_os_param | $GREP -q exfat
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_iso_scan_path() {
|
||||||
|
if [ -f /sbin/iso-scan ]; then
|
||||||
|
echo -n '/sbin/iso-scan'
|
||||||
|
elif [ -f /bin/iso-scan ]; then
|
||||||
|
echo -n '/bin/iso-scan'
|
||||||
|
else
|
||||||
|
echo -n ''
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_has_iso_scan() {
|
||||||
|
vtScanPath=$(ventoy_iso_scan_path)
|
||||||
|
[ -n "$vtScanPath" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_rw_iso_scan() {
|
||||||
|
vtScanPath=$(ventoy_iso_scan_path)
|
||||||
|
if [ -n "$vtScanPath" ]; then
|
||||||
|
if $GREP -q 'mount.* ro .*isoscan' $vtScanPath; then
|
||||||
|
$SED -i 's/\(mount.*-o.*\) ro /\1 rw /' $vtScanPath
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ventoy_iso_scan_check() {
|
||||||
|
vtCheckOk=0
|
||||||
|
if ventoy_is_exfat_part; then
|
||||||
|
if ventoy_has_exfat_ko; then
|
||||||
|
if ventoy_has_iso_scan; then
|
||||||
|
vtCheckOk=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ $vtCheckOk -eq 1 ]
|
||||||
|
}
|
||||||
|
@@ -34,9 +34,12 @@ else
|
|||||||
vtBit=32
|
vtBit=32
|
||||||
fi
|
fi
|
||||||
|
|
||||||
xz -d $VTOY_PATH/vtloopex/dm-mod/$vtKerVer/$vtBit/dm-mod.ko.xz
|
if [ -f $VTOY_PATH/vtloopex/dm-mod/$vtKerVer/$vtBit/dm-mod.ko.xz ]; then
|
||||||
insmod $VTOY_PATH/vtloopex/dm-mod/$vtKerVer/$vtBit/dm-mod.ko
|
xz -d $VTOY_PATH/vtloopex/dm-mod/$vtKerVer/$vtBit/dm-mod.ko.xz
|
||||||
|
insmod $VTOY_PATH/vtloopex/dm-mod/$vtKerVer/$vtBit/dm-mod.ko
|
||||||
|
elif [ -f $VTOY_PATH/modules/dm-mod.ko ]; then
|
||||||
|
insmod $VTOY_PATH/modules/dm-mod.ko
|
||||||
|
fi
|
||||||
|
|
||||||
wait_for_usb_disk_ready
|
wait_for_usb_disk_ready
|
||||||
|
|
||||||
|
46
IMG/cpio/ventoy/loop/fwts/ventoy-disk.sh
Normal file
46
IMG/cpio/ventoy/loop/fwts/ventoy-disk.sh
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. /ventoy/hook/ventoy-hook-lib.sh
|
||||||
|
|
||||||
|
if is_ventoy_hook_finished; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
vtlog "####### $0 $* ########"
|
||||||
|
|
||||||
|
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||||
|
|
||||||
|
wait_for_usb_disk_ready
|
||||||
|
|
||||||
|
vtdiskname=$(get_ventoy_disk_name)
|
||||||
|
if [ "$vtdiskname" = "unknown" ]; then
|
||||||
|
vtlog "ventoy disk not found"
|
||||||
|
PATH=$VTPATH_OLD
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
||||||
|
|
||||||
|
ventoy_create_dev_ventoy_part
|
||||||
|
mdev -s
|
||||||
|
|
||||||
|
PATH=$VTPATH_OLD
|
||||||
|
|
||||||
|
set_ventoy_hook_finish
|
23
IMG/cpio/ventoy/loop/fwts/ventoy-hook.sh
Normal file
23
IMG/cpio/ventoy/loop/fwts/ventoy-hook.sh
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/ventoy/busybox/sh
|
||||||
|
#************************************************************************************
|
||||||
|
# Copyright (c) 2020, longpanda <admin@ventoy.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
#************************************************************************************
|
||||||
|
|
||||||
|
. $VTOY_PATH/hook/ventoy-os-lib.sh
|
||||||
|
|
||||||
|
$SED "/^mountroot$/i\\$BUSYBOX_PATH/sh $VTOY_PATH/loop/fwts/ventoy-disk.sh" -i /init
|
||||||
|
#$SED "/^mountroot$/i\\export ROOT=/dev/mapper/ventoy" -i /init
|
@@ -64,9 +64,9 @@ ventoy_get_os_type() {
|
|||||||
elif $GREP -q '[Uu]buntu' /proc/version; then
|
elif $GREP -q '[Uu]buntu' /proc/version; then
|
||||||
echo 'debian'; return
|
echo 'debian'; return
|
||||||
|
|
||||||
# Deepin : do the same process with debian
|
# Deepin :
|
||||||
elif $GREP -q '[Dd]eepin' /proc/version; then
|
elif $GREP -q '[Dd]eepin' /proc/version; then
|
||||||
echo 'debian'; return
|
echo 'deepin'; return
|
||||||
|
|
||||||
# rhel5/CentOS5 and all other distributions based on them
|
# rhel5/CentOS5 and all other distributions based on them
|
||||||
elif $GREP -q 'el5' /proc/version; then
|
elif $GREP -q 'el5' /proc/version; then
|
||||||
@@ -169,9 +169,9 @@ ventoy_get_os_type() {
|
|||||||
elif $GREP -q 'fuyu' /etc/os-release; then
|
elif $GREP -q 'fuyu' /etc/os-release; then
|
||||||
echo 'openEuler'; return
|
echo 'openEuler'; return
|
||||||
elif $GREP -q 'deepin' /etc/os-release; then
|
elif $GREP -q 'deepin' /etc/os-release; then
|
||||||
echo 'debian'; return
|
echo 'deepin'; return
|
||||||
elif $GREP -q 'chinauos' /etc/os-release; then
|
elif $GREP -q 'chinauos' /etc/os-release; then
|
||||||
echo 'debian'; return
|
echo 'deepin'; return
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -229,6 +229,10 @@ ventoy_get_os_type() {
|
|||||||
echo 'android'; return
|
echo 'android'; return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if $GREP -q 'android.google' /proc/version; then
|
||||||
|
echo 'android'; return
|
||||||
|
fi
|
||||||
|
|
||||||
if $GREP -q 'adelielinux' /proc/version; then
|
if $GREP -q 'adelielinux' /proc/version; then
|
||||||
echo 'adelie'; return
|
echo 'adelie'; return
|
||||||
fi
|
fi
|
||||||
@@ -369,6 +373,9 @@ ventoy_get_os_type() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if $GREP -q 'chimera' /proc/version; then
|
||||||
|
echo 'chimera'; return
|
||||||
|
fi
|
||||||
|
|
||||||
echo "default"
|
echo "default"
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
BIN
IMG/cpio_x86/ventoy/tool/dm_patch_ibt_64.ko
Normal file
BIN
IMG/cpio_x86/ventoy/tool/dm_patch_ibt_64.ko
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@
|
|||||||
VTOY_PATH=$PWD/..
|
VTOY_PATH=$PWD/..
|
||||||
|
|
||||||
date +"%Y/%m/%d %H:%M:%S"
|
date +"%Y/%m/%d %H:%M:%S"
|
||||||
echo downloading envrionment ...
|
echo downloading environment ...
|
||||||
|
|
||||||
wget -q -P $VTOY_PATH/DOC/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/dietlibc-0.34.tar.xz
|
wget -q -P $VTOY_PATH/DOC/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/dietlibc-0.34.tar.xz
|
||||||
wget -q -P $VTOY_PATH/DOC/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/musl-1.2.1.tar.gz
|
wget -q -P $VTOY_PATH/DOC/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/musl-1.2.1.tar.gz
|
||||||
@@ -14,6 +14,6 @@ wget -q -P /opt/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/a
|
|||||||
wget -q -P /opt/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz
|
wget -q -P /opt/ https://github.com/ventoy/vtoytoolchain/releases/download/1.0/mips-loongson-gcc7.3-2019.06-29-linux-gnu.tar.gz
|
||||||
|
|
||||||
date +"%Y/%m/%d %H:%M:%S"
|
date +"%Y/%m/%d %H:%M:%S"
|
||||||
echo downloading envrionment finish...
|
echo downloading environment finish...
|
||||||
|
|
||||||
sh all_in_one.sh CI
|
sh all_in_one.sh CI
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
unset vtchkdef
|
unset vtchkdef
|
||||||
vt_vtoychksum_exist "${vtoy_iso_part}" "${VTOY_CHKSUM_FILE_PATH}"
|
vt_vtoychksum_exist "${VTOY_CHKSUM_FILE_PATH}"
|
||||||
set vtchksumfile=$?
|
|
||||||
|
|
||||||
if [ -f "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.md5" -o $vtchksumfile -eq 0 ]; then
|
if [ "$VT_EXIST_MD5" = "1" ]; then
|
||||||
if [ -z "$vtchkdef" ]; then
|
if [ -z "$vtchkdef" ]; then
|
||||||
set default=0
|
set default=0
|
||||||
set vtchkdef=1
|
set vtchkdef=1
|
||||||
@@ -24,7 +23,7 @@ else
|
|||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha1" -o $vtchksumfile -eq 0 ]; then
|
if [ "$VT_EXIST_SHA1" = "1" ]; then
|
||||||
if [ -z "$vtchkdef" ]; then
|
if [ -z "$vtchkdef" ]; then
|
||||||
set default=1
|
set default=1
|
||||||
set vtchkdef=1
|
set vtchkdef=1
|
||||||
@@ -47,7 +46,7 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha256" -o $vtchksumfile -eq 0 ]; then
|
if [ "$VT_EXIST_SHA256" = "1" ]; then
|
||||||
if [ -z "$vtchkdef" ]; then
|
if [ -z "$vtchkdef" ]; then
|
||||||
set default=2
|
set default=2
|
||||||
set vtchkdef=1
|
set vtchkdef=1
|
||||||
@@ -70,7 +69,7 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f "${vtoy_iso_part}${VTOY_CHKSUM_FILE_PATH}.sha512" -o $vtchksumfile -eq 0 ]; then
|
if [ "$VT_EXIST_SHA512" = "1" ]; then
|
||||||
if [ -z "$vtchkdef" ]; then
|
if [ -z "$vtchkdef" ]; then
|
||||||
set default=3
|
set default=3
|
||||||
set vtchkdef=1
|
set vtchkdef=1
|
||||||
|
@@ -83,10 +83,12 @@ submenu "$VTLANG_RESOLUTION_CFG" --class=debug_resolution --class=F5tool {
|
|||||||
|
|
||||||
submenu "$VTLANG_SCREEN_MODE" --class=debug_screen_mode --class=F5tool {
|
submenu "$VTLANG_SCREEN_MODE" --class=debug_screen_mode --class=F5tool {
|
||||||
menuentry "$VTLANG_SCREEN_TEXT_MODE" --class=debug_text_mode --class=debug_screen_mode --class=F5tool {
|
menuentry "$VTLANG_SCREEN_TEXT_MODE" --class=debug_text_mode --class=debug_screen_mode --class=F5tool {
|
||||||
|
vt_push_menu_lang en_US
|
||||||
terminal_output console
|
terminal_output console
|
||||||
}
|
}
|
||||||
menuentry "$VTLANG_SCREEN_GUI_MODE" --class=debug_gui_mode --class=debug_screen_mode --class=F5tool {
|
menuentry "$VTLANG_SCREEN_GUI_MODE" --class=debug_gui_mode --class=debug_screen_mode --class=F5tool {
|
||||||
terminal_output gfxterm
|
terminal_output gfxterm
|
||||||
|
vt_pop_menu_lang
|
||||||
}
|
}
|
||||||
menuentry "$VTLANG_RETURN_PREVIOUS" --class=vtoyret VTOY_RET {
|
menuentry "$VTLANG_RETURN_PREVIOUS" --class=vtoyret VTOY_RET {
|
||||||
echo "Return ..."
|
echo "Return ..."
|
||||||
|
15
INSTALL/grub/distro/fwts.cfg
Normal file
15
INSTALL/grub/distro/fwts.cfg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
set label="writable"
|
||||||
|
|
||||||
|
menuentry 'Firmware Test Suite' --class ubuntu --class gnu-linux --class gnu --class os {
|
||||||
|
set root='vtimghd,4'
|
||||||
|
linux /boot/vmlinuz root=LABEL=$label ro console=tty1 console=ttyS0 quiet
|
||||||
|
initrd /boot/initrd.img
|
||||||
|
}
|
||||||
|
|
||||||
|
menuentry 'Firmware Test Suite (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
|
||||||
|
set root='vtimghd,4'
|
||||||
|
echo 'Loading Linux ...'
|
||||||
|
linux /boot/vmlinuz root=LABEL=$label ro recovery nomodeset
|
||||||
|
echo 'Loading initial ramdisk ...'
|
||||||
|
initrd /boot/initrd.img
|
||||||
|
}
|
@@ -119,7 +119,7 @@ function ventoy_show_help {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ventoy_load_menu_lang_file {
|
function ventoy_load_menu_lang_file {
|
||||||
vt_load_file_to_mem "auto" $vtoy_efi_part/grub/menu.tar.gz vtoy_menu_lang_mem
|
vt_load_file_to_mem "auto" $prefix/menu.tar.gz vtoy_menu_lang_mem
|
||||||
loopback vt_menu_tarfs mem:${vtoy_menu_lang_mem_addr}:size:${vtoy_menu_lang_mem_size}
|
loopback vt_menu_tarfs mem:${vtoy_menu_lang_mem_addr}:size:${vtoy_menu_lang_mem_size}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -401,6 +401,8 @@ function distro_specify_initrd_file_phase2 {
|
|||||||
vt_linux_specify_initrd_file /boot/full.cz
|
vt_linux_specify_initrd_file /boot/full.cz
|
||||||
elif [ -f (loop)/images/pxeboot/initrd.img ]; then
|
elif [ -f (loop)/images/pxeboot/initrd.img ]; then
|
||||||
vt_linux_specify_initrd_file /images/pxeboot/initrd.img
|
vt_linux_specify_initrd_file /images/pxeboot/initrd.img
|
||||||
|
elif [ -f (loop)/live/initrd ]; then
|
||||||
|
vt_linux_specify_initrd_file /live/initrd
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -411,10 +413,9 @@ function ventoy_get_ghostbsd_ver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ventoy_get_furybsd_ver {
|
function ventoy_get_furybsd_ver {
|
||||||
if regexp "13\.[0-9]" "$2"; then
|
set vt_freebsd_ver=12.x
|
||||||
set vt_freebsd_ver=13.x
|
if regexp --set 1:vtFuryVer "(14|13)\.[0-9]" "$2"; then
|
||||||
else
|
set vt_freebsd_ver=${vtFuryVer}.x
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -423,12 +424,8 @@ function ventoy_get_freenas_ver {
|
|||||||
|
|
||||||
if [ -e (loop)/FreeNAS-MANIFEST ]; then
|
if [ -e (loop)/FreeNAS-MANIFEST ]; then
|
||||||
vt_parse_freenas_ver (loop)/FreeNAS-MANIFEST vt_freenas_ver
|
vt_parse_freenas_ver (loop)/FreeNAS-MANIFEST vt_freenas_ver
|
||||||
if regexp "^13\.[0-9]" "$vt_freenas_ver"; then
|
if regexp --set 1:vtNasVer "^(14|13|12|11)\.[0-9]" "$vt_freenas_ver"; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=${vtNasVer}.x
|
||||||
elif regexp "^12\.[0-9]" "$vt_freenas_ver"; then
|
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
elif regexp "^11\.[0-9]" "$vt_freenas_ver"; then
|
|
||||||
set vt_freebsd_ver=11.x
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -438,12 +435,8 @@ function ventoy_get_truenas_ver {
|
|||||||
|
|
||||||
if [ -e (loop)/TrueNAS-MANIFEST ]; then
|
if [ -e (loop)/TrueNAS-MANIFEST ]; then
|
||||||
vt_parse_freenas_ver (loop)/TrueNAS-MANIFEST vt_truenas_ver
|
vt_parse_freenas_ver (loop)/TrueNAS-MANIFEST vt_truenas_ver
|
||||||
if regexp "^13\.[0-9]" "$vt_truenas_ver"; then
|
if regexp --set 1:vtTNasVer "^(14|13|12|11)\.[0-9]" "$vt_truenas_ver"; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=${vtTNasVer}.x
|
||||||
elif regexp "^12\.[0-9]" "$vt_truenas_ver"; then
|
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
elif regexp "^11\.[0-9]" "$vt_truenas_ver"; then
|
|
||||||
set vt_freebsd_ver=11.x
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -475,49 +468,25 @@ function ventoy_freebsd_proc {
|
|||||||
ventoy_get_truenas_ver "$1" "${chosen_path}"
|
ventoy_get_truenas_ver "$1" "${chosen_path}"
|
||||||
elif vt_strstr "$vt_volume_id" "FURYBSD"; then
|
elif vt_strstr "$vt_volume_id" "FURYBSD"; then
|
||||||
ventoy_get_furybsd_ver "$1" "${chosen_path}"
|
ventoy_get_furybsd_ver "$1" "${chosen_path}"
|
||||||
elif regexp "^13_[0-9]" "$vt_volume_id"; then
|
elif regexp --set 1:vtBsdVerNum "^(14|13|12|11|10|9)_[0-9]" "$vt_volume_id"; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=${vtBsdVerNum}.x
|
||||||
elif regexp "^12_[0-9]" "$vt_volume_id"; then
|
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
elif regexp "^11_[0-9]" "$vt_volume_id"; then
|
|
||||||
set vt_freebsd_ver=11.x
|
|
||||||
elif regexp "^10_[0-9]" "$vt_volume_id"; then
|
|
||||||
set vt_freebsd_ver=10.x
|
|
||||||
elif regexp "^9_[0-9]" "$vt_volume_id"; then
|
|
||||||
set vt_freebsd_ver=9.x
|
|
||||||
elif [ -d (loop)/usr/midnightbsd-dist ]; then
|
elif [ -d (loop)/usr/midnightbsd-dist ]; then
|
||||||
ventoy_get_midnightbsd_ver "$1" "${chosen_path}"
|
ventoy_get_midnightbsd_ver "$1" "${chosen_path}"
|
||||||
set vtFreeBsdDistro=MidnightBSD
|
set vtFreeBsdDistro=MidnightBSD
|
||||||
elif [ -e (loop)/bin/freebsd-version ]; then
|
elif [ -e (loop)/bin/freebsd-version ]; then
|
||||||
vt_unix_parse_freebsd_ver (loop)/bin/freebsd-version vt_userland_ver
|
vt_unix_parse_freebsd_ver (loop)/bin/freebsd-version vt_userland_ver
|
||||||
if regexp "\"13\.[0-9]-" "$vt_userland_ver"; then
|
if regexp --set 1:vtBsdVerNum "\"(14|13|12|11|10|9)\.[0-9]-" "$vt_userland_ver"; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=${vtBsdVerNum}.x
|
||||||
elif regexp "\"12\.[0-9]-" "$vt_userland_ver"; then
|
fi
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
elif regexp "\"11\.[0-9]-" "$vt_userland_ver"; then
|
|
||||||
set vt_freebsd_ver=11.x
|
|
||||||
elif regexp "\"10\.[0-9]-" "$vt_userland_ver"; then
|
|
||||||
set vt_freebsd_ver=10.x
|
|
||||||
elif regexp "\"9\.[0-9]-" "$vt_userland_ver"; then
|
|
||||||
set vt_freebsd_ver=9.x
|
|
||||||
fi
|
|
||||||
elif [ -e (loop)/README.TXT ]; then
|
elif [ -e (loop)/README.TXT ]; then
|
||||||
vt_1st_line (loop)/README.TXT vt_freebsd_line1
|
vt_1st_line (loop)/README.TXT vt_freebsd_line1
|
||||||
if regexp "FreeBSD 13\.[0-9]-" "$vt_freebsd_line1"; then
|
if regexp --set 1:vtBsdVerNum "FreeBSD (14|13|12|11|10|9)\.[0-9]-" "$vt_freebsd_line1"; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=${vtBsdVerNum}.x
|
||||||
elif regexp "FreeBSD 12\.[0-9]-" "$vt_freebsd_line1"; then
|
|
||||||
set vt_freebsd_ver=12.x
|
|
||||||
elif regexp "FreeBSD 11\.[0-9]-" "$vt_freebsd_line1"; then
|
|
||||||
set vt_freebsd_ver=11.x
|
|
||||||
elif regexp "FreeBSD 10\.[0-9]-" "$vt_freebsd_line1"; then
|
|
||||||
set vt_freebsd_ver=10.x
|
|
||||||
elif regexp "FreeBSD 9\.[0-9]-" "$vt_freebsd_line1"; then
|
|
||||||
set vt_freebsd_ver=9.x
|
|
||||||
fi
|
fi
|
||||||
elif vt_strstr "${chosen_path}" "MidnightBSD"; then
|
elif vt_strstr "${chosen_path}" "MidnightBSD"; then
|
||||||
set vt_freebsd_ver=9.x
|
set vt_freebsd_ver=9.x
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -e (loop)/usr/freebsd-dist/cloninst.sh ]; then
|
if [ -e (loop)/usr/freebsd-dist/cloninst.sh ]; then
|
||||||
set vtFreeBsdDistro=ClonOS
|
set vtFreeBsdDistro=ClonOS
|
||||||
@@ -541,7 +510,7 @@ function ventoy_freebsd_proc {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$vt_freebsd_ver" = "xx" ]; then
|
if [ "$vt_freebsd_ver" = "xx" ]; then
|
||||||
set vt_freebsd_ver=13.x
|
set vt_freebsd_ver=14.x
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1926,6 +1895,20 @@ function ventoy_img_openelec {
|
|||||||
loopback vtloopex $vtoy_efi_part/ventoy/vtloopex.cpio
|
loopback vtloopex $vtoy_efi_part/ventoy/vtloopex.cpio
|
||||||
vt_img_extra_initrd_append (vtloopex)/$elec_ver/vtloopex.tar.xz
|
vt_img_extra_initrd_append (vtloopex)/$elec_ver/vtloopex.tar.xz
|
||||||
|
|
||||||
|
if [ "$elec_ver" = "LibreELEC" ]; then
|
||||||
|
if [ -f (vtimghd,1)/system ]; then
|
||||||
|
loopback elecsfs (vtimghd,1)/system
|
||||||
|
vt_get_lib_module_ver (elecsfs) /usr/lib/kernel-overlays/base/lib/modules/ vt_module_ver
|
||||||
|
if [ -n "$vt_module_ver" ]; then
|
||||||
|
for mod in "kernel/drivers/md/dm-mod.ko"; do
|
||||||
|
if [ -e (elecsfs)/usr/lib/kernel-overlays/base/lib/modules/$vt_module_ver/$mod ]; then
|
||||||
|
vt_img_extra_initrd_append (elecsfs)/usr/lib/kernel-overlays/base/lib/modules/$vt_module_ver/$mod
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
ventoy_debug_pause
|
ventoy_debug_pause
|
||||||
|
|
||||||
#boot image file
|
#boot image file
|
||||||
@@ -1938,6 +1921,7 @@ function ventoy_img_openelec {
|
|||||||
vt_img_unhook_root
|
vt_img_unhook_root
|
||||||
vt_unset_boot_opt
|
vt_unset_boot_opt
|
||||||
loopback -d vtloopex
|
loopback -d vtloopex
|
||||||
|
loopback -d elecsfs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2216,6 +2200,23 @@ function ventoy_img_cloudready {
|
|||||||
unset linuxpartB
|
unset linuxpartB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function ventoy_img_fwts {
|
||||||
|
vt_load_cpio $vtoy_path "${vt_chosen_path}" ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
||||||
|
vt_trailer_cpio ${vtoy_iso_part} "${vt_chosen_path}" noinit
|
||||||
|
|
||||||
|
ventoy_debug_pause
|
||||||
|
|
||||||
|
#boot image file
|
||||||
|
vt_set_boot_opt rdinit=/vtoy/vtoy ventoyos=fwts
|
||||||
|
vt_img_hook_root
|
||||||
|
|
||||||
|
configfile $prefix/distro/fwts.cfg
|
||||||
|
|
||||||
|
vt_img_unhook_root
|
||||||
|
vt_unset_boot_opt
|
||||||
|
}
|
||||||
|
|
||||||
function ventoy_img_memtest86 {
|
function ventoy_img_memtest86 {
|
||||||
chainloader (vtimghd,1)/efi/boot/BOOTX64.efi
|
chainloader (vtimghd,1)/efi/boot/BOOTX64.efi
|
||||||
boot
|
boot
|
||||||
@@ -2281,6 +2282,12 @@ function img_common_menuentry {
|
|||||||
vt_get_fs_label (vtimghd,2) vtImgHd2Label
|
vt_get_fs_label (vtimghd,2) vtImgHd2Label
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$vtImgHd1Label" ]; then
|
||||||
|
if [ -d (vtimghd,2)/efi ]; then
|
||||||
|
vt_get_fs_label (vtimghd,3) vtImgHd3Label
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -e (vtimghd,1)/etc/hostname ]; then
|
if [ -e (vtimghd,1)/etc/hostname ]; then
|
||||||
vt_1st_line (vtimghd,1)/etc/hostname vtImgHostname
|
vt_1st_line (vtimghd,1)/etc/hostname vtImgHostname
|
||||||
fi
|
fi
|
||||||
@@ -2298,6 +2305,8 @@ function img_common_menuentry {
|
|||||||
elif [ -f (vtimghd,3)/etc/chrome_dev.conf ]; then
|
elif [ -f (vtimghd,3)/etc/chrome_dev.conf ]; then
|
||||||
ventoy_img_cloudready
|
ventoy_img_cloudready
|
||||||
fi
|
fi
|
||||||
|
elif vt_str_begin "$vtImgHd3Label" "fwts-result"; then
|
||||||
|
ventoy_img_fwts
|
||||||
elif vt_str_begin "$vtImgHd1Label" "LAKKA"; then
|
elif vt_str_begin "$vtImgHd1Label" "LAKKA"; then
|
||||||
ventoy_img_openelec lakka
|
ventoy_img_openelec lakka
|
||||||
elif vt_str_begin "$vtImgHd1Label" "LIBREELEC"; then
|
elif vt_str_begin "$vtImgHd1Label" "LIBREELEC"; then
|
||||||
@@ -2386,7 +2395,7 @@ function mimg_common_menuentry {
|
|||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
set VENTOY_VERSION="1.0.87"
|
set VENTOY_VERSION="1.0.92"
|
||||||
|
|
||||||
#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
|
||||||
|
19
INSTALL/grub/help/cs_CZ.txt
Normal file
19
INSTALL/grub/help/cs_CZ.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - Výběr jazyka
|
||||||
|
F1 - Zobrazení nápovědy
|
||||||
|
F2 - Procházet spouštět soubory na disku
|
||||||
|
F3 - Přepínat mezi zobrazením stromu a seznamu
|
||||||
|
F4 - Spustit Windows/Linux na disku
|
||||||
|
F5 - Nástroje
|
||||||
|
F6 - Nahrát vlastní Grub2 nabídku
|
||||||
|
F7 - Přepínat mezi grafickým a textovým režimem
|
||||||
|
|
||||||
|
m/Ctrl+m - Kontrolní součky obrazů (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Memdisk režim (pouze pro malé WinPE/LiveCD ISO/IMG)
|
||||||
|
w/Ctrl+w - WIMBOOT režim (pouze pro Windows/WinPE ISO soubory)
|
||||||
|
r/Ctrl+r - Grub2 režim (pouze pro některé linuxové distribuce)
|
||||||
|
i/Ctrl+i - Režim kompatibility (pouze pro ladění)
|
||||||
|
u/Ctrl+u - Nahrát ISO EFI ovladač (pouze pro ladění, oficiálně nejde použít)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Stiskněte ESC pro návrat ......
|
19
INSTALL/grub/help/el_GR.txt
Normal file
19
INSTALL/grub/help/el_GR.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - Επιλογή Γλώσσας
|
||||||
|
F1 - Εμφάνιση πληροφοριών βοήθειας
|
||||||
|
F2 - Περιήγηση και εκκίνηση αρχείων στον τοπικό δίσκο
|
||||||
|
F3 - Εναλλαγή λειτουργίας μενού μεταξύ Προβολής Δένδρου <-> Προβολή Λίστας
|
||||||
|
F4 - Εκκίνηση Windows/Linux στον τοπικό δίσκο
|
||||||
|
F5 - Εργαλεία
|
||||||
|
F6 - Φόρτωση προσαρμοσμένου μενού Grub2
|
||||||
|
F7 - Εναλλαγή μεταξύ Λειτουργίας GUI <-> Λειτουργίας ΚΕΙΜΕΝΟΥ
|
||||||
|
|
||||||
|
m/Ctrl+m - Αρχεία εικόνας Checksum (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Λειτουργία Memdisk (Μόνο για μικρά WinPE/LiveCD ISO/IMG)
|
||||||
|
w/Ctrl+w - Λειτουργία WIMBOOT (Μόνο για αρχεία ISO Windows/WinPE)
|
||||||
|
r/Ctrl+r - Λειτουργία Grub2 (Μόνο για ορισμένες διανομές Linux)
|
||||||
|
i/Ctrl+i - Λειτουργία Συμβατότητας (Μόνο για εντοπισμό σφαλμάτων - debugging)
|
||||||
|
u/Ctrl+u - Φόρτωση προγράμματος οδήγησης ISO EFI (Μόνο για εντοπισμό σφαλμάτων - debugging, δεν μπορεί να χρησιμοποιηθεί επίσημα)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Πατήστε ESC για επιστροφή ......
|
@@ -1,17 +1,17 @@
|
|||||||
L - 언어 선택
|
L - 언어 선택
|
||||||
F1 - 이 도움말 정보 표시
|
F1 - 이 도움말 정보 표시
|
||||||
F2 - 로컬 디스크에서 파일 찾아보기 및 부트
|
F2 - 로컬 디스크에서 파일 찾아보기 및 부팅
|
||||||
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
F3 - 트리보기 <-> 목록보기 간에 메뉴 모드 전환
|
||||||
F4 - 로컬 디스크에서 Windows/Linux 부트
|
F4 - 로컬 디스크에서 Windows/Linux 부팅
|
||||||
F5 - 유틸리티
|
F5 - 유틸리티
|
||||||
F6 - 사용자 지정 Grub2 메뉴 불러오기
|
F6 - 사용자 지정 Grub2 메뉴 불러오기
|
||||||
F7 - GUI 모드 <-> TEXT 모드 간에 전환
|
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 모드 (표준 Windows/WinPE ISO 전용)
|
w/Ctrl+w - WIMBOOT 모드 (표준 Windows/WinPE ISO 전용)
|
||||||
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 드라이버 불러오기 (디버그 전용, 공식적으로 사용할 수 없음)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
L - Выбор языка
|
L - Выбор языка
|
||||||
F1 - Показать эти справочные сведения
|
F1 - Показать эти справочные сведения
|
||||||
F2 - Просмотр и загрузка файлов на локальном диске
|
F2 - Просмотр и загрузка файлов на локальном диске
|
||||||
F3 - Переключить режим меню между «ВидДревом» <-> «ВидСписком»
|
F3 - Переключить режим меню между «Вид древом» <-> «Вид списком»
|
||||||
F4 - Загрузка винды/линукса с локального диска
|
F4 - Загрузка Windows/Linux с локального диска
|
||||||
F5 - Утилиты
|
F5 - Утилиты
|
||||||
F6 - Загрузить пользовательское меню Grub2
|
F6 - Загрузить пользовательское меню Grub2
|
||||||
F7 - Переключиться между графическим режимом <-> текстовым режимом
|
F7 - Переключиться между графическим режимом <-> текстовым режимом
|
||||||
@@ -10,7 +10,7 @@ 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 (только для Windows/WinPE ISO)
|
w/Ctrl+w - Режим WIMBOOT (только для Windows/WinPE ISO)
|
||||||
r/Ctrl+r - Режим Grub2 (только для некоторых сборок линукса)
|
r/Ctrl+r - Режим Grub2 (только для некоторых дистрибутивов Linux)
|
||||||
i/Ctrl+i - Совместимый режим (только для отладки)
|
i/Ctrl+i - Совместимый режим (только для отладки)
|
||||||
u/Ctrl+u - Загрузить драйвер ISO EFI (только для отладки, нельзя использовать официально)
|
u/Ctrl+u - Загрузить драйвер ISO EFI (только для отладки, нельзя использовать официально)
|
||||||
|
|
||||||
|
@@ -1,18 +1,18 @@
|
|||||||
L - Dil Seçimi
|
L - Dil Seçimi
|
||||||
F1 - Yardım bilgilerini göster
|
F1 - Yardım bilgilerini göster
|
||||||
F2 - Yerel diskteki önyükleme dosyalarına GÖZAT ve yerel diskten Önyükleme yap
|
F2 - Yerel diskteki önyükleme dosyalarına GÖZAT ve Önyükleme yap
|
||||||
F3 - Ventoy Menü modu olarak,Klasör görünümü(Treeview) ile Liste görünümü(ListView) arasında geçiş yapmayı sağlar.
|
F3 - Menü modunu Ağaç Görünümü <-> Liste Görünümü arasında değiştir
|
||||||
F4 - Bilgisayarınızda yüklü olan Windows yada Linux işletim sistemini, sabit diskten başlatır.
|
F4 - Windows & Linux'u yerel diskten önyükle
|
||||||
F5 - Ventoy Araçlar menüsü
|
F5 - Ventoy Araçlar menüsü
|
||||||
F6 - Özelleştirilmiş Grub2 menüsünü yükler
|
F6 - Özelleştirilmiş Grub2 menüsünü yükle
|
||||||
F7 - Grafik Modu(GUI Mode) <--> Metin Modu(Text Mode) arasında geçiş yapmayı sağlar
|
F7 - Grafik(GUI) <--> Metin(Text) modları arasında geçiş yap
|
||||||
|
|
||||||
m/Ctrl+m - İndirilen imaj dosyalarının hatasız indirildiğini teyit etmek için "md5/sha1/sha256/sha512" değerlerini kontrol etmeyi sağlar
|
m/Ctrl+m - Görüntü dosyalarını sağlama toplamı (md5/sha1/sha256/sha512)
|
||||||
d/Ctrl+d - Memdisk Modu başlatır(Yalnızca küçük WinPE/LiveCD ISO/IMG ler için bu modu kullanabilirsiniz)
|
d/Ctrl+d - Memdisk Modu başlat(Yalnızca küçük WinPE/LiveCD ISO/IMG ler için)
|
||||||
w/Ctrl+w - WIMBOOT Modu çalıştırmayı sağlar(Sadece normal Windows/WinPE ISO ları için)
|
w/Ctrl+w - WIMBOOT Modu başlat(Yalnızca normal Windows/WinPE ISO ları için)
|
||||||
r/Ctrl+r - Grub2 Modu çalıştırmayı sağlar (Sadece bazı Linux dağıtımları için)
|
r/Ctrl+r - Grub2 Modu başlat (Yalnızca bazı Linux dağıtımları için)
|
||||||
i/Ctrl+i - Uyumluluk Modu'nu (Compatible Mode) çalıştırmayı sağlar (Sadece hata ayıklama için bu modu kullanabilirsiniz)
|
i/Ctrl+i - Uyumluluk Modu (Yalnızca hata ayıklama için )
|
||||||
u/Ctrl+u - ISO efi sürücüsünü yükler(Sadece hata ayıklama için bu mod kullanılabilir, resmi olarak kullanılamaz)
|
u/Ctrl+u - ISO efi sürücüsünü yükle (Saedece hata ayıklama için, resmi olarak kullanılamaz)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
19
INSTALL/grub/help/uk_UA.txt
Normal file
19
INSTALL/grub/help/uk_UA.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
L - Обрати мову
|
||||||
|
F1 - Показати довідку
|
||||||
|
F2 - Переглянути та завантажити файли з локального диску
|
||||||
|
F3 - Переключитись між видами деревом <-> списком
|
||||||
|
F4 - Завантажити Windows/Linux з локального диску
|
||||||
|
F5 - Інструменти
|
||||||
|
F6 - Завантажити Custom Grub2 меню
|
||||||
|
F7 - Переключитись між графічним інтерфейсом <-> текстовим інтерфейсом
|
||||||
|
|
||||||
|
m/Ctrl+m - Контрольна сума образу диску (md5/sha1/sha256/sha512)
|
||||||
|
d/Ctrl+d - Режим Memdisk (Тільки для невеликих образів WinPE/LiveCD ISO/IMG)
|
||||||
|
w/Ctrl+w - Режим WIMBOOT (Тільки для ISO-файлів Windows/WinPE)
|
||||||
|
r/Ctrl+r - Режим Grub2 (Тільки для деяких дистрибутивів Linux)
|
||||||
|
i/Ctrl+i - Сумісний режим (Тільки для зневадження)
|
||||||
|
u/Ctrl+u - Завантажити драйвер ISO EFI (Тільки для зневадження, не офіційно)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Натисність ESC для того, щоб повернутися ......
|
@@ -163,7 +163,6 @@ else
|
|||||||
terminal_output console
|
terminal_output console
|
||||||
chainloader /vtefi/boot/bootaa64.efi
|
chainloader /vtefi/boot/bootaa64.efi
|
||||||
boot
|
boot
|
||||||
else
|
|
||||||
else
|
else
|
||||||
unset VTOY_SEARCH_NO_VTOYEFI
|
unset VTOY_SEARCH_NO_VTOYEFI
|
||||||
echo "BOOTAA64.EFI NOT found ..."
|
echo "BOOTAA64.EFI NOT found ..."
|
||||||
|
93
INSTALL/grub/menu/cs_CZ.json
Normal file
93
INSTALL/grub/menu/cs_CZ.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"VTLANG_LANGUAGE_NAME": "Czech (Čeština)",
|
||||||
|
|
||||||
|
"VTLANG_STR_HOTKEY_LIST": "L:Jazyk F1:Nápověda F2:Procházet F3:Seznam F4:Místní boot F5:Nástroje F6:Rozšířená nabídka",
|
||||||
|
"VTLANG_STR_HOTKEY_TREE": "L:Jazyk F1:Nápověda F2:Procházet F3:Strom F4:Místní boot F5:Nástroje F6:Rozšířená nabídka",
|
||||||
|
"VTLANG_RETURN_PREVIOUS": "Vrátit do předchozí nabídky [Esc]",
|
||||||
|
"VTLANG_RETURN_PRV_NOESC": "Vrátit do předchozí nabídky",
|
||||||
|
|
||||||
|
"VTLANG_MENU_LANG": "Výběrt jazyka nabídel",
|
||||||
|
|
||||||
|
"VTLANG_LB_SBOOT_WINDOWS": "Najít a spustit Windows",
|
||||||
|
"VTLANG_LB_SBOOT_G4D": "Najít a spustit Grub4dos",
|
||||||
|
"VTLANG_LB_SBOOT_HDD1": "Spustit 1. místní disk",
|
||||||
|
"VTLANG_LB_SBOOT_HDD2": "Spustit 2. místní disk",
|
||||||
|
"VTLANG_LB_SBOOT_HDD3": "Spustit 3. místní disk",
|
||||||
|
"VTLANG_LB_SBOOT_X64EFI": "Najít a spustit BOOTX64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_IA32EFI": "Najít a spustit BOOTIA32.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_AA64EFI": "Najít a spustit BOOTAA64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_XORBOOT": "Najít a spustit xorboot",
|
||||||
|
|
||||||
|
"VTLANG_FILE_CHKSUM": "Kontrolní součet souboru",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC": "Spočítat md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC": "Spočítat sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC": "Spočítat sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC": "Spočítat sha512sum",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "Spočítat a ověřit md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "Spočítat a ověřit sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Spočítat a ověřit sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Spočítat a ověřit sha512sum",
|
||||||
|
|
||||||
|
"VTLANG_POWER": "Napájení",
|
||||||
|
"VTLANG_POWER_REBOOT": "Restartovat",
|
||||||
|
"VTLANG_POWER_HALT": "Vypnout",
|
||||||
|
"VTLANG_POWER_BOOT_EFIFW": "Restartovat do EFI nastavení",
|
||||||
|
|
||||||
|
"VTLANG_KEYBRD_LAYOUT": "Rozložení klávesnice",
|
||||||
|
"VTLANG_HWINFO": "Informace o hardwaru",
|
||||||
|
|
||||||
|
"VTLANG_RESOLUTION_CFG": "Nastavení rolišení",
|
||||||
|
"VTLANG_SCREEN_MODE": "Nastavení režimu zobrazení",
|
||||||
|
"VTLANG_SCREEN_TEXT_MODE": "Vynutit textový režim",
|
||||||
|
"VTLANG_SCREEN_GUI_MODE": "Vynutit grafický režim",
|
||||||
|
|
||||||
|
"VTLANG_THEME_SELECT": "Výběr motivu",
|
||||||
|
|
||||||
|
"VTLANG_UEFI_UTIL": "Ventoy UEFI nástroje",
|
||||||
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Zobrazit EFI ovladače",
|
||||||
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Opravit chybu Windows BlinitializeLibrary",
|
||||||
|
|
||||||
|
"VTLANG_JSON_CHK_JSON": "Zkontrolovat json konfiguraci zásuvných modulů (ventoy.json)",
|
||||||
|
"VTLANG_JSON_CHK_CONTROL": "Zkontrolovat konfiguraci hlavního zásuvného modulu",
|
||||||
|
"VTLANG_JSON_CHK_THEME": "Zkontrolovat konfiguraci zásuvného modulu motivů",
|
||||||
|
"VTLANG_JSON_CHK_AUTOINS": "Zkontrolovat konfiguraci zásuvného modulu automatické instalace",
|
||||||
|
"VTLANG_JSON_CHK_PERSIST": "Zkontrolovat konfiguraci zásuvného modulu perzistence",
|
||||||
|
"VTLANG_JSON_CHK_MENU_ALIAS": "Zkontrolovat konfiguraci zásuvného modulu aliasů",
|
||||||
|
"VTLANG_JSON_CHK_MENU_TIP": "Zkontrolovat konfiguraci zásuvného modulu tip",
|
||||||
|
"VTLANG_JSON_CHK_MENU_CLASS": "Zkontrolovat konfiguraci zásuvného modulu tříd",
|
||||||
|
"VTLANG_JSON_CHK_INJECTION": "Zkontrolovat konfiguraci zásuvného modulu injekcí",
|
||||||
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Zkontrolovat konfiguraci zásuvného modulu automatického memdisku",
|
||||||
|
"VTLANG_JSON_CHK_IMG_LIST": "Zkontrolovat konfiguraci zásuvného modulu seznamu obrazů",
|
||||||
|
"VTLANG_JSON_CHK_IMG_BLIST": "Zkontrolovat konfiguraci zásuvného modulu černé listiny obrazů",
|
||||||
|
"VTLANG_JSON_CHK_CONF_REPLACE": "Zkontrolovat konfiguraci zásuvného modulu nahrazení konfigurace spouštění",
|
||||||
|
"VTLANG_JSON_CHK_DUD": "Zkontrolovat konfiguraci zásuvného modulu dud",
|
||||||
|
"VTLANG_JSON_CHK_PASSWORD": "Zkontrolovat konfiguraci zásuvného modulu hesla",
|
||||||
|
|
||||||
|
"VTLANG_NORMAL_MODE": "Spustit normálně",
|
||||||
|
"VTLANG_WIMBOOT_MODE": "Spustit v režimu wimboot",
|
||||||
|
"VTLANG_GRUB2_MODE": "Spustit v režimu grub2",
|
||||||
|
"VTLANG_MEMDISK_MODE": "Spustit v režimu memdisk",
|
||||||
|
|
||||||
|
"VTLANG_RET_TO_LISTVIEW": "Vrátis do zobrazení seznamu",
|
||||||
|
"VTLANG_RET_TO_TREEVIEW": "Vrátit do zobrazení stromu",
|
||||||
|
|
||||||
|
"VTLANG_NO_AUTOINS_SCRIPT": "Spustit bez šablony automatické instalace",
|
||||||
|
"VTLANG_AUTOINS_USE": "Spustit s",
|
||||||
|
|
||||||
|
"VTLANG_NO_PERSIST": "Spustit bez perzistence",
|
||||||
|
"VTLANG_PERSIST_USE": "Spustit s",
|
||||||
|
|
||||||
|
"VTLANG_BROWER_RETURN": "Vrátit",
|
||||||
|
|
||||||
|
"VTLANG_ENTER_EXIT": "zmáčkněte Enter pro ukončení",
|
||||||
|
"VTLANG_ENTER_REBOOT": "zmáčkněte Enter pro restart",
|
||||||
|
"VTLANG_ENTER_CONTINUE": "zmáčkněte enter pro pokračování",
|
||||||
|
|
||||||
|
"VTLANG_CTRL_TEMP_SET": "Dočasné řídící nastavení",
|
||||||
|
"VTLANG_WIN11_BYPASS_CHECK": "Obejít CPU/TPM/SecureBoot kontrolu při instalaci Windows 11",
|
||||||
|
"VTLANG_WIN11_BYPASS_NRO": "Obejít požadování online účtu při instalaci Windows 11",
|
||||||
|
"VTLANG_LINUX_REMOUNT": "Připojit Ventoy oddíl po spuštění Linuxu",
|
||||||
|
"VTLANG_SECONDARY_BOOT_MENU": "Zobrazit druhou spouštěcí nabídku",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
93
INSTALL/grub/menu/el_GR.json
Normal file
93
INSTALL/grub/menu/el_GR.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"VTLANG_LANGUAGE_NAME": "Greek (Ελληνικά)",
|
||||||
|
|
||||||
|
"VTLANG_STR_HOTKEY_LIST": "L:Γλώσσα F1:Βοήθεια F2:Περιήγηση F3:Προβολή Λίστας F4:Εκκίνηση από τοπικό δίσκο F5:Εργαλεία F6:Προσ. Μενού",
|
||||||
|
"VTLANG_STR_HOTKEY_TREE": "L:Γλώσσα F1:Βοήθεια F2:Περιήγηση F3:Προβολή Δένδρου F4:Εκκίνηση από τοπικό δίσκο F5:Εργαλεία F6:Προσ. Μενού",
|
||||||
|
"VTLANG_RETURN_PREVIOUS": "Επιστροφή στο προηγούμενο μενού [Esc]",
|
||||||
|
"VTLANG_RETURN_PRV_NOESC": "Επιστροφή στο προηγούμενο μενού",
|
||||||
|
|
||||||
|
"VTLANG_MENU_LANG": "Επιλογή Γλώσσας Μενού",
|
||||||
|
|
||||||
|
"VTLANG_LB_SBOOT_WINDOWS": "Αναζήτηση και εκκίνηση των Windows",
|
||||||
|
"VTLANG_LB_SBOOT_G4D": "Αναζήτηση και εκκίνηση του Grub4dos",
|
||||||
|
"VTLANG_LB_SBOOT_HDD1": "Εκκίνηση του 1ου τοπικού δίσκου",
|
||||||
|
"VTLANG_LB_SBOOT_HDD2": "Εκκίνηση του 2ου τοπικού δίσκου",
|
||||||
|
"VTLANG_LB_SBOOT_HDD3": "Εκκίνηση του 3ου τοπικού δίσκου",
|
||||||
|
"VTLANG_LB_SBOOT_X64EFI": "Αναζήτηση και εκκίνηση του BOOTX64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_IA32EFI": "Αναζήτηση και εκκίνηση του BOOTIA32.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_AA64EFI": "Αναζήτηση και εκκίνηση του BOOTAA64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_XORBOOT": "Αναζήτηση και εκκίνηση του xorboot",
|
||||||
|
|
||||||
|
"VTLANG_FILE_CHKSUM": "Αρχείο checksum",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC": "Υπολογισμός md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC": "Υπολογισμός sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC": "Υπολογισμός sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC": "Υπολογισμός sha512sum",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "Υπολογισμός και έλεγχος md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "Υπολογισμός και έλεγχος sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Υπολογισμός και έλεγχος sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Υπολογισμός και έλεγχος sha512sum",
|
||||||
|
|
||||||
|
"VTLANG_POWER": "Λειτουργία",
|
||||||
|
"VTLANG_POWER_REBOOT": "Επανεκκίνηση",
|
||||||
|
"VTLANG_POWER_HALT": "Απενεργοποίηση",
|
||||||
|
"VTLANG_POWER_BOOT_EFIFW": "Επανεκκίνηση σε EFI setup",
|
||||||
|
|
||||||
|
"VTLANG_KEYBRD_LAYOUT": "Διατάξεις Πληκτρολογίου",
|
||||||
|
"VTLANG_HWINFO": "Πληροφορίες υλικού",
|
||||||
|
|
||||||
|
"VTLANG_RESOLUTION_CFG": "Διαμόρφωση ανάλυσης",
|
||||||
|
"VTLANG_SCREEN_MODE": "Λειτουργία Προβολής Οθόνης",
|
||||||
|
"VTLANG_SCREEN_TEXT_MODE": "Επιβολή λειτουργίας κειμένου",
|
||||||
|
"VTLANG_SCREEN_GUI_MODE": "Επιβολή λειτουργίας Γραφικών (GUI)",
|
||||||
|
|
||||||
|
"VTLANG_THEME_SELECT": "Επιλογή Θέματος",
|
||||||
|
|
||||||
|
"VTLANG_UEFI_UTIL": "Εργαλεία Ventoy UEFI",
|
||||||
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Προβολή EFI Drivers",
|
||||||
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Διόρθωση αποτυχίας Windows BlinitializeLibrary",
|
||||||
|
|
||||||
|
"VTLANG_JSON_CHK_JSON": "Ελεγχος διαμόρφωσης json πρόσθετων (ventoy.json)",
|
||||||
|
"VTLANG_JSON_CHK_CONTROL": "Ελεγχος διαμόρφωσης του πρόσθετου καθολικού ελέγχου",
|
||||||
|
"VTLANG_JSON_CHK_THEME": "Ελεγχος διαμόρφωσης του πρόσθετου θέματος",
|
||||||
|
"VTLANG_JSON_CHK_AUTOINS": "Ελεγχος διαμόρφωσης του πρόσθετου αυτόματης εγκατάστασης",
|
||||||
|
"VTLANG_JSON_CHK_PERSIST": "Ελεγχος διαμόρφωσης του πρόσθετου επιμονής",
|
||||||
|
"VTLANG_JSON_CHK_MENU_ALIAS": "Ελεγχος διαμόρφωσης του πρόσθετου ψευδώνυμου μενού",
|
||||||
|
"VTLANG_JSON_CHK_MENU_TIP": "Ελεγχος διαμόρφωσης του πρόσθετου συμβουλών μενού",
|
||||||
|
"VTLANG_JSON_CHK_MENU_CLASS": "Ελεγχος διαμόρφωσης του πρόσθετου κατηγορίας μενού",
|
||||||
|
"VTLANG_JSON_CHK_INJECTION": "Ελεγχος διαμόρφωσης του πρόσθετου injection",
|
||||||
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Ελεγχος διαμόρφωσης του πρόσθετου auto memdisk",
|
||||||
|
"VTLANG_JSON_CHK_IMG_LIST": "Ελεγχος διαμόρφωσης του πρόσθετου Λίστα images",
|
||||||
|
"VTLANG_JSON_CHK_IMG_BLIST": "Ελεγχος διαμόρφωσης του πρόσθετου Μαύρη λίστα images",
|
||||||
|
"VTLANG_JSON_CHK_CONF_REPLACE": "Ελεγχος διαμόρφωσης του πρόσθετου Αντικατάσταση διαμόρφ. εκκίνησης",
|
||||||
|
"VTLANG_JSON_CHK_DUD": "Ελεγχος διαμόρφωσης του πρόσθετου dud",
|
||||||
|
"VTLANG_JSON_CHK_PASSWORD": "Ελεγχος διαμόρφωσης του πρόσθετου Κωδικός πρόσβασης",
|
||||||
|
|
||||||
|
"VTLANG_NORMAL_MODE": "Κανονική εκκίνηση",
|
||||||
|
"VTLANG_WIMBOOT_MODE": "Εκκίνηση σε λειτουργία wimboot",
|
||||||
|
"VTLANG_GRUB2_MODE": "Εκκίνηση σε λειτουργία grub2",
|
||||||
|
"VTLANG_MEMDISK_MODE": "Εκκίνηση σε λειτουργία memdisk",
|
||||||
|
|
||||||
|
"VTLANG_RET_TO_LISTVIEW": "Επιστροφή σε Προβολή Λίστας",
|
||||||
|
"VTLANG_RET_TO_TREEVIEW": "Επιστροφή σε Προβολή Δένδρου",
|
||||||
|
|
||||||
|
"VTLANG_NO_AUTOINS_SCRIPT": "Εκκίνηση χωρίς πρότυπο αυτόματης εγκατάστασης",
|
||||||
|
"VTLANG_AUTOINS_USE": "Εκκίνηση",
|
||||||
|
|
||||||
|
"VTLANG_NO_PERSIST": "Εκκίνηση χωρίς επιμονή",
|
||||||
|
"VTLANG_PERSIST_USE": "Εκκίνηση",
|
||||||
|
|
||||||
|
"VTLANG_BROWER_RETURN": "Επιστροφή",
|
||||||
|
|
||||||
|
"VTLANG_ENTER_EXIT": "πατήστε το πλήκτρο Enter για έξοδο",
|
||||||
|
"VTLANG_ENTER_REBOOT": "πατήστε το πλήκτρο Enter για επανεκκίνηση",
|
||||||
|
"VTLANG_ENTER_CONTINUE": "πατήστε το πλήκτρο Enter για να συνεχίσετε",
|
||||||
|
|
||||||
|
"VTLANG_CTRL_TEMP_SET": "Προσωρινές ρυθμίσεις ελέγχου",
|
||||||
|
"VTLANG_WIN11_BYPASS_CHECK": "Παράκαμψη ελέγχου CPU/TPM/SecureBoot κατά την εγκατάσταση των Windows 11",
|
||||||
|
"VTLANG_WIN11_BYPASS_NRO": "Παράκαμψη της απαίτησης online λογαριασμού κατά την εγκατάσταση των Windows 11",
|
||||||
|
"VTLANG_LINUX_REMOUNT": "Προσάρτηση διαμερίσματος Ventoy μετά την εκκίνηση του Linux",
|
||||||
|
"VTLANG_SECONDARY_BOOT_MENU": "Εμφάνιση δευτερεύοντος μενού εκκίνησης",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -1,4 +1,4 @@
|
|||||||
|
{
|
||||||
"VTLANG_LANGUAGE_NAME": "Hungarian (Magyar)",
|
"VTLANG_LANGUAGE_NAME": "Hungarian (Magyar)",
|
||||||
|
|
||||||
"VTLANG_STR_HOTKEY_LIST": "L:Nyelv F1:Súgó F2:Tallóz F3:Listanézet F4:Helyi indítás F5:Eszközök F6:Bővített menü",
|
"VTLANG_STR_HOTKEY_LIST": "L:Nyelv F1:Súgó F2:Tallóz F3:Listanézet F4:Helyi indítás F5:Eszközök F6:Bővített menü",
|
||||||
|
@@ -1,37 +1,37 @@
|
|||||||
{
|
{
|
||||||
"VTLANG_LANGUAGE_NAME": "Korean (한국어)",
|
"VTLANG_LANGUAGE_NAME": "Korean (한국어)",
|
||||||
|
|
||||||
"VTLANG_STR_HOTKEY_LIST": "번역: 비너스걸 L:언어 F1:도움말 F2:찾아보기 F3:목록보기 F4:로컬부트 F5:도구 F6:확장메뉴",
|
"VTLANG_STR_HOTKEY_LIST": " L:언어 F1:도움말 F2:찾아보기 F3:목록 보기 F4:로컬 부팅 F5:도구 F6:확장 메뉴",
|
||||||
"VTLANG_STR_HOTKEY_TREE": "번역: 비너스걸 L:언어 F1:도움말 F2:찾아보기 F3:목록보기 F4:로컬부트 F5:도구 F6:확장메뉴",
|
"VTLANG_STR_HOTKEY_TREE": " L:언어 F1:도움말 F2:찾아보기 F3:트리 보기 F4:로컬 부팅 F5:도구 F6:확장 메뉴",
|
||||||
"VTLANG_RETURN_PREVIOUS": "이전 메뉴로 돌아가기 [Esc]",
|
"VTLANG_RETURN_PREVIOUS": "이전 메뉴로 돌아가기 [Esc]",
|
||||||
"VTLANG_RETURN_PRV_NOESC": "이전 메뉴로 돌아가기",
|
"VTLANG_RETURN_PRV_NOESC": "이전 메뉴로 돌아가기",
|
||||||
|
|
||||||
"VTLANG_MENU_LANG": "메뉴 언어 선택",
|
"VTLANG_MENU_LANG": "메뉴 언어 선택",
|
||||||
|
|
||||||
"VTLANG_LB_SBOOT_WINDOWS": "Windows 검색 및 부트",
|
"VTLANG_LB_SBOOT_WINDOWS": "Windows 검색 및 부팅",
|
||||||
"VTLANG_LB_SBOOT_G4D": "Grub4dos 검색 및 부트",
|
"VTLANG_LB_SBOOT_G4D": "Grub4dos 검색 및 부팅",
|
||||||
"VTLANG_LB_SBOOT_HDD1": "첫 번째 로컬 디스크 부트",
|
"VTLANG_LB_SBOOT_HDD1": "첫 번째 로컬 디스크 부팅",
|
||||||
"VTLANG_LB_SBOOT_HDD2": "두 번째 로컬 디스크 부트",
|
"VTLANG_LB_SBOOT_HDD2": "두 번째 로컬 디스크 부팅",
|
||||||
"VTLANG_LB_SBOOT_HDD3": "세 번째 로컬 디스크 부트",
|
"VTLANG_LB_SBOOT_HDD3": "세 번째 로컬 디스크 부팅",
|
||||||
"VTLANG_LB_SBOOT_X64EFI": "BOOTX64.EFI 검색 및 부트",
|
"VTLANG_LB_SBOOT_X64EFI": "BOOTX64.EFI 검색 및 부팅",
|
||||||
"VTLANG_LB_SBOOT_IA32EFI": "BOOTIA32.EFI 검색 및 부트",
|
"VTLANG_LB_SBOOT_IA32EFI": "BOOTIA32.EFI 검색 및 부팅",
|
||||||
"VTLANG_LB_SBOOT_AA64EFI": "BOOTAA64.EFI 검색 및 부트",
|
"VTLANG_LB_SBOOT_AA64EFI": "BOOTAA64.EFI 검색 및 부팅",
|
||||||
"VTLANG_LB_SBOOT_XORBOOT": "xorboot 검색 및 부트",
|
"VTLANG_LB_SBOOT_XORBOOT": "xorboot 검색 및 부팅",
|
||||||
|
|
||||||
"VTLANG_FILE_CHKSUM": "파일 체크섬",
|
"VTLANG_FILE_CHKSUM": "파일 체크섬",
|
||||||
"VTLANG_CHKSUM_MD5_CALC": "md5sum 계산",
|
"VTLANG_CHKSUM_MD5_CALC": "md5 검사값 계산",
|
||||||
"VTLANG_CHKSUM_SHA1_CALC": "sha1sum 계산",
|
"VTLANG_CHKSUM_SHA1_CALC": "sha1 검사값 계산",
|
||||||
"VTLANG_CHKSUM_SHA256_CALC": "sha256sum 계산",
|
"VTLANG_CHKSUM_SHA256_CALC": "sha256 검사값 계산",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC": "sha512sum 계산",
|
"VTLANG_CHKSUM_SHA512_CALC": "sha512 검사값 계산",
|
||||||
"VTLANG_CHKSUM_MD5_CALC_CHK": "md5sum 계산 및 확인",
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "md5 검사값 계산 및 확인",
|
||||||
"VTLANG_CHKSUM_SHA1_CALC_CHK": "sha1sum 계산 및 확인",
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "sha1 검사값 계산 및 확인",
|
||||||
"VTLANG_CHKSUM_SHA256_CALC_CHK": "sha256sum 계산 및 확인",
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "sha256 검사값 계산 및 확인",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC_CHK": "sha512sum 계산 및 확인",
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "sha512 검사값 계산 및 확인",
|
||||||
|
|
||||||
"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 설정으로 다시 시작",
|
||||||
|
|
||||||
"VTLANG_KEYBRD_LAYOUT": "키보드 레이아웃",
|
"VTLANG_KEYBRD_LAYOUT": "키보드 레이아웃",
|
||||||
"VTLANG_HWINFO": "하드웨어 정보",
|
"VTLANG_HWINFO": "하드웨어 정보",
|
||||||
@@ -44,14 +44,14 @@
|
|||||||
"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": "UEFI 드라이버 표시",
|
||||||
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Windows 초기화 라이브러리 오류 복구",
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Windows 초기화 라이브러리 오류 복구",
|
||||||
|
|
||||||
"VTLANG_JSON_CHK_JSON": "플러그인 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": "자동 설치 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_PERSIST": "지속성 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_PERSIST": "영구화 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_MENU_ALIAS": "메뉴 별칭 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_MENU_ALIAS": "메뉴 별칭 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_MENU_TIP": "메뉴 팁 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_MENU_TIP": "메뉴 팁 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_MENU_CLASS": "메뉴 클래스 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_MENU_CLASS": "메뉴 클래스 플러그인 구성 확인",
|
||||||
@@ -60,34 +60,33 @@
|
|||||||
"VTLANG_JSON_CHK_IMG_LIST": "이미지 목록 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_IMG_LIST": "이미지 목록 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_IMG_BLIST": "이미지 블랙리스트 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_IMG_BLIST": "이미지 블랙리스트 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_CONF_REPLACE": "부팅 구성 대체 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_CONF_REPLACE": "부팅 구성 대체 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_DUD": "드라이버 디스크 업데이트 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_DUD": "드라이버 업데이트 디스크 플러그인 구성 확인",
|
||||||
"VTLANG_JSON_CHK_PASSWORD": "암호 플러그인 구성 확인",
|
"VTLANG_JSON_CHK_PASSWORD": "암호 플러그인 구성 확인",
|
||||||
|
|
||||||
"VTLANG_NORMAL_MODE": "정상 모드로 부트",
|
"VTLANG_NORMAL_MODE": "일반 모드로 부팅",
|
||||||
"VTLANG_WIMBOOT_MODE": "wimboot 모드로 부트",
|
"VTLANG_WIMBOOT_MODE": "wimboot 모드로 부팅",
|
||||||
"VTLANG_GRUB2_MODE": "grub2 모드로 부팅",
|
"VTLANG_GRUB2_MODE": "grub2 모드로 부팅",
|
||||||
"VTLANG_MEMDISK_MODE": "memdisk 모드로 부트",
|
"VTLANG_MEMDISK_MODE": "메모리 디스크 모드로 부팅",
|
||||||
|
|
||||||
"VTLANG_RET_TO_LISTVIEW": "목록 보기로 돌아가기",
|
"VTLANG_RET_TO_LISTVIEW": "목록보기로 돌아가기",
|
||||||
"VTLANG_RET_TO_TREEVIEW": "트리 보기로 돌아가기",
|
"VTLANG_RET_TO_TREEVIEW": "트리보기로 돌아가기",
|
||||||
|
|
||||||
"VTLANG_NO_AUTOINS_SCRIPT": "자동 설치 템플릿 없이 부트",
|
"VTLANG_NO_AUTOINS_SCRIPT": "자동 설치 스크립트 사용 안 함",
|
||||||
"VTLANG_AUTOINS_USE": "부팅 대상",
|
"VTLANG_AUTOINS_USE": "부팅 대상",
|
||||||
|
|
||||||
"VTLANG_NO_PERSIST": "지속성 없는 부트",
|
"VTLANG_NO_PERSIST": "영구화된 데이터 파일 사용 안 함",
|
||||||
"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을 설치할 때 우회 점검",
|
"VTLANG_WIN11_BYPASS_CHECK": "Windows 11 설치 시 CPU/TPM/Secure Boot 검사 회피",
|
||||||
"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": "보조 부팅 메뉴 표시",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
{
|
{
|
||||||
"VTLANG_LANGUAGE_NAME": "Polish (Poland)",
|
"VTLANG_LANGUAGE_NAME": "Polish (Poland)",
|
||||||
|
|
||||||
"VTLANG_STR_HOTKEY_LIST": "L:Język F1:Pomoc F2:Przeglądaj F3:ListView F4:Localboot F5:Narzędzia F6:ExMenu",
|
"VTLANG_STR_HOTKEY_LIST": "L:Język F1:Pomoc F2:Przeglądaj F3:Widok listy F4:Localboot F5:Narzędzia F6:ExMenu",
|
||||||
"VTLANG_STR_HOTKEY_TREE": "L:Język F1:Pomoc F2:Przeglądaj F3:Widok drzewa F4:Localboot F5:Narzędzia F6:ExMenu",
|
"VTLANG_STR_HOTKEY_TREE": "L:Język F1:Pomoc F2:Przeglądaj F3:Widok drzewa F4:Localboot F5:Narzędzia F6:ExMenu",
|
||||||
"VTLANG_RETURN_PREVIOUS": "Powrót do poprzedniego menu [Esc]",
|
"VTLANG_RETURN_PREVIOUS": "Powrót do poprzedniego menu [Esc]",
|
||||||
"VTLANG_RETURN_PRV_NOESC": "Powrót do poprzedniego menu",
|
"VTLANG_RETURN_PRV_NOESC": "Powrót do poprzedniego menu",
|
||||||
|
|
||||||
"VTLANG_MENU_LANG": "Wybór języka menu",
|
"VTLANG_MENU_LANG": "Wybierz język menu",
|
||||||
|
|
||||||
"VTLANG_LB_SBOOT_WINDOWS": "Wyszukaj i uruchom system Windows",
|
"VTLANG_LB_SBOOT_WINDOWS": "Wyszukaj i uruchom Windows",
|
||||||
"VTLANG_LB_SBOOT_G4D": "Wyszukaj i uruchom Grub4dos",
|
"VTLANG_LB_SBOOT_G4D": "Wyszukaj i uruchom Grub4dos",
|
||||||
"VTLANG_LB_SBOOT_HDD1": "Uruchom pierwszy dysk lokalny",
|
"VTLANG_LB_SBOOT_HDD1": "Uruchom pierwszy dysk lokalny",
|
||||||
"VTLANG_LB_SBOOT_HDD2": "Uruchom drugi dysk lokalny",
|
"VTLANG_LB_SBOOT_HDD2": "Uruchom drugi dysk lokalny",
|
||||||
@@ -28,10 +28,10 @@
|
|||||||
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Oblicz i sprawdź sumę sha256",
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Oblicz i sprawdź sumę sha256",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Oblicz i sprawdź sumę sha512",
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Oblicz i sprawdź sumę sha512",
|
||||||
|
|
||||||
"VTLANG_POWER": "Moc",
|
"VTLANG_POWER": "Zasilanie",
|
||||||
"VTLANG_POWER_REBOOT": "Uruchom ponownie",
|
"VTLANG_POWER_REBOOT": "Uruchom ponownie",
|
||||||
"VTLANG_POWER_HALT": "Zatrzymanie",
|
"VTLANG_POWER_HALT": "Zakończ",
|
||||||
"VTLANG_POWER_BOOT_EFIFW": "Uruchom ponownie do konfiguracji EFI",
|
"VTLANG_POWER_BOOT_EFIFW": "Uruchom ponownie i przejdź do konfiguracji EFI",
|
||||||
|
|
||||||
"VTLANG_KEYBRD_LAYOUT": "Układy klawiatury",
|
"VTLANG_KEYBRD_LAYOUT": "Układy klawiatury",
|
||||||
"VTLANG_HWINFO": "Informacje o sprzęcie",
|
"VTLANG_HWINFO": "Informacje o sprzęcie",
|
||||||
@@ -43,23 +43,23 @@
|
|||||||
|
|
||||||
"VTLANG_THEME_SELECT": "Wybór motywu",
|
"VTLANG_THEME_SELECT": "Wybór motywu",
|
||||||
|
|
||||||
"VTLANG_UEFI_UTIL": "Ventoy UEFI Utilities",
|
"VTLANG_UEFI_UTIL": "Narzędzia UEFI Ventoy",
|
||||||
"VTLANG_UTIL_SHOW_EFI_DRV": "Pokaż sterowniki EFI",
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Pokaż sterowniki EFI",
|
||||||
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Napraw błąd BlinitializeLibrary systemu Windows",
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Napraw błąd BlinitializeLibrary systemu Windows",
|
||||||
|
|
||||||
"VTLANG_JSON_CHK_JSON": "Sprawdź konfigurację wtyczki json (ventoy.json)",
|
"VTLANG_JSON_CHK_JSON": "Sprawdź konfigurację wtyczki json (ventoy.json)",
|
||||||
"VTLANG_JSON_CHK_CONTROL": "Sprawdź konfigurację wtyczki globalnej kontroli",
|
"VTLANG_JSON_CHK_CONTROL": "Sprawdź konfigurację wtyczki globalnej kontroli",
|
||||||
"VTLANG_JSON_CHK_THEME": "Sprawdź konfigurację wtyczki motywu",
|
"VTLANG_JSON_CHK_THEME": "Sprawdź konfigurację wtyczki motywu",
|
||||||
"VTLANG_JSON_CHK_AUTOINS": "Sprawdź konfigurację automatycznej instalacji wtyczki",
|
"VTLANG_JSON_CHK_AUTOINS": "Sprawdź konfigurację wtyczki automatycznej instalacji",
|
||||||
"VTLANG_JSON_CHK_PERSIST": "Sprawdź konfigurację wtyczki trwałości",
|
"VTLANG_JSON_CHK_PERSIST": "Sprawdź konfigurację wtyczki trwałości",
|
||||||
"VTLANG_JSON_CHK_MENU_ALIAS": "Sprawdź konfigurację wtyczek aliasów menu",
|
"VTLANG_JSON_CHK_MENU_ALIAS": "Sprawdź konfigurację wtyczek aliasów menu",
|
||||||
"VTLANG_JSON_CHK_MENU_TIP": "Sprawdź konfigurację wtyczki podpowiedzi menu",
|
"VTLANG_JSON_CHK_MENU_TIP": "Sprawdź konfigurację wtyczki podpowiedzi menu",
|
||||||
"VTLANG_JSON_CHK_MENU_CLASS": "Sprawdź konfigurację wtyczki klasy menu",
|
"VTLANG_JSON_CHK_MENU_CLASS": "Sprawdź konfigurację wtyczki klasy menu",
|
||||||
"VTLANG_JSON_CHK_INJECTION": "Sprawdź konfigurację wtyczki wtrysku",
|
"VTLANG_JSON_CHK_INJECTION": "Sprawdź konfigurację wtyczki wstrzykiwania",
|
||||||
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Sprawdź automatyczną konfigurację wtyczki memdisk",
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Sprawdź automatyczną konfigurację wtyczki memdisk",
|
||||||
"VTLANG_JSON_CHK_IMG_LIST": "Sprawdź konfigurację wtyczki listy obrazów",
|
"VTLANG_JSON_CHK_IMG_LIST": "Sprawdź konfigurację wtyczki listy obrazów",
|
||||||
"VTLANG_JSON_CHK_IMG_BLIST": "Sprawdź konfigurację wtyczki czarnej listy obrazów",
|
"VTLANG_JSON_CHK_IMG_BLIST": "Sprawdź konfigurację wtyczki czarnej listy obrazów",
|
||||||
"VTLANG_JSON_CHK_CONF_REPLACE": "Sprawdź konfigurację bootowania zamień konfigurację wtyczki",
|
"VTLANG_JSON_CHK_CONF_REPLACE": "Sprawdź konfigurację wtyczki zastępującej konfigurację bootowania",
|
||||||
"VTLANG_JSON_CHK_DUD": "Sprawdź konfigurację wtyczki dud",
|
"VTLANG_JSON_CHK_DUD": "Sprawdź konfigurację wtyczki dud",
|
||||||
"VTLANG_JSON_CHK_PASSWORD": "Sprawdź konfigurację wtyczki hasła",
|
"VTLANG_JSON_CHK_PASSWORD": "Sprawdź konfigurację wtyczki hasła",
|
||||||
|
|
||||||
@@ -69,12 +69,12 @@
|
|||||||
"VTLANG_MEMDISK_MODE": "Uruchom w trybie memdisk",
|
"VTLANG_MEMDISK_MODE": "Uruchom w trybie memdisk",
|
||||||
|
|
||||||
"VTLANG_RET_TO_LISTVIEW": "Powrót do widoku listy",
|
"VTLANG_RET_TO_LISTVIEW": "Powrót do widoku listy",
|
||||||
"VTLANG_RET_TO_TREEVIEW": "Powrót do TreeView",
|
"VTLANG_RET_TO_TREEVIEW": "Powrót do widoku drzewa",
|
||||||
|
|
||||||
"VTLANG_NO_AUTOINS_SCRIPT": "Uruchom bez szablonu automatycznej instalacji",
|
"VTLANG_NO_AUTOINS_SCRIPT": "Uruchom bez szablonu automatycznej instalacji",
|
||||||
"VTLANG_AUTOINS_USE": "Uruchom z",
|
"VTLANG_AUTOINS_USE": "Uruchom z",
|
||||||
|
|
||||||
"VTLANG_NO_PERSIST": "Uruchom bez trwałości",
|
"VTLANG_NO_PERSIST": "Uruchom bez zachowania",
|
||||||
"VTLANG_PERSIST_USE": "Uruchom z",
|
"VTLANG_PERSIST_USE": "Uruchom z",
|
||||||
|
|
||||||
"VTLANG_BROWER_RETURN": "Powrót",
|
"VTLANG_BROWER_RETURN": "Powrót",
|
||||||
@@ -83,11 +83,11 @@
|
|||||||
"VTLANG_ENTER_REBOOT": "naciśnij klawisz Enter, aby ponownie uruchomić",
|
"VTLANG_ENTER_REBOOT": "naciśnij klawisz Enter, aby ponownie uruchomić",
|
||||||
"VTLANG_ENTER_CONTINUE": "naciśnij klawisz Enter, aby kontynuować",
|
"VTLANG_ENTER_CONTINUE": "naciśnij klawisz Enter, aby kontynuować",
|
||||||
|
|
||||||
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
|
"VTLANG_CTRL_TEMP_SET": "Tymczasowe ustawienia kontroli",
|
||||||
"VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
|
"VTLANG_WIN11_BYPASS_CHECK": "Pominięcie kontroli CPU/TPM/SecureBoot podczas instalacji Windows 11",
|
||||||
"VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
|
"VTLANG_WIN11_BYPASS_NRO": "Pominięcie wymogu posiadania konta online podczas instalacji systemu Windows 11",
|
||||||
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
|
"VTLANG_LINUX_REMOUNT": "Zamontuj partycję Ventoy po starcie Linuksa",
|
||||||
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
|
"VTLANG_SECONDARY_BOOT_MENU": "Pokaż dodatkowe menu startowe",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
"VTLANG_MENU_LANG": "Выбор языка меню",
|
"VTLANG_MENU_LANG": "Выбор языка меню",
|
||||||
|
|
||||||
"VTLANG_LB_SBOOT_WINDOWS": "Найти и загрузить винду",
|
"VTLANG_LB_SBOOT_WINDOWS": "Найти и загрузить Windows",
|
||||||
"VTLANG_LB_SBOOT_G4D": "Найти и загрузить Grub4dos",
|
"VTLANG_LB_SBOOT_G4D": "Найти и загрузить Grub4dos",
|
||||||
"VTLANG_LB_SBOOT_HDD1": "Загрузить 1-й локальный диск",
|
"VTLANG_LB_SBOOT_HDD1": "Загрузить 1-й локальный диск",
|
||||||
"VTLANG_LB_SBOOT_HDD2": "Загрузить 2-й локальный диск",
|
"VTLANG_LB_SBOOT_HDD2": "Загрузить 2-й локальный диск",
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Вычислить и проверить sha256sum",
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Вычислить и проверить sha256sum",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Вычислить и проверить sha512sum",
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Вычислить и проверить sha512sum",
|
||||||
|
|
||||||
"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": "Раскладки клавиатуры",
|
||||||
@@ -43,9 +43,9 @@
|
|||||||
|
|
||||||
"VTLANG_THEME_SELECT": "Выбор темы",
|
"VTLANG_THEME_SELECT": "Выбор темы",
|
||||||
|
|
||||||
"VTLANG_UEFI_UTIL": "UEFI утилиты Вентоя",
|
"VTLANG_UEFI_UTIL": "UEFI утилиты Ventoy",
|
||||||
"VTLANG_UTIL_SHOW_EFI_DRV": "Показать драйверы EFI",
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Показать драйверы EFI",
|
||||||
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Исправить ошибку винды «BlinitializeLibrary»",
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Исправить ошибку Windows «BlinitializeLibrary»",
|
||||||
|
|
||||||
"VTLANG_JSON_CHK_JSON": "Проверить настройки расширения «json» (ventoy.json)",
|
"VTLANG_JSON_CHK_JSON": "Проверить настройки расширения «json» (ventoy.json)",
|
||||||
"VTLANG_JSON_CHK_CONTROL": "Проверить настройки расширения «global control»",
|
"VTLANG_JSON_CHK_CONTROL": "Проверить настройки расширения «global control»",
|
||||||
@@ -68,8 +68,8 @@
|
|||||||
"VTLANG_GRUB2_MODE": "Загрузиться в режиме grub2",
|
"VTLANG_GRUB2_MODE": "Загрузиться в режиме grub2",
|
||||||
"VTLANG_MEMDISK_MODE": "Загрузиться в режиме memdisk",
|
"VTLANG_MEMDISK_MODE": "Загрузиться в режиме memdisk",
|
||||||
|
|
||||||
"VTLANG_RET_TO_LISTVIEW": "Вернуться к ВидуСписком",
|
"VTLANG_RET_TO_LISTVIEW": "Вернуться к Виду списком",
|
||||||
"VTLANG_RET_TO_TREEVIEW": "Вернуться к ВидуДревом",
|
"VTLANG_RET_TO_TREEVIEW": "Вернуться к Виду древом",
|
||||||
|
|
||||||
"VTLANG_NO_AUTOINS_SCRIPT": "Загрузка без шаблона автоматической установки",
|
"VTLANG_NO_AUTOINS_SCRIPT": "Загрузка без шаблона автоматической установки",
|
||||||
"VTLANG_AUTOINS_USE": "Загрузиться с",
|
"VTLANG_AUTOINS_USE": "Загрузиться с",
|
||||||
@@ -84,9 +84,9 @@
|
|||||||
"VTLANG_ENTER_CONTINUE": "нажмите клавишу ввода, чтобы продолжить",
|
"VTLANG_ENTER_CONTINUE": "нажмите клавишу ввода, чтобы продолжить",
|
||||||
|
|
||||||
"VTLANG_CTRL_TEMP_SET": "Настройки временного управления",
|
"VTLANG_CTRL_TEMP_SET": "Настройки временного управления",
|
||||||
"VTLANG_WIN11_BYPASS_CHECK": "Обойти проверку при установке 11-ой винды",
|
"VTLANG_WIN11_BYPASS_CHECK": "Обойти проверку CPU/TPM/SecureBoot при установке Windows 11",
|
||||||
"VTLANG_WIN11_BYPASS_NRO": "Обойти требование сетевой учётной записи при установке 11-ой винды",
|
"VTLANG_WIN11_BYPASS_NRO": "Обойти требование сетевой учётной записи при установке Windows 11",
|
||||||
"VTLANG_LINUX_REMOUNT": "Смонтировать раздел Вентоя после загрузки линукса",
|
"VTLANG_LINUX_REMOUNT": "Смонтировать раздел Ventoy после загрузки Linux",
|
||||||
"VTLANG_SECONDARY_BOOT_MENU": "Показать вторичное загрузочное меню",
|
"VTLANG_SECONDARY_BOOT_MENU": "Показать вторичное загрузочное меню",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
|
93
INSTALL/grub/menu/sl_si.json
Normal file
93
INSTALL/grub/menu/sl_si.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"VTLANG_LANGUAGE_NAME": "Slovenija (Slovenski)",
|
||||||
|
|
||||||
|
"VTLANG_STR_HOTKEY_LIST": "L:Jezik F1:Pomoč F2:Prebrskaj F3:ListView F4:Localboot F5:Orodja F6:ExMenu",
|
||||||
|
"VTLANG_STR_HOTKEY_TREE": "L:Jezik F1:Pomoč F2:Prebrskaj F3:TreeView F4:Localboot F5:Orodja F6:ExMenu",
|
||||||
|
"VTLANG_RETURN_PREVIOUS": "Vrnitev v prejšnji meni [Esc]",
|
||||||
|
"VTLANG_RETURN_PRV_NOESC": "Vrnitev v prejšnji meni",
|
||||||
|
|
||||||
|
"VTLANG_MENU_LANG": "Izbira jezika menija",
|
||||||
|
|
||||||
|
"VTLANG_LB_SBOOT_WINDOWS": "Iskanje in zagon sistema Windows",
|
||||||
|
"VTLANG_LB_SBOOT_G4D": "Iskanje in zagon Grub4dos",
|
||||||
|
"VTLANG_LB_SBOOT_HDD1": "Zagon 1. lokalnega diska",
|
||||||
|
"VTLANG_LB_SBOOT_HDD2": "Zagon 2. lokalnega diska",
|
||||||
|
"VTLANG_LB_SBOOT_HDD3": "Zagon 3. lokalnega diska",
|
||||||
|
"VTLANG_LB_SBOOT_X64EFI": "Iskanje in zagon BOOTX64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_IA32EFI": "Iskanje in zagon BOOTIA32.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_AA64EFI": "Iskanje in zagon BOOTAA64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_XORBOOT": "Iskanje in zagon xorboot",
|
||||||
|
|
||||||
|
"VTLANG_FILE_CHKSUM": "File checksum",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC": "Izračunaj md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC": "Izračunaj sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC": "Izračunaj sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC": "Izračunaj sha512sum",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "Izračunaj in preveri md5sum",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "Izračunaj in preveri sha1sum",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Izračunaj in preveri sha256sum",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Izračunaj in preveri sha512sum",
|
||||||
|
|
||||||
|
"VTLANG_POWER": "Napajanje",
|
||||||
|
"VTLANG_POWER_REBOOT": "Ponovni zagon",
|
||||||
|
"VTLANG_POWER_HALT": "Halt",
|
||||||
|
"VTLANG_POWER_BOOT_EFIFW": "Ponovni zagon v nastavitev EFI",
|
||||||
|
|
||||||
|
"VTLANG_KEYBRD_LAYOUT": "Postavitev tipkovnice",
|
||||||
|
"VTLANG_HWINFO": "Informacije o strojni opremi",
|
||||||
|
|
||||||
|
"VTLANG_RESOLUTION_CFG": "Nastavitev ločljivosti",
|
||||||
|
"VTLANG_SCREEN_MODE": "Način prikaza na zaslonu",
|
||||||
|
"VTLANG_SCREEN_TEXT_MODE": "Vsili besedilni način",
|
||||||
|
"VTLANG_SCREEN_GUI_MODE": "Vsili grafični način",
|
||||||
|
|
||||||
|
"VTLANG_THEME_SELECT": "Izbira teme",
|
||||||
|
|
||||||
|
"VTLANG_UEFI_UTIL": "Pripomočki Ventoy UEFI",
|
||||||
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Prikaži gonilnike EFI",
|
||||||
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Popravek napake Windows BlinitializeLibrary",
|
||||||
|
|
||||||
|
"VTLANG_JSON_CHK_JSON": "Preverite konfiguracijo vtičnika json (ventoy.json)",
|
||||||
|
"VTLANG_JSON_CHK_CONTROL": "Preverite konfiguracijo globalnega nadzornega vtičnika",
|
||||||
|
"VTLANG_JSON_CHK_THEME": "Preverite konfiguracijo vtičnika teme",
|
||||||
|
"VTLANG_JSON_CHK_AUTOINS": "Preverite konfiguracijo vtičnika za samodejno namestitev",
|
||||||
|
"VTLANG_JSON_CHK_PERSIST": "Preverite konfiguracijo vtičnika persistence",
|
||||||
|
"VTLANG_JSON_CHK_MENU_ALIAS": "Preverite konfiguracijo vtičnika menija",
|
||||||
|
"VTLANG_JSON_CHK_MENU_TIP": "Preverite konfiguracijo vtičnika za nasvete menija",
|
||||||
|
"VTLANG_JSON_CHK_MENU_CLASS": "Preverite konfiguracijo vtičnika razreda menija",
|
||||||
|
"VTLANG_JSON_CHK_INJECTION": "Check injection plugin configuration",
|
||||||
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Preverite konfiguracijo vtičnika Auto Memdisk.",
|
||||||
|
"VTLANG_JSON_CHK_IMG_LIST": "Preverite konfiguracijo vtičnika za seznam slik",
|
||||||
|
"VTLANG_JSON_CHK_IMG_BLIST": "Preverite konfiguracijo vtičnika za črno listo slik",
|
||||||
|
"VTLANG_JSON_CHK_CONF_REPLACE": "Preverite boot conf zamenjajte plugin konfiguracijo",
|
||||||
|
"VTLANG_JSON_CHK_DUD": "Preverite konfiguracijo vtičnika dud",
|
||||||
|
"VTLANG_JSON_CHK_PASSWORD": "Preverite konfiguracijo vtičnika za geslo",
|
||||||
|
|
||||||
|
"VTLANG_NORMAL_MODE": "Zagon v običajnem načinu",
|
||||||
|
"VTLANG_WIMBOOT_MODE": "Zagon v načinu wimboot",
|
||||||
|
"VTLANG_GRUB2_MODE": "Zagon v načinu grub2",
|
||||||
|
"VTLANG_MEMDISK_MODE": "Zagon v načinu memdisk",
|
||||||
|
|
||||||
|
"VTLANG_RET_TO_LISTVIEW": "Vrnitev na ListView",
|
||||||
|
"VTLANG_RET_TO_TREEVIEW": "Vrnitev v TreeView",
|
||||||
|
|
||||||
|
"VTLANG_NO_AUTOINS_SCRIPT": "Zagon brez predloge za samodejno namestitev",
|
||||||
|
"VTLANG_AUTOINS_USE": "Zagon z",
|
||||||
|
|
||||||
|
"VTLANG_NO_PERSIST": "Boot without persistence",
|
||||||
|
"VTLANG_PERSIST_USE": "Zagon z",
|
||||||
|
|
||||||
|
"VTLANG_BROWER_RETURN": "Nazaj",
|
||||||
|
|
||||||
|
"VTLANG_ENTER_EXIT": "za izhod pritisnite tipko Enter",
|
||||||
|
"VTLANG_ENTER_REBOOT": "pritisnite tipko Enter za ponovni zagon",
|
||||||
|
"VTLANG_ENTER_CONTINUE": "za nadaljevanje pritisnite tipko Enter",
|
||||||
|
|
||||||
|
"VTLANG_CTRL_TEMP_SET": "Začasne nadzorne nastavitve",
|
||||||
|
"VTLANG_WIN11_BYPASS_CHECK": "Obid preverjanja CPU/TPM/SecureBoot pri namestitvi sistema Windows 11",
|
||||||
|
"VTLANG_WIN11_BYPASS_NRO": "Obid zahteve po spletnem računu pri namestitvi sistema Windows 11",
|
||||||
|
"VTLANG_LINUX_REMOUNT": "Priklopi Ventoy particijo po zagonu Linuxa",
|
||||||
|
"VTLANG_SECONDARY_BOOT_MENU": "Prikaz sekundarnega zagonskega menija",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
93
INSTALL/grub/menu/uk_UA.json
Normal file
93
INSTALL/grub/menu/uk_UA.json
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
"VTLANG_LANGUAGE_NAME": "Ukrainian (Українська)",
|
||||||
|
|
||||||
|
"VTLANG_STR_HOTKEY_LIST": "L:Мова F1:Довідка F2:Перегляд F3:Вид списком F4:Локальне завантаження F5:Інструменти F6:Вийти з меню",
|
||||||
|
"VTLANG_STR_HOTKEY_TREE": "L:Мова F1:Довідка F2:Перегляд F3:Вид деревом F4:Локальне завантаження F5:Інструменти F6:Вийти з меню",
|
||||||
|
"VTLANG_RETURN_PREVIOUS": "Повернутись до попереднього меню [Esc]",
|
||||||
|
"VTLANG_RETURN_PRV_NOESC": "Повернутись до попереднього меню",
|
||||||
|
|
||||||
|
"VTLANG_MENU_LANG": "Мова меню",
|
||||||
|
|
||||||
|
"VTLANG_LB_SBOOT_WINDOWS": "Знайти та завантажити Windows",
|
||||||
|
"VTLANG_LB_SBOOT_G4D": "Знайти та завантажити Grub4dos",
|
||||||
|
"VTLANG_LB_SBOOT_HDD1": "Завантажити 1-й локальний диск",
|
||||||
|
"VTLANG_LB_SBOOT_HDD2": "Завантажити 2-й локальний диск",
|
||||||
|
"VTLANG_LB_SBOOT_HDD3": "Завантажити 3-й локальний диск",
|
||||||
|
"VTLANG_LB_SBOOT_X64EFI": "Знайти та завантажити BOOTX64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_IA32EFI": "Знайти та завантажити BOOTIA32.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_AA64EFI": "Знайти та завантажити BOOTAA64.EFI",
|
||||||
|
"VTLANG_LB_SBOOT_XORBOOT": "Знайти та завантажити xorboot",
|
||||||
|
|
||||||
|
"VTLANG_FILE_CHKSUM": "Контрольна сума файлу",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC": "Розрахувати md5",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC": "Розрахувати sha1",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC": "Розрахувати sha256",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC": "Розрахувати sha512",
|
||||||
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "Розрахувати та перевірити md5",
|
||||||
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "Розрахувати та перевірити sha1",
|
||||||
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "Розрахувати та перевірити sha256",
|
||||||
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "Розрахувати та перевірити sha512",
|
||||||
|
|
||||||
|
"VTLANG_POWER": "Живлення",
|
||||||
|
"VTLANG_POWER_REBOOT": "Перезавантажити",
|
||||||
|
"VTLANG_POWER_HALT": "Завершити роботу",
|
||||||
|
"VTLANG_POWER_BOOT_EFIFW": "Перезавантажитись до налаштувань EFI",
|
||||||
|
|
||||||
|
"VTLANG_KEYBRD_LAYOUT": "Розкладка клавіатури",
|
||||||
|
"VTLANG_HWINFO": "Відомості про пристрій",
|
||||||
|
|
||||||
|
"VTLANG_RESOLUTION_CFG": "Налаштування роздільної здатності",
|
||||||
|
"VTLANG_SCREEN_MODE": "Інтерфейс користувача",
|
||||||
|
"VTLANG_SCREEN_TEXT_MODE": "Перейти до текстового інтерфейсу",
|
||||||
|
"VTLANG_SCREEN_GUI_MODE": "Перейти до графічного інтерфейсу",
|
||||||
|
|
||||||
|
"VTLANG_THEME_SELECT": "Обрати тему",
|
||||||
|
|
||||||
|
"VTLANG_UEFI_UTIL": "Утиліти Ventoy UEFI",
|
||||||
|
"VTLANG_UTIL_SHOW_EFI_DRV": "Показати драйвери EFI",
|
||||||
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "Виправити помилку Windows 'BlinitializeLibrary Failure'",
|
||||||
|
|
||||||
|
"VTLANG_JSON_CHK_JSON": "Перевірити налаштування плагіну 'json' (ventoy.json)",
|
||||||
|
"VTLANG_JSON_CHK_CONTROL": "Перевірити налаштування плагіну 'global control'",
|
||||||
|
"VTLANG_JSON_CHK_THEME": "Перевірити налаштування плагіну 'theme'",
|
||||||
|
"VTLANG_JSON_CHK_AUTOINS": "Перевірити налаштування плагіну 'auto install'",
|
||||||
|
"VTLANG_JSON_CHK_PERSIST": "Перевірити налаштування плагіну 'persistence'",
|
||||||
|
"VTLANG_JSON_CHK_MENU_ALIAS": "Перевірити налаштування плагіну 'menu alias'",
|
||||||
|
"VTLANG_JSON_CHK_MENU_TIP": "Перевірити налаштування плагіну 'menu tip'",
|
||||||
|
"VTLANG_JSON_CHK_MENU_CLASS": "Перевірити налаштування плагіну 'menu class'",
|
||||||
|
"VTLANG_JSON_CHK_INJECTION": "Перевірити налаштування плагіну 'injection'",
|
||||||
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "Перевірити налаштування плагіну 'auto memdisk'",
|
||||||
|
"VTLANG_JSON_CHK_IMG_LIST": "Перевірити налаштування плагіну 'image list'",
|
||||||
|
"VTLANG_JSON_CHK_IMG_BLIST": "Перевірити налаштування плагіну 'image blacklist plugin'",
|
||||||
|
"VTLANG_JSON_CHK_CONF_REPLACE": "Перевірити налаштування плагіну 'boot conf replace'",
|
||||||
|
"VTLANG_JSON_CHK_DUD": "Перевірити налаштування плагіну 'dud'",
|
||||||
|
"VTLANG_JSON_CHK_PASSWORD": "Перевірити налаштування плагіну 'password'",
|
||||||
|
|
||||||
|
"VTLANG_NORMAL_MODE": "Завантажити в нормальному режимі",
|
||||||
|
"VTLANG_WIMBOOT_MODE": "Завантажити в режимі wimboot",
|
||||||
|
"VTLANG_GRUB2_MODE": "Завантажити в режимі GRUB2",
|
||||||
|
"VTLANG_MEMDISK_MODE": "Завантажити в режимі MEMDISK",
|
||||||
|
|
||||||
|
"VTLANG_RET_TO_LISTVIEW": "Повернутись до перегляду списком",
|
||||||
|
"VTLANG_RET_TO_TREEVIEW": "Повернутись до деревовидного перегляду",
|
||||||
|
|
||||||
|
"VTLANG_NO_AUTOINS_SCRIPT": "Завантажити без шаблону авто-інсталяції",
|
||||||
|
"VTLANG_AUTOINS_USE": "Завантажити з",
|
||||||
|
|
||||||
|
"VTLANG_NO_PERSIST": "Завантажити без збереження",
|
||||||
|
"VTLANG_PERSIST_USE": "Завантажити з ",
|
||||||
|
|
||||||
|
"VTLANG_BROWER_RETURN": "Повернутись",
|
||||||
|
|
||||||
|
"VTLANG_ENTER_EXIT": "натисніть Enter для виходу",
|
||||||
|
"VTLANG_ENTER_REBOOT": "натисніть Enter для перезавантаження",
|
||||||
|
"VTLANG_ENTER_CONTINUE": "натисніть Enter для продовження",
|
||||||
|
|
||||||
|
"VTLANG_CTRL_TEMP_SET": "Налаштування тимчасового контролю",
|
||||||
|
"VTLANG_WIN11_BYPASS_CHECK": "Обійти перевірку CPU/TPM/SecureBoot під час інсталяції Windows 11",
|
||||||
|
"VTLANG_WIN11_BYPASS_NRO": "Обійти вимогу онлайн-аккаунту під час інсталяції Windows 11",
|
||||||
|
"VTLANG_LINUX_REMOUNT": "Монтувати розділ Ventoy після завантаження Linux",
|
||||||
|
"VTLANG_SECONDARY_BOOT_MENU": "Показувати вторинне меню завантаження",
|
||||||
|
|
||||||
|
"MENU_STR_XXX": ""
|
||||||
|
}
|
@@ -1,93 +1,93 @@
|
|||||||
{
|
{
|
||||||
"VTLANG_LANGUAGE_NAME": "Chinese Traditional (正體中文)",
|
"VTLANG_LANGUAGE_NAME": "Chinese Traditional (正體中文)",
|
||||||
|
|
||||||
"VTLANG_STR_HOTKEY_LIST": "L:語言 F1:說明 F2:本地瀏覽 F3:清單模式 F4:本地啟動 F5:工具 F6:擴展選單",
|
"VTLANG_STR_HOTKEY_LIST": "L:語言 F1:說明 F2:瀏覽 F3:清單檢視 F4:本機啟動 F5:工具 F6:附加選單",
|
||||||
"VTLANG_STR_HOTKEY_TREE": "L:語言 F1:說明 F2:本地瀏覽 F3:樹形模式 F4:本地啟動 F5:工具 F6:擴展選單",
|
"VTLANG_STR_HOTKEY_TREE": "L:語言 F1:說明 F2:瀏覽 F3:樹狀檢視 F4:本機啟動 F5:工具 F6:附加選單",
|
||||||
"VTLANG_RETURN_PREVIOUS": "返回上一級選單 [Esc]",
|
"VTLANG_RETURN_PREVIOUS": "返回上一層選單 [Esc]",
|
||||||
"VTLANG_RETURN_PRV_NOESC": "返回上一級選單",
|
"VTLANG_RETURN_PRV_NOESC": "返回上一層選單",
|
||||||
|
|
||||||
"VTLANG_MENU_LANG": "功能表語言",
|
"VTLANG_MENU_LANG": "選單語言",
|
||||||
|
|
||||||
"VTLANG_LB_SBOOT_WINDOWS": "搜尋並啟動 Windows",
|
"VTLANG_LB_SBOOT_WINDOWS": "搜尋並啟動 Windows",
|
||||||
"VTLANG_LB_SBOOT_G4D": "搜尋並啟動 Grub4dos",
|
"VTLANG_LB_SBOOT_G4D": "搜尋並啟動 Grub4dos",
|
||||||
"VTLANG_LB_SBOOT_HDD1": "啟動本地硬碟1中的系統",
|
"VTLANG_LB_SBOOT_HDD1": "啟動本機硬碟1中的系統",
|
||||||
"VTLANG_LB_SBOOT_HDD2": "啟動本地硬碟2中的系統",
|
"VTLANG_LB_SBOOT_HDD2": "啟動本機硬碟2中的系統",
|
||||||
"VTLANG_LB_SBOOT_HDD3": "啟動本地硬碟3中的系統",
|
"VTLANG_LB_SBOOT_HDD3": "啟動本機硬碟3中的系統",
|
||||||
"VTLANG_LB_SBOOT_X64EFI": "搜尋並啟動 BOOTX64.EFI",
|
"VTLANG_LB_SBOOT_X64EFI": "搜尋並啟動 BOOTX64.EFI",
|
||||||
"VTLANG_LB_SBOOT_IA32EFI": "搜尋並啟動 BOOTIA32.EFI",
|
"VTLANG_LB_SBOOT_IA32EFI": "搜尋並啟動 BOOTIA32.EFI",
|
||||||
"VTLANG_LB_SBOOT_AA64EFI": "搜尋並啟動 BOOTAA64.EFI",
|
"VTLANG_LB_SBOOT_AA64EFI": "搜尋並啟動 BOOTAA64.EFI",
|
||||||
"VTLANG_LB_SBOOT_XORBOOT": "搜尋並啟動 xorboot",
|
"VTLANG_LB_SBOOT_XORBOOT": "搜尋並啟動 xorboot",
|
||||||
|
|
||||||
"VTLANG_FILE_CHKSUM": "檔案校驗",
|
"VTLANG_FILE_CHKSUM": "校驗檔案",
|
||||||
"VTLANG_CHKSUM_MD5_CALC": "計算 MD5 校驗值",
|
"VTLANG_CHKSUM_MD5_CALC": "計算 MD5 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA1_CALC": "計算 SHA1 校驗值",
|
"VTLANG_CHKSUM_SHA1_CALC": "計算 SHA1 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA256_CALC": "計算 SHA256 校驗值",
|
"VTLANG_CHKSUM_SHA256_CALC": "計算 SHA256 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC": "計算 SHA512 校驗值",
|
"VTLANG_CHKSUM_SHA512_CALC": "計算 SHA512 檢查碼",
|
||||||
"VTLANG_CHKSUM_MD5_CALC_CHK": "計算並檢查 MD5 校驗值",
|
"VTLANG_CHKSUM_MD5_CALC_CHK": "計算並檢查 MD5 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA1_CALC_CHK": "計算並檢查 SHA1 校驗值",
|
"VTLANG_CHKSUM_SHA1_CALC_CHK": "計算並檢查 SHA1 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA256_CALC_CHK": "計算並檢查 SHA256 校驗值",
|
"VTLANG_CHKSUM_SHA256_CALC_CHK": "計算並檢查 SHA256 檢查碼",
|
||||||
"VTLANG_CHKSUM_SHA512_CALC_CHK": "計算並檢查 SHA512 校驗值",
|
"VTLANG_CHKSUM_SHA512_CALC_CHK": "計算並檢查 SHA512 檢查碼",
|
||||||
|
|
||||||
"VTLANG_POWER": "電源",
|
"VTLANG_POWER": "電源",
|
||||||
"VTLANG_POWER_REBOOT": "重啟",
|
"VTLANG_POWER_REBOOT": "重新開機",
|
||||||
"VTLANG_POWER_HALT": "關機",
|
"VTLANG_POWER_HALT": "關機",
|
||||||
"VTLANG_POWER_BOOT_EFIFW": "重啟進入 UEFI 設定選單",
|
"VTLANG_POWER_BOOT_EFIFW": "重新開機進入 UEFI 設定選單",
|
||||||
|
|
||||||
"VTLANG_KEYBRD_LAYOUT": "鍵盤配置",
|
"VTLANG_KEYBRD_LAYOUT": "鍵盤設定",
|
||||||
"VTLANG_HWINFO": "硬體資訊",
|
"VTLANG_HWINFO": "硬體資訊",
|
||||||
|
|
||||||
"VTLANG_RESOLUTION_CFG": "螢幕解析度",
|
"VTLANG_RESOLUTION_CFG": "螢幕解析度",
|
||||||
"VTLANG_SCREEN_MODE": "顯示模式",
|
"VTLANG_SCREEN_MODE": "顯示模式",
|
||||||
"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": "顯示 UEFI 驅動",
|
"VTLANG_UTIL_SHOW_EFI_DRV": "顯示 UEFI 驅動",
|
||||||
"VTLANG_UTIL_FIX_BLINIT_FAIL": "修復 Windows BlinitializeLibrary 錯誤",
|
"VTLANG_UTIL_FIX_BLINIT_FAIL": "修復 Windows BlinitializeLibrary 錯誤",
|
||||||
|
|
||||||
"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": "設定檢查 —— 自動安裝外掛程式",
|
||||||
"VTLANG_JSON_CHK_PERSIST": "配置檢查 —— 持久化外掛程式",
|
"VTLANG_JSON_CHK_PERSIST": "設定檢查 —— 永久性外掛程式",
|
||||||
"VTLANG_JSON_CHK_MENU_ALIAS": "配置檢查 —— 功能表別名外掛程式",
|
"VTLANG_JSON_CHK_MENU_ALIAS": "設定檢查 —— 功能表別名外掛程式",
|
||||||
"VTLANG_JSON_CHK_MENU_TIP": "配置檢查 —— 功能表提示外掛程式",
|
"VTLANG_JSON_CHK_MENU_TIP": "設定檢查 —— 功能表提示外掛程式",
|
||||||
"VTLANG_JSON_CHK_MENU_CLASS": "配置檢查 —— 功能表類型外掛程式",
|
"VTLANG_JSON_CHK_MENU_CLASS": "設定檢查 —— 功能表分類外掛程式",
|
||||||
"VTLANG_JSON_CHK_INJECTION": "配置檢查 —— 檔注入外掛程式",
|
"VTLANG_JSON_CHK_INJECTION": "設定檢查 —— 檔注入外掛程式",
|
||||||
"VTLANG_JSON_CHK_AUTO_MEMDISK": "配置檢查 —— 自動內存檔模式外掛程式",
|
"VTLANG_JSON_CHK_AUTO_MEMDISK": "設定檢查 —— 自動 memdisk 模式外掛程式",
|
||||||
"VTLANG_JSON_CHK_IMG_LIST": "配置檢查 —— 檔清單外掛程式(白名單)",
|
"VTLANG_JSON_CHK_IMG_LIST": "設定檢查 —— 映像檔清單外掛程式(白名單)",
|
||||||
"VTLANG_JSON_CHK_IMG_BLIST": "配置檢查 —— 檔清單外掛程式(黑名單)",
|
"VTLANG_JSON_CHK_IMG_BLIST": "設定檢查 —— 映像檔清單外掛程式(黑名單)",
|
||||||
"VTLANG_JSON_CHK_CONF_REPLACE": "配置檢查 —— 啟動配置替換外掛程式",
|
"VTLANG_JSON_CHK_CONF_REPLACE": "設定檢查 —— 啟動設定替換外掛程式",
|
||||||
"VTLANG_JSON_CHK_DUD": "配置檢查 —— Driver Update Disk外掛程式",
|
"VTLANG_JSON_CHK_DUD": "設定檢查 —— Driver Update Disk外掛程式",
|
||||||
"VTLANG_JSON_CHK_PASSWORD": "配置檢查 —— 密碼外掛程式",
|
"VTLANG_JSON_CHK_PASSWORD": "設定檢查 —— 密碼外掛程式",
|
||||||
|
|
||||||
"VTLANG_NORMAL_MODE": "以正常模式啟動",
|
"VTLANG_NORMAL_MODE": "以正常模式啟動",
|
||||||
"VTLANG_WIMBOOT_MODE": "以 wimboot 模式啟動",
|
"VTLANG_WIMBOOT_MODE": "以 wimboot 模式啟動",
|
||||||
"VTLANG_GRUB2_MODE": "以 grub2 模式啟動",
|
"VTLANG_GRUB2_MODE": "以 grub2 模式啟動",
|
||||||
"VTLANG_MEMDISK_MODE": "以內存檔模式啟動",
|
"VTLANG_MEMDISK_MODE": "以 memdisk 模式啟動",
|
||||||
|
|
||||||
"VTLANG_RET_TO_LISTVIEW": "返回到清單模式",
|
"VTLANG_RET_TO_LISTVIEW": "返回到清單檢視",
|
||||||
"VTLANG_RET_TO_TREEVIEW": "返回到樹形模式",
|
"VTLANG_RET_TO_TREEVIEW": "返回到樹狀檢視",
|
||||||
|
|
||||||
"VTLANG_NO_AUTOINS_SCRIPT": "不使用自動安裝腳本",
|
"VTLANG_NO_AUTOINS_SCRIPT": "不使用自動安裝腳本",
|
||||||
"VTLANG_AUTOINS_USE": "使用",
|
"VTLANG_AUTOINS_USE": "使用",
|
||||||
|
|
||||||
"VTLANG_NO_PERSIST": "不使用持久化資料檔案",
|
"VTLANG_NO_PERSIST": "不使用永久性資料檔案",
|
||||||
"VTLANG_PERSIST_USE": "使用",
|
"VTLANG_PERSIST_USE": "使用",
|
||||||
|
|
||||||
"VTLANG_BROWER_RETURN": "返回",
|
"VTLANG_BROWER_RETURN": "返回",
|
||||||
|
|
||||||
"VTLANG_ENTER_EXIT": "按回車鍵退出",
|
"VTLANG_ENTER_EXIT": "按 Enter 鍵退出",
|
||||||
"VTLANG_ENTER_REBOOT": "按回車鍵重啟",
|
"VTLANG_ENTER_REBOOT": "按 Enter 鍵重新開機",
|
||||||
"VTLANG_ENTER_CONTINUE": "按回車鍵繼續",
|
"VTLANG_ENTER_CONTINUE": "按 Enter 鍵繼續",
|
||||||
|
|
||||||
"VTLANG_CTRL_TEMP_SET": "控制變量設置",
|
"VTLANG_CTRL_TEMP_SET": "控制變數設定",
|
||||||
"VTLANG_WIN11_BYPASS_CHECK": "安裝 Windows 11 時繞過TPM/安全啟動等硬件檢查",
|
"VTLANG_WIN11_BYPASS_CHECK": "安裝 Windows 11 時繞過TPM/安全啟動等硬體檢查",
|
||||||
"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": "顯示次要啟動選單",
|
||||||
|
|
||||||
"MENU_STR_XXX": ""
|
"MENU_STR_XXX": ""
|
||||||
}
|
}
|
||||||
|
@@ -143,7 +143,7 @@ if grep "$DISK" /proc/mounts; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
#check swap partition
|
#check swap partition
|
||||||
if swapon --help 2>&1 | grep -q '^ \-s,'; then
|
if swapon --help 2>&1 | grep -q '^ -s,'; then
|
||||||
if swapon -s | grep -q "^${DISK}[0-9]"; then
|
if swapon -s | grep -q "^${DISK}[0-9]"; then
|
||||||
vterr "$DISK is used as swap, please swapoff it first!"
|
vterr "$DISK is used as swap, please swapoff it first!"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -185,14 +185,27 @@ if [ "$MODE" = "install" -a -z "$NONDESTRUCTIVE" ]; then
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if parted -v > /dev/null 2>&1; then
|
if parted -v > /dev/null 2>&1; then
|
||||||
PARTTOOL='parted'
|
PARTTOOL='parted'
|
||||||
elif fdisk -v >/dev/null 2>&1; then
|
elif fdisk -v >/dev/null 2>&1; then
|
||||||
PARTTOOL='fdisk'
|
PARTTOOL='fdisk'
|
||||||
else
|
else
|
||||||
vterr "Both parted and fdisk are not found in the system, Ventoy can't create new partitions."
|
vterr "Both parted and fdisk are not found in the system, Ventoy can't create new partitions."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$PARTTOOL" = "parted" ]; then
|
||||||
|
if parted $DISK p | grep -i -q 'sector size.*4096.*4096'; then
|
||||||
|
vterr "Currently Ventoy does not support 4K native device."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if fdisk -l $DISK | grep -i -q 'sector size.*4096.*4096'; then
|
||||||
|
vterr "Currently Ventoy does not support 4K native device."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
version=$(get_disk_ventoy_version $DISK)
|
version=$(get_disk_ventoy_version $DISK)
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -492,7 +492,7 @@ format_ventoy_disk_gpt() {
|
|||||||
for i in 0 1 2 3 4 5 6 7 8 9; do
|
for i in 0 1 2 3 4 5 6 7 8 9; do
|
||||||
check_umount_disk "$PART2"
|
check_umount_disk "$PART2"
|
||||||
|
|
||||||
if mkfs.vfat -F 16 -n VTOYEFI $PART2; then
|
if mkfs.vfat -F 16 -n VTOYEFI -s 1 $PART2; then
|
||||||
echo 'success'
|
echo 'success'
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -169,8 +169,27 @@ sed 's/.*SCRIPT_DEL_THIS \(.*\)/\1/g' -i $tmpdir/WebUI/index.html
|
|||||||
|
|
||||||
#32MB disk img
|
#32MB disk img
|
||||||
dd status=none if=$LOOP of=$tmpdir/ventoy/ventoy.disk.img bs=512 count=$VENTOY_SECTOR_NUM skip=$part2_start_sector
|
dd status=none if=$LOOP of=$tmpdir/ventoy/ventoy.disk.img bs=512 count=$VENTOY_SECTOR_NUM skip=$part2_start_sector
|
||||||
|
|
||||||
|
|
||||||
|
#4k image
|
||||||
|
# echo "make 4K img ..."
|
||||||
|
# dd status=none if=/dev/zero of=$tmpdir/ventoy/ventoy_4k.disk.img bs=1M count=32
|
||||||
|
# mkfs.vfat -F 16 -n VTOYEFI -s 1 -S 4096 $tmpdir/ventoy/ventoy_4k.disk.img
|
||||||
|
# vDIR1=$(mktemp -d)
|
||||||
|
# vDIR2=$(mktemp -d)
|
||||||
|
# mount $tmpdir/ventoy/ventoy.disk.img $vDIR1
|
||||||
|
# mount $tmpdir/ventoy/ventoy_4k.disk.img $vDIR2
|
||||||
|
# cp -a $vDIR1/* $vDIR2/
|
||||||
|
# umount $vDIR1
|
||||||
|
# umount $vDIR2
|
||||||
|
# rm -rf $vDIR1 $vDIR2
|
||||||
|
|
||||||
|
# xz --check=crc32 $tmpdir/ventoy/ventoy_4k.disk.img
|
||||||
|
|
||||||
xz --check=crc32 $tmpdir/ventoy/ventoy.disk.img
|
xz --check=crc32 $tmpdir/ventoy/ventoy.disk.img
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
losetup -d $LOOP && rm -f img.bin
|
losetup -d $LOOP && rm -f img.bin
|
||||||
|
|
||||||
rm -f ventoy-${curver}-linux.tar.gz
|
rm -f ventoy-${curver}-linux.tar.gz
|
||||||
|
@@ -60,6 +60,7 @@
|
|||||||
"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.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -124,7 +125,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Ianə",
|
"STR_DONATE":"Ianə",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -144,7 +146,7 @@
|
|||||||
"STR_STATUS":"상태 - 준비 완료",
|
"STR_STATUS":"상태 - 준비 완료",
|
||||||
"STR_INSTALL":"설치",
|
"STR_INSTALL":"설치",
|
||||||
"STR_UPDATE":"업데이트",
|
"STR_UPDATE":"업데이트",
|
||||||
"STR_UPDATE_TIP":"업그레이드 작업은 안전하며 ISO 파일은 변경되지 않습니다.#@계속하시겠습니까?",
|
"STR_UPDATE_TIP":"업그레이드 작업은 안전하며 ISO 파일이 변경되지 않습니다.#@계속하시겠습니까?",
|
||||||
"STR_INSTALL_TIP":"디스크가 포맷되고 모든 데이터가 손실됩니다.#@계속하시겠습니까?",
|
"STR_INSTALL_TIP":"디스크가 포맷되고 모든 데이터가 손실됩니다.#@계속하시겠습니까?",
|
||||||
"STR_INSTALL_TIP2":"디스크가 포맷되고 모든 데이터가 손실됩니다.#@계속하시겠습니까? (다시 확인)",
|
"STR_INSTALL_TIP2":"디스크가 포맷되고 모든 데이터가 손실됩니다.#@계속하시겠습니까? (다시 확인)",
|
||||||
"STR_INSTALL_SUCCESS":"축하합니다!#@Ventoy가 장치에 성공적으로 설치되었습니다.",
|
"STR_INSTALL_SUCCESS":"축하합니다!#@Ventoy가 장치에 성공적으로 설치되었습니다.",
|
||||||
@@ -170,17 +172,17 @@
|
|||||||
"STR_WEB_REMOTE_ABNORMAL":"통신 오류: 원격 이상",
|
"STR_WEB_REMOTE_ABNORMAL":"통신 오류: 원격 이상",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"통신 오류: 요청이 시간 초과됨",
|
"STR_WEB_REQUEST_TIMEOUT":"통신 오류: 요청이 시간 초과됨",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"통신 오류: 서비스를 사용할 수 없음",
|
"STR_WEB_SERVICE_UNAVAILABLE":"통신 오류: 서비스를 사용할 수 없음",
|
||||||
"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":"무손실 설치",
|
||||||
"STR_PART_RESIZE_TIP":"가능하면 Ventoy가 비파괴 설치를 시도합니다. #@계속하시겠습니까?",
|
"STR_PART_RESIZE_TIP":"가능하면 Ventoy가 무손실 설치를 시도합니다. #@계속하시겠습니까?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"축하합니다!#@Ventoy 비파괴 설치가 완료되었습니다.",
|
"STR_PART_RESIZE_SUCCESS":"축하합니다!#@Ventoy 무손실 설치가 완료되었습니다.",
|
||||||
"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 파티션용 파일 시스템",
|
||||||
@@ -188,6 +190,7 @@
|
|||||||
"STR_PART_CLUSTER":"클러스터 크기",
|
"STR_PART_CLUSTER":"클러스터 크기",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"시스템 기본값",
|
"STR_PART_CLUSTER_DEFAULT":"시스템 기본값",
|
||||||
"STR_DONATE":"기부",
|
"STR_DONATE":"기부",
|
||||||
|
"STR_4KN_UNSUPPORTED":"현재 Ventoy는 네이티브 4K 섹터의 디스크를 지원하지 않습니다.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -252,6 +255,7 @@
|
|||||||
"STR_PART_CLUSTER":"簇大小",
|
"STR_PART_CLUSTER":"簇大小",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"系统默认值",
|
"STR_PART_CLUSTER_DEFAULT":"系统默认值",
|
||||||
"STR_DONATE":"捐助",
|
"STR_DONATE":"捐助",
|
||||||
|
"STR_4KN_UNSUPPORTED":"目前 Ventoy 不支持原生 4K 扇区的磁盘。",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -316,7 +320,8 @@
|
|||||||
"STR_PART_CLUSTER":"Klynge størrelse",
|
"STR_PART_CLUSTER":"Klynge størrelse",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Standard Værdi",
|
"STR_PART_CLUSTER_DEFAULT":"System Standard Værdi",
|
||||||
"STR_DONATE":"Donering",
|
"STR_DONATE":"Donering",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -380,7 +385,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donate",
|
"STR_DONATE":"Donate",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -444,7 +450,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"შემოწირულობა",
|
"STR_DONATE":"შემოწირულობა",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX": ""
|
"STRXXX": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -508,14 +515,15 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"اهداء",
|
"STR_DONATE":"اهداء",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Polish (Polski)",
|
"name":"Polish (Polski)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"B.O.S.S",
|
"Author":"B.O.S.S, ChuckMichael",
|
||||||
|
|
||||||
"STR_ERROR":"Błąd",
|
"STR_ERROR":"Błąd",
|
||||||
"STR_WARNING":"Ostrzeżenie",
|
"STR_WARNING":"Ostrzeżenie",
|
||||||
@@ -530,26 +538,26 @@
|
|||||||
"STR_UPDATE":"Zaktualizuj",
|
"STR_UPDATE":"Zaktualizuj",
|
||||||
"STR_UPDATE_TIP":"Operacja aktualizacji jest bezpieczna, pliki ISO pozostaną niezmienione.#@Kontynuować?",
|
"STR_UPDATE_TIP":"Operacja aktualizacji jest bezpieczna, pliki ISO pozostaną niezmienione.#@Kontynuować?",
|
||||||
"STR_INSTALL_TIP":"Dysk zostanie sformatowany, a wszystkie dane zostaną utracone.#@Kontynuować?",
|
"STR_INSTALL_TIP":"Dysk zostanie sformatowany, a wszystkie dane zostaną utracone.#@Kontynuować?",
|
||||||
"STR_INSTALL_TIP2":"Dysk zostanie sformatowany, a wszystkie dane zostaną utracone.#@Kontynuować? (Podwójne sprawdzenie)",
|
"STR_INSTALL_TIP2":"Dysk zostanie sformatowany, a wszystkie dane zostaną utracone.#@Kontynuować? (Ponowne sprawdzenie)",
|
||||||
"STR_INSTALL_SUCCESS":"Gratulacje!#@Ventoy został pomyślnie zainstalowany na urządzeniu.",
|
"STR_INSTALL_SUCCESS":"Gratulacje!#@Ventoy został pomyślnie zainstalowany na urządzeniu.",
|
||||||
"STR_INSTALL_FAILED":"Wystąpił błąd podczas instalacji. Możesz ponownie podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
"STR_INSTALL_FAILED":"Wystąpił błąd podczas instalacji. Możesz ponownie podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
||||||
"STR_UPDATE_SUCCESS":"Gratulacje!#@Ventoy zostało pomyślnie zaktualizowane na urządzeniu.",
|
"STR_UPDATE_SUCCESS":"Gratulacje!#@Ventoy został pomyślnie zaktualizowany na urządzeniu.",
|
||||||
"STR_UPDATE_FAILED":"Wystąpił błąd podczas aktualizacji. Możesz ponownie podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
"STR_UPDATE_FAILED":"Wystąpił błąd podczas aktualizacji. Możesz ponownie podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
||||||
"STR_WAIT_PROCESS":"Wątek jest uruchomiony, proszę czekać...",
|
"STR_WAIT_PROCESS":"Wątek jest uruchomiony, proszę czekać...",
|
||||||
"STR_MENU_OPTION":"Opcje",
|
"STR_MENU_OPTION":"Opcje",
|
||||||
"STR_MENU_SECURE_BOOT":"Bezpieczny rozruch/Secure Boot",
|
"STR_MENU_SECURE_BOOT":"Wsparcie Secure Boot",
|
||||||
"STR_MENU_PART_CFG":"Konfiguracja partycji",
|
"STR_MENU_PART_CFG":"Konfiguracja partycji",
|
||||||
"STR_BTN_OK":"OK",
|
"STR_BTN_OK":"OK",
|
||||||
"STR_BTN_CANCEL":"Anuluj",
|
"STR_BTN_CANCEL":"Anuluj",
|
||||||
"STR_PRESERVE_SPACE":"Zachowaj trochę miejsca na dole dysku",
|
"STR_PRESERVE_SPACE":"Zarezerwuj trochę miejsca na końcu dysku",
|
||||||
"STR_SPACE_VAL_INVALID":"Nieprawidłowa wartość zarezerwowanego miejsca",
|
"STR_SPACE_VAL_INVALID":"Nieprawidłowa wartość dla zarezerwowanego miejsca",
|
||||||
"STR_MENU_CLEAR":"Wyczyść Ventoy",
|
"STR_MENU_CLEAR":"Wyczyść Ventoy",
|
||||||
"STR_CLEAR_SUCCESS":"Ventoy został pomyślnie usunięty z urządzenia.",
|
"STR_CLEAR_SUCCESS":"Ventoy został pomyślnie usunięty z urządzenia.",
|
||||||
"STR_CLEAR_FAILED":"Wystąpił błąd podczas usuwania Ventoy z dysku. Możesz podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
"STR_CLEAR_FAILED":"Wystąpił błąd podczas usuwania Ventoy z dysku. Możesz podłączyć USB i spróbować jeszcze raz. Szczegóły w log.txt.",
|
||||||
"STR_MENU_PART_STYLE":"Schemat partycji",
|
"STR_MENU_PART_STYLE":"Schemat partycji",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Wybierz GPT dla dysku powyżej 2TB",
|
"STR_DISK_2TB_MBR_ERROR":"Wybierz GPT dla dysku powyżej 2TB",
|
||||||
"STR_SHOW_ALL_DEV":"Pokaż wszystkie urządzenia",
|
"STR_SHOW_ALL_DEV":"Pokaż wszystkie urządzenia",
|
||||||
"STR_PART_ALIGN_4KB":"Wyrównaj partycje z 4KB",
|
"STR_PART_ALIGN_4KB":"Wyrównaj partycje do 4KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Błąd komunikacji:",
|
"STR_WEB_COMMUNICATION_ERR":"Błąd komunikacji:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Błąd komunikacji: nieprawidłowy serwer",
|
"STR_WEB_REMOTE_ABNORMAL":"Błąd komunikacji: nieprawidłowy serwer",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Błąd komunikacji: przekroczono limit czasu żądania",
|
"STR_WEB_REQUEST_TIMEOUT":"Błąd komunikacji: przekroczono limit czasu żądania",
|
||||||
@@ -557,9 +565,9 @@
|
|||||||
"STR_WEB_TOKEN_MISMATCH":"Stan daemona został zaktualizowany, spróbuj ponownie później.",
|
"STR_WEB_TOKEN_MISMATCH":"Stan daemona został zaktualizowany, spróbuj ponownie później.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Usługa jest zajęta, spróbuj ponownie później.",
|
"STR_WEB_SERVICE_BUSY":"Usługa jest zajęta, spróbuj ponownie później.",
|
||||||
"STR_MENU_VTSI_CREATE":"Wygeneruj plik VTSI",
|
"STR_MENU_VTSI_CREATE":"Wygeneruj plik VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"Tym razem nie napisze do urządzenia ale tylko wygeneruje plik VTSI#@Kontynuować?",
|
"STR_VTSI_CREATE_TIP":"Tym razem nie zapisze na urządzeniu, ale tylko wygeneruje plik VTSI#@Kontynuować?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Pomyślnie wygenerowane plik VTSI!#@Możesz teraz użyć Rufus'a(3.15+) aby napisać go na urządzenie by dokończyć instalację Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"Pomyślnie wygenerowany plik VTSI!#@Możesz teraz użyć Rufus'a(3.15+) aby zapisać go na urządzeniu by dokończyć instalację Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"Generacja pliku VTSI nie powiodła się.",
|
"STR_VTSI_CREATE_FAILED":"Wygenerowanie pliku VTSI nie powiodło się.",
|
||||||
"STR_MENU_PART_RESIZE":"Nieniszcząca instalacja",
|
"STR_MENU_PART_RESIZE":"Nieniszcząca instalacja",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy spróbuje nieniszczącej instalacji jeśli jest możliwa. #@Kontynuować?",
|
"STR_PART_RESIZE_TIP":"Ventoy spróbuje nieniszczącej instalacji jeśli jest możliwa. #@Kontynuować?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Gratulacje!#@Nieniszcząca instalacja Ventoy zakończyła się pomyślnie.",
|
"STR_PART_RESIZE_SUCCESS":"Gratulacje!#@Nieniszcząca instalacja Ventoy zakończyła się pomyślnie.",
|
||||||
@@ -571,8 +579,9 @@
|
|||||||
"STR_PART_FS":"System plików",
|
"STR_PART_FS":"System plików",
|
||||||
"STR_PART_CLUSTER":"Wielkość klastra",
|
"STR_PART_CLUSTER":"Wielkość klastra",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Wartość domyślna systemu",
|
"STR_PART_CLUSTER_DEFAULT":"Wartość domyślna systemu",
|
||||||
"STR_DONATE":"Podarować",
|
"STR_DONATE":"Przekaż darowiznę",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Obecnie Ventoy nie obsługuje urządzeń o fizycznym rozmiarze sektora 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -636,14 +645,15 @@
|
|||||||
"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.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Turkish (Türkçe)",
|
"name":"Turkish (Türkçe)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"Erhan Kültür/crasadure, Oğuz Ersen",
|
"Author":"Erhan Kültür,Tayfun Akkoyun, Oğuz Ersen",
|
||||||
|
|
||||||
"STR_ERROR":"Hata",
|
"STR_ERROR":"Hata",
|
||||||
"STR_WARNING":"Uyarı",
|
"STR_WARNING":"Uyarı",
|
||||||
@@ -700,7 +710,8 @@
|
|||||||
"STR_PART_CLUSTER":"Sektör Boyutu",
|
"STR_PART_CLUSTER":"Sektör Boyutu",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Sistem varsayılan değeri",
|
"STR_PART_CLUSTER_DEFAULT":"Sistem varsayılan değeri",
|
||||||
"STR_DONATE":"Ventoy'a Bağış yap",
|
"STR_DONATE":"Ventoy'a Bağış yap",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Diskiniz 4K(4096byte) sektör yapısına sahip.Ventoy, 4K sektör yapısına sahip cihazlara şu anda destek vermemektedir.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -764,7 +775,8 @@
|
|||||||
"STR_PART_CLUSTER":"Clustergröße",
|
"STR_PART_CLUSTER":"Clustergröße",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Systemstandardwert",
|
"STR_PART_CLUSTER_DEFAULT":"Systemstandardwert",
|
||||||
"STR_DONATE":"Spenden",
|
"STR_DONATE":"Spenden",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Ventoy unterstützt derzeit keine nativen 4K Geräte.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -828,7 +840,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donate",
|
"STR_DONATE":"Donate",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -892,7 +905,8 @@
|
|||||||
"STR_PART_CLUSTER":"Taille de cluster",
|
"STR_PART_CLUSTER":"Taille de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valeur par défaut du système",
|
"STR_PART_CLUSTER_DEFAULT":"Valeur par défaut du système",
|
||||||
"STR_DONATE":"Faire un don",
|
"STR_DONATE":"Faire un don",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Actuellement, Ventoy ne prend pas en charge les appareils natifs 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -956,7 +970,8 @@
|
|||||||
"STR_PART_CLUSTER":"Velikost clusteru",
|
"STR_PART_CLUSTER":"Velikost clusteru",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Výchozí hodnota systému",
|
"STR_PART_CLUSTER_DEFAULT":"Výchozí hodnota systému",
|
||||||
"STR_DONATE":"Darovat",
|
"STR_DONATE":"Darovat",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1019,7 +1034,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Darovať",
|
"STR_DONATE":"Darovať",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1083,7 +1099,8 @@
|
|||||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||||
"STR_DONATE":"Donar",
|
"STR_DONATE":"Donar",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Actualmente Ventoy no soporta dispositivos nativos 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1147,7 +1164,8 @@
|
|||||||
"STR_PART_CLUSTER":"Tamaño de cluster",
|
"STR_PART_CLUSTER":"Tamaño de cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valor predeterminado del sistema",
|
||||||
"STR_DONATE":"Donar",
|
"STR_DONATE":"Donar",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1162,29 +1180,29 @@
|
|||||||
"STR_INCORRECT_DIR":"Запустите в другой папке!",
|
"STR_INCORRECT_DIR":"Запустите в другой папке!",
|
||||||
"STR_INCORRECT_TREE_DIR":"Не запускайте приложение здесь, загрузите установочный пакет и запустите его в другом месте.",
|
"STR_INCORRECT_TREE_DIR":"Не запускайте приложение здесь, загрузите установочный пакет и запустите его в другом месте.",
|
||||||
"STR_DEVICE":"Устройство",
|
"STR_DEVICE":"Устройство",
|
||||||
"STR_LOCAL_VER":"Вентой в пакете",
|
"STR_LOCAL_VER":"Ventoy в пакете",
|
||||||
"STR_DISK_VER":"Вентой на накопителе",
|
"STR_DISK_VER":"Ventoy на накопителе",
|
||||||
"STR_STATUS":"Состояние — ГОТОВ",
|
"STR_STATUS":"Состояние — ГОТОВ",
|
||||||
"STR_INSTALL":"Установить",
|
"STR_INSTALL":"Установить",
|
||||||
"STR_UPDATE":"Обновить",
|
"STR_UPDATE":"Обновить",
|
||||||
"STR_UPDATE_TIP":"Обновление безопасно, ISO-образы останутся без изменений.#@Продолжить?",
|
"STR_UPDATE_TIP":"Обновление безопасно, ISO-образы останутся без изменений.#@Продолжить?",
|
||||||
"STR_INSTALL_TIP":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Продолжить?",
|
"STR_INSTALL_TIP":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Продолжить?",
|
||||||
"STR_INSTALL_TIP2":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Вы действительно хотите продолжить?",
|
"STR_INSTALL_TIP2":"Это действие отформатирует накопитель, все данные на нём будут уничтожены.#@Вы действительно хотите продолжить?",
|
||||||
"STR_INSTALL_SUCCESS":"Поздравляем!#@Установка Вентоя на устройстве успешно выполнена.",
|
"STR_INSTALL_SUCCESS":"Поздравляем!#@Установка Ventoy на устройстве успешно выполнена.",
|
||||||
"STR_INSTALL_FAILED":"Ошибка при установке. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
"STR_INSTALL_FAILED":"Ошибка при установке. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||||
"STR_UPDATE_SUCCESS":"Поздравляем!#@Обновление Вентоя на устройстве успешно выполнено.",
|
"STR_UPDATE_SUCCESS":"Поздравляем!#@Обновление Ventoy на устройстве успешно выполнено.",
|
||||||
"STR_UPDATE_FAILED":"Ошибка при обновлении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
"STR_UPDATE_FAILED":"Ошибка при обновлении Ventoy. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями. Если ошибка не исчезает, см. «FAQ» на официальном сайте.",
|
||||||
"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":"Дополнительный раздел",
|
||||||
"STR_BTN_OK":"OK",
|
"STR_BTN_OK":"OK",
|
||||||
"STR_BTN_CANCEL":"Отмена",
|
"STR_BTN_CANCEL":"Отмена",
|
||||||
"STR_PRESERVE_SPACE":"Создать дополнительный раздел в конце диска",
|
"STR_PRESERVE_SPACE":"Создать дополнительный раздел в конце накопителя",
|
||||||
"STR_SPACE_VAL_INVALID":"Недействительное значение размера раздела",
|
"STR_SPACE_VAL_INVALID":"Недействительное значение размера раздела",
|
||||||
"STR_MENU_CLEAR":"Удалить Вентой",
|
"STR_MENU_CLEAR":"Удалить Ventoy",
|
||||||
"STR_CLEAR_SUCCESS":"Удаление Вентоя с устройства успешно выполнено.",
|
"STR_CLEAR_SUCCESS":"Удаление Ventoy с устройства успешно выполнено.",
|
||||||
"STR_CLEAR_FAILED":"Ошибка при удалении Вентоя. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями.",
|
"STR_CLEAR_FAILED":"Ошибка при удалении Ventoy. Переподключите USB-накопитель и попробуйте снова. См. файл log.txt с подробностями.",
|
||||||
"STR_MENU_PART_STYLE":"Стиль разметки разделов",
|
"STR_MENU_PART_STYLE":"Стиль разметки разделов",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Для накопителей объёмом более 2 ТБ выберите GPT",
|
"STR_DISK_2TB_MBR_ERROR":"Для накопителей объёмом более 2 ТБ выберите GPT",
|
||||||
"STR_SHOW_ALL_DEV":"Показывать все устройства",
|
"STR_SHOW_ALL_DEV":"Показывать все устройства",
|
||||||
@@ -1196,22 +1214,23 @@
|
|||||||
"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":"Вместо установки Ventoy на накопитель будет создан только vtsi-файл.#@Продолжить?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Файл .vtsi успешно создан.#@Вы можете записать его на накопитель с помощью приложения Rufus (v3.15+), чтобы завершить установку Вентоя.",
|
"STR_VTSI_CREATE_SUCCESS":"Файл .vtsi успешно создан.#@Вы можете записать его на накопитель с помощью приложения Rufus (v3.15+), чтобы завершить установку Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"Ошибка создания vtsi-файла.",
|
"STR_VTSI_CREATE_FAILED":"Ошибка создания vtsi-файла.",
|
||||||
"STR_MENU_PART_RESIZE":"Неразрушающая установка",
|
"STR_MENU_PART_RESIZE":"Неразрушающая установка",
|
||||||
"STR_PART_RESIZE_TIP":"Вентой попробует выполнить неразрушающую установку. #@Продолжить?",
|
"STR_PART_RESIZE_TIP":"Ventoy попробует выполнить неразрушающую установку. #@Продолжить?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Вентоя успешно выполнена.",
|
"STR_PART_RESIZE_SUCCESS":"Поздравляем!#@Неразрушающая установка Ventoy успешно выполнена.",
|
||||||
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.",
|
"STR_PART_RESIZE_FAILED":"Не удалось выполнить неразрушающую установку, см. файл log.txt с подробностями.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Неразрушающая установка Вентоя остановлена из-за несоответствия некоторым требованиям. См. файл 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":"Файловая система для раздела Вентоя",
|
"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":"В настоящее время Ventoy не поддерживает родные устройства 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1275,7 +1294,8 @@
|
|||||||
"STR_PART_CLUSTER":"ক্লাস্টারের আকার",
|
"STR_PART_CLUSTER":"ক্লাস্টারের আকার",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"সিস্টেমের ডিফল্ট মান",
|
"STR_PART_CLUSTER_DEFAULT":"সিস্টেমের ডিফল্ট মান",
|
||||||
"STR_DONATE":"দান করুন",
|
"STR_DONATE":"দান করুন",
|
||||||
|
"STR_4KN_UNSUPPORTED":"বর্তমানে Ventoy 4K নেটিভ ডিভাইস সমর্থন করে না।",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1339,7 +1359,8 @@
|
|||||||
"STR_PART_CLUSTER":"क्लस्टर साइज",
|
"STR_PART_CLUSTER":"क्लस्टर साइज",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"सिस्टम डिफ़ॉल्ट मान",
|
"STR_PART_CLUSTER_DEFAULT":"सिस्टम डिफ़ॉल्ट मान",
|
||||||
"STR_DONATE":"दान करें",
|
"STR_DONATE":"दान करें",
|
||||||
|
"STR_4KN_UNSUPPORTED":"वर्तमान में Ventoy 4K नेटिव डिवाइस को सपोर्ट नहीं करता है।",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1403,6 +1424,7 @@
|
|||||||
"STR_PART_CLUSTER":"Clustergrootte",
|
"STR_PART_CLUSTER":"Clustergrootte",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Standaardwaarde systeem",
|
"STR_PART_CLUSTER_DEFAULT":"Standaardwaarde systeem",
|
||||||
"STR_DONATE":"Doneer",
|
"STR_DONATE":"Doneer",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1467,6 +1489,7 @@
|
|||||||
"STR_PART_CLUSTER":"Dimensiunea clusterului",
|
"STR_PART_CLUSTER":"Dimensiunea clusterului",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valoarea implicită a sistemului",
|
"STR_PART_CLUSTER_DEFAULT":"Valoarea implicită a sistemului",
|
||||||
"STR_DONATE":"Donează",
|
"STR_DONATE":"Donează",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Momentan, Ventoy nu suporta dispozitive native 4k.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
@@ -1531,14 +1554,15 @@
|
|||||||
"STR_PART_CLUSTER":"クラスターサイズ",
|
"STR_PART_CLUSTER":"クラスターサイズ",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"システムのデフォルト値",
|
"STR_PART_CLUSTER_DEFAULT":"システムのデフォルト値",
|
||||||
"STR_DONATE":"寄付",
|
"STR_DONATE":"寄付",
|
||||||
|
"STR_4KN_UNSUPPORTED":"現在、Ventoy は 4K ネイティブ デバイスをサポートしていません。",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Italian (Italiano)",
|
"name":"Italian (Italiano)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"AverageUser2,Albano Battistella,bovirus",
|
"Author":"AverageUser2,Albano Battistella,bovirus,passero",
|
||||||
|
|
||||||
"STR_ERROR":"Errore",
|
"STR_ERROR":"Errore",
|
||||||
"STR_WARNING":"Attenzione",
|
"STR_WARNING":"Attenzione",
|
||||||
@@ -1546,7 +1570,7 @@
|
|||||||
"STR_INCORRECT_DIR":"Eseguilo nella cartella corretta",
|
"STR_INCORRECT_DIR":"Eseguilo nella cartella corretta",
|
||||||
"STR_INCORRECT_TREE_DIR":"Non eseguirlo qui.#@Scarica il pacchetto di installazione ed avvialo.",
|
"STR_INCORRECT_TREE_DIR":"Non eseguirlo qui.#@Scarica il pacchetto di installazione ed avvialo.",
|
||||||
"STR_DEVICE":"Dispositivo",
|
"STR_DEVICE":"Dispositivo",
|
||||||
"STR_LOCAL_VER":"Versione locale",
|
"STR_LOCAL_VER":"Versione installata",
|
||||||
"STR_DISK_VER":"Versione nel dispositivo",
|
"STR_DISK_VER":"Versione nel dispositivo",
|
||||||
"STR_STATUS":"Stato - PRONTO",
|
"STR_STATUS":"Stato - PRONTO",
|
||||||
"STR_INSTALL":"Installa",
|
"STR_INSTALL":"Installa",
|
||||||
@@ -1555,22 +1579,22 @@
|
|||||||
"STR_INSTALL_TIP":"Il dispositivo verrà formattato e tutti i dati saranno persi.#@Vuoi continuare?",
|
"STR_INSTALL_TIP":"Il dispositivo verrà formattato e tutti i dati saranno persi.#@Vuoi continuare?",
|
||||||
"STR_INSTALL_TIP2":"Il dispositivo verrà formattato e tutti i dati saranno persi.#@Vuoi continuare (seconda verifica)?",
|
"STR_INSTALL_TIP2":"Il dispositivo verrà formattato e tutti i dati saranno persi.#@Vuoi continuare (seconda verifica)?",
|
||||||
"STR_INSTALL_SUCCESS":"Congratulazioni!#@Installazione di Ventoy nel dispositivo completata.",
|
"STR_INSTALL_SUCCESS":"Congratulazioni!#@Installazione di Ventoy nel dispositivo completata.",
|
||||||
"STR_INSTALL_FAILED":"Si è verificato un errore durante l'installazione.#@Riconnetti il dispositivo e riprova.#@Per i dettagli controlla il file log.txt .",
|
"STR_INSTALL_FAILED":"Si è verificato un errore durante l'installazione.#@Riconnetti il dispositivo e riprova.#@Controlla il file log.txt per i dettagli.",
|
||||||
"STR_UPDATE_SUCCESS":"Congratulazioni!#@Aggiornamento di Ventoy nel dispositivo completato",
|
"STR_UPDATE_SUCCESS":"Congratulazioni!#@Aggiornamento di Ventoy nel dispositivo completato",
|
||||||
"STR_UPDATE_FAILED":"Si è verificato un errore durante l'aggiornamento.#@Riconnetti il dispositivo e riprova.#@Per i dettagli controlla il file log.txt.",
|
"STR_UPDATE_FAILED":"Si è verificato un errore durante l'aggiornamento.#@È possibile riconnettere il dispositivo USB e riprovare.#@Controlla il file log.txt per i dettagli. Se l'aggiornamento non va a buon fine, consulta le FAQ sul sito ufficiale",
|
||||||
"STR_WAIT_PROCESS":"Un processo è in esecuzione. Attendi...",
|
"STR_WAIT_PROCESS":"Un processo è in esecuzione. Attendi...",
|
||||||
"STR_MENU_OPTION":"Opzioni",
|
"STR_MENU_OPTION":"Opzioni",
|
||||||
"STR_MENU_SECURE_BOOT":"Avvio protetto (secure boot)",
|
"STR_MENU_SECURE_BOOT":"Avvio protetto (secure boot)",
|
||||||
"STR_MENU_PART_CFG":"Configurazione partizione",
|
"STR_MENU_PART_CFG":"Configurazione partizione",
|
||||||
"STR_BTN_OK":"OK",
|
"STR_BTN_OK":"OK",
|
||||||
"STR_BTN_CANCEL":"Annulla",
|
"STR_BTN_CANCEL":"Annulla",
|
||||||
"STR_PRESERVE_SPACE":"Riserva spazio nella parte finale del dispositivo",
|
"STR_PRESERVE_SPACE":"Riserva un po' di spazio alla fine del dispositivo",
|
||||||
"STR_SPACE_VAL_INVALID":"Quantità di spazio da riservare non valida",
|
"STR_SPACE_VAL_INVALID":"Quantità di spazio da riservare non valida",
|
||||||
"STR_MENU_CLEAR":"Rimuovi Ventoy dal dispositivo",
|
"STR_MENU_CLEAR":"Rimuovi Ventoy dal dispositivo",
|
||||||
"STR_CLEAR_SUCCESS":"Rimozione di Ventoy dal dispositivo completata.",
|
"STR_CLEAR_SUCCESS":"Rimozione di Ventoy dal dispositivo completata.",
|
||||||
"STR_CLEAR_FAILED":"Si è verificato un errore durante la rimozione di Ventoy dal dispositivo.#@Riconnetti il dispositivo e riprova.#@Per i dettagli controlla il file log.txt.",
|
"STR_CLEAR_FAILED":"Si è verificato un errore durante la rimozione di Ventoy dal dispositivo.#@È possibile riconnettere il dispositivo USB e riprovare.#@Controlla il file log.txt per i dettagli",
|
||||||
"STR_MENU_PART_STYLE":"Stile tabella partizioni",
|
"STR_MENU_PART_STYLE":"Stile tabella partizioni",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Seleziona GPT per dispositivi con dimensioni maggiori di 2TB",
|
"STR_DISK_2TB_MBR_ERROR":"Seleziona GPT per i dispositivi più grandi di 2TB",
|
||||||
"STR_SHOW_ALL_DEV":"Visualizza tutti i dispositivi",
|
"STR_SHOW_ALL_DEV":"Visualizza tutti i dispositivi",
|
||||||
"STR_PART_ALIGN_4KB":"Allinea le partizioni con 4KB",
|
"STR_PART_ALIGN_4KB":"Allinea le partizioni con 4KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Errore di comunicazione:",
|
"STR_WEB_COMMUNICATION_ERR":"Errore di comunicazione:",
|
||||||
@@ -1581,21 +1605,22 @@
|
|||||||
"STR_WEB_SERVICE_BUSY":"Il servizio è occupato. Riprova più tardi.",
|
"STR_WEB_SERVICE_BUSY":"Il servizio è occupato. Riprova più tardi.",
|
||||||
"STR_MENU_VTSI_CREATE":"Genera file VTSI",
|
"STR_MENU_VTSI_CREATE":"Genera file VTSI",
|
||||||
"STR_VTSI_CREATE_TIP":"Questa volta non scriverà sul dispositivo, ma genererà solo un file VTSI#@Vuoi continuare?",
|
"STR_VTSI_CREATE_TIP":"Questa volta non scriverà sul dispositivo, ma genererà solo un file VTSI#@Vuoi continuare?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"Creazione file VTSI completata!#@Per scrivere nel dispositivo in modo da completare l'installazione di Ventoy puoi usare Rufus (versione 3.15 o successiva).",
|
"STR_VTSI_CREATE_SUCCESS":"Creazione file VTSI completata!#@Per scriverlo nel dispositivo in modo da completare l'installazione di Ventoy puoi usare Rufus (versione 3.15 o successiva).",
|
||||||
"STR_VTSI_CREATE_FAILED":"Creazione file VTSI non riuscita.",
|
"STR_VTSI_CREATE_FAILED":"Creazione file VTSI non riuscita.",
|
||||||
"STR_MENU_PART_RESIZE":"Installazione non distruttiva",
|
"STR_MENU_PART_RESIZE":"Installazione non distruttiva",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy proverà, se possibile, l'installazione non distruttiva.#@Vuoi continuare?",
|
"STR_PART_RESIZE_TIP":"Ventoy proverà, se possibile, l'installazione non distruttiva.#@Vuoi continuare?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Congratulazioni!#@Installazione non distruttiva di Ventoy completata.",
|
"STR_PART_RESIZE_SUCCESS":"Congratulazioni!#@Installazione non distruttiva di Ventoy completata.",
|
||||||
"STR_PART_RESIZE_FAILED":"Installazione non distruttiva fallita.#@Per i dettagli controlla il file log.txt.",
|
"STR_PART_RESIZE_FAILED":"Installazione non distruttiva fallita.#@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.#@Per i dettagli controlla il file log.txt.",
|
"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 per la partizione Ventoy",
|
||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"File system",
|
||||||
"STR_PART_CLUSTER":"Dimensione del grappolo",
|
"STR_PART_CLUSTER":"Dimensione del cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema",
|
"STR_PART_CLUSTER_DEFAULT":"Valore predefinito di sistema",
|
||||||
"STR_DONATE":"Donare",
|
"STR_DONATE":"Donare",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Attualmente Ventoy non supporta dispositivi nativi 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1659,7 +1684,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donirajte",
|
"STR_DONATE":"Donirajte",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1723,7 +1749,8 @@
|
|||||||
"STR_PART_CLUSTER":"Klaszter méret",
|
"STR_PART_CLUSTER":"Klaszter méret",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Rendszer alapérték",
|
"STR_PART_CLUSTER_DEFAULT":"Rendszer alapérték",
|
||||||
"STR_DONATE":"Adományoz",
|
"STR_DONATE":"Adományoz",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Jelenleg a Ventoy nem támogat natív 4K eszközt.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1753,7 +1780,7 @@
|
|||||||
"STR_WAIT_PROCESS":"目前仍有執行緒正在運作中,請稍候...",
|
"STR_WAIT_PROCESS":"目前仍有執行緒正在運作中,請稍候...",
|
||||||
"STR_MENU_OPTION":"選項",
|
"STR_MENU_OPTION":"選項",
|
||||||
"STR_MENU_SECURE_BOOT":"支援安全開機",
|
"STR_MENU_SECURE_BOOT":"支援安全開機",
|
||||||
"STR_MENU_PART_CFG":"分割區配置",
|
"STR_MENU_PART_CFG":"設定分割磁區",
|
||||||
"STR_BTN_OK":"確定",
|
"STR_BTN_OK":"確定",
|
||||||
"STR_BTN_CANCEL":"取消",
|
"STR_BTN_CANCEL":"取消",
|
||||||
"STR_PRESERVE_SPACE":"在磁區最後保留一部分空間",
|
"STR_PRESERVE_SPACE":"在磁區最後保留一部分空間",
|
||||||
@@ -1762,7 +1789,7 @@
|
|||||||
"STR_CLEAR_SUCCESS":"Ventoy 已成功從裝置中清除",
|
"STR_CLEAR_SUCCESS":"Ventoy 已成功從裝置中清除",
|
||||||
"STR_CLEAR_FAILED":"清除 Ventoy 的過程中發生錯誤,請再次重新插入磁碟重試,詳細訊息請檢視 log.txt 檔案。",
|
"STR_CLEAR_FAILED":"清除 Ventoy 的過程中發生錯誤,請再次重新插入磁碟重試,詳細訊息請檢視 log.txt 檔案。",
|
||||||
"STR_MENU_PART_STYLE":"分割表格式",
|
"STR_MENU_PART_STYLE":"分割表格式",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"超過 2TB 的磁碟請選擇 GPT 分割表格式",
|
"STR_DISK_2TB_MBR_ERROR":"超過 2TB 的磁碟請選擇 GPT 格式分割表",
|
||||||
"STR_SHOW_ALL_DEV":"顯示所有裝置",
|
"STR_SHOW_ALL_DEV":"顯示所有裝置",
|
||||||
"STR_PART_ALIGN_4KB":"磁碟分割區按照 4KB 對齊",
|
"STR_PART_ALIGN_4KB":"磁碟分割區按照 4KB 對齊",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"通訊錯誤:",
|
"STR_WEB_COMMUNICATION_ERR":"通訊錯誤:",
|
||||||
@@ -1772,7 +1799,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+) 將 VTSI 檔案寫入指定的裝置以完成 Ventoy 的安裝。",
|
"STR_VTSI_CREATE_SUCCESS":"VTSI 檔案建立完成!#@您可以使用 Rufus(3.15+) 將 VTSI 檔案寫入指定的裝置以完成 Ventoy 的安裝。",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI 檔案建立失敗。",
|
"STR_VTSI_CREATE_FAILED":"VTSI 檔案建立失敗。",
|
||||||
"STR_MENU_PART_RESIZE":"無損安裝",
|
"STR_MENU_PART_RESIZE":"無損安裝",
|
||||||
@@ -1782,32 +1809,33 @@
|
|||||||
"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":"磁區單位大小",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"系統默認值",
|
"STR_PART_CLUSTER_DEFAULT":"系統預設值",
|
||||||
"STR_DONATE":"捐助",
|
"STR_DONATE":"贊助",
|
||||||
|
"STR_4KN_UNSUPPORTED":"目前 Ventoy 不支援單位磁區格式為4K的硬碟。",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Serbian Latin (Srpski)",
|
"name":"Serbian Latin (Srpski)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"Bojan Maksimović, panickingkernel, Zoran Jankov",
|
"Author":"Bojan Maksimović, panickingkernel, Zoran Jankov, Stefan Šućur, Kosta Stojiljković",
|
||||||
|
|
||||||
"STR_ERROR":"Greška",
|
"STR_ERROR":"Greška",
|
||||||
"STR_WARNING":"Upozorenje",
|
"STR_WARNING":"Upozorenje",
|
||||||
"STR_INFO":"Informacija",
|
"STR_INFO":"Informacija",
|
||||||
"STR_INCORRECT_DIR":"Molim Vas, pokrenite ме u pravom direktorijumu!",
|
"STR_INCORRECT_DIR":"Molim Vas, pokrenite me u pravom direktorijumu!",
|
||||||
"STR_INCORRECT_TREE_DIR":"Nemojте me pokretati ovde, molim Vas preuzmite objavljeni instalacioni paket i pokrenite me tamo.",
|
"STR_INCORRECT_TREE_DIR":"Nemojtе me pokretati ovde, molim Vas preuzmite objavljeni instalacioni paket i pokrenite me tamo.",
|
||||||
"STR_DEVICE":"Uređaj",
|
"STR_DEVICE":"Uređaj",
|
||||||
"STR_LOCAL_VER":"Ventoy u paketu",
|
"STR_LOCAL_VER":"Ventoy u paketu",
|
||||||
"STR_DISK_VER":"Ventoy u uređaju",
|
"STR_DISK_VER":"Ventoy u uređaju",
|
||||||
"STR_STATUS":"Status - SPREMAN",
|
"STR_STATUS":"Status - SPREMAN",
|
||||||
"STR_INSTALL":"Instaliraj",
|
"STR_INSTALL":"Instaliraj",
|
||||||
"STR_UPDATE":"Nadogradi",
|
"STR_UPDATE":"Nadogradi",
|
||||||
"STR_UPDATE_TIP":"Nadogradnja je sigurna, ISO fajlovi neće biti promenjeni.#@Nastavi?",
|
"STR_UPDATE_TIP":"Nadogradnja je sigurna, ISO datoteke neće biti promenjene.#@Nastavi?",
|
||||||
"STR_INSTALL_TIP":"Disk će biti formatiran i svi podaci će biti izgubljeni.#@Nastavi?",
|
"STR_INSTALL_TIP":"Disk će biti formatiran i svi podaci će biti izgubljeni.#@Nastavi?",
|
||||||
"STR_INSTALL_TIP2":"Disk će biti formatiran i svi podaci će biti izgubljeni.#@Nastavi? (Dvostruka provera)",
|
"STR_INSTALL_TIP2":"Disk će biti formatiran i svi podaci će biti izgubljeni.#@Nastavi? (Dvostruka provera)",
|
||||||
"STR_INSTALL_SUCCESS":"Čestitam!#@Ventoy je uspešno instaliran na ovom uređaju.",
|
"STR_INSTALL_SUCCESS":"Čestitam!#@Ventoy je uspešno instaliran na ovom uređaju.",
|
||||||
@@ -1835,30 +1863,31 @@
|
|||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Greška u komunikaciji: Servis nije dostupan",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Greška u komunikaciji: Servis nije dostupan",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Status demona ažuriran, pokušajte ponovo kasnije.",
|
"STR_WEB_TOKEN_MISMATCH":"Status demona ažuriran, pokušajte ponovo kasnije.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Servis je zauzet, pokušajte ponovo kasnije.",
|
"STR_WEB_SERVICE_BUSY":"Servis je zauzet, pokušajte ponovo kasnije.",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"Stvori VTSI datoteku",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"Ovaj put ne pisati na uređaj, nego samo stvoriti VTSI datoteku#@Nastavi?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"VTSI datoteka uspešno stvorena!#@Možete koristiti Rufus(3.15+) da je zapišete na uređaj da biste završili instalaciju Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"Greška u stvaranju VTSI datoteke.",
|
||||||
"STR_MENU_PART_RESIZE":"Non-destructive Install",
|
"STR_MENU_PART_RESIZE":"Nedestruktivna instalacija",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy will try non-destructive installation if possible. #@Continue?",
|
"STR_PART_RESIZE_TIP":"Ventoy će pokušati nedestruktivnu instalaciju ako je moguće. #@Nastavi?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Congratulations!#@Ventoy non-destructive installation successfully finished.",
|
"STR_PART_RESIZE_SUCCESS":"Čestitam!#@Ventoy nedestruktivna instalacija je bila uspešna.",
|
||||||
"STR_PART_RESIZE_FAILED":"Non-destructive installation failed, Check log.txt for details.",
|
"STR_PART_RESIZE_FAILED":"Nedestruktivna instalacija je bila neuspešna. Pogledajte log.txt za još detalja.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy non-destructive installation stopped because some conditions cannot be met. Check log.txt for details.",
|
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy nedestruktivna instalacija se zaustavila jer nisu postignuti neki uslovi. Pogledajte log.txt za još detalja.",
|
||||||
"STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
|
"STR_INSTALL_YES_TIP1":"Upozorenje: podaci će biti izgubljeni!",
|
||||||
"STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
|
"STR_INSTALL_YES_TIP2":"Molim Vas, unesite YES u polje ispod da biste potvrdili da zaista želite da uradite novu instalaciju umesto nadogradnje.",
|
||||||
"STR_PART_VENTOY_FS":"File System For Ventoy Partition",
|
"STR_PART_VENTOY_FS":"Datotečni sistem za Ventoy particiju",
|
||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"Datotoečni sistem",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Veličina klastera",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"Podrazumevana sistemska vrednost",
|
||||||
"STR_DONATE":"Donate",
|
"STR_DONATE":"Donirajte",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Ventoy trenutno ne podržava 4K izvorne uređaje.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Serbian Cyrillic (Српски)",
|
"name":"Serbian Cyrillic (Српски)",
|
||||||
"FontFamily":"Courier New",
|
"FontFamily":"Courier New",
|
||||||
"FontSize":16,
|
"FontSize":16,
|
||||||
"Author":"Bojan Maksimović, panickingkernel, Zoran Jankov",
|
"Author":"Bojan Maksimović, panickingkernel, Zoran Jankov, Stefan Šućur, Kosta Stojiljković",
|
||||||
|
|
||||||
"STR_ERROR":"Грешка",
|
"STR_ERROR":"Грешка",
|
||||||
"STR_WARNING":"Упозорење",
|
"STR_WARNING":"Упозорење",
|
||||||
@@ -1871,7 +1900,7 @@
|
|||||||
"STR_STATUS":"Статус - СПРЕМАН",
|
"STR_STATUS":"Статус - СПРЕМАН",
|
||||||
"STR_INSTALL":"Инсталирај",
|
"STR_INSTALL":"Инсталирај",
|
||||||
"STR_UPDATE":"Надогради",
|
"STR_UPDATE":"Надогради",
|
||||||
"STR_UPDATE_TIP":"Надоградња је сигурна, ISO фајлови неће бити промењени.#@Настави?",
|
"STR_UPDATE_TIP":"Надоградња је сигурна, ISO датотеке неће бити промењене.#@Настави?",
|
||||||
"STR_INSTALL_TIP":"Диск ће бити форматиран и сви подаци ће бити изгубљени.#@Настави?",
|
"STR_INSTALL_TIP":"Диск ће бити форматиран и сви подаци ће бити изгубљени.#@Настави?",
|
||||||
"STR_INSTALL_TIP2":"Диск ће бити форматиран и сви подаци ће бити изгубљени.#@Настави? (Двострука провера)",
|
"STR_INSTALL_TIP2":"Диск ће бити форматиран и сви подаци ће бити изгубљени.#@Настави? (Двострука провера)",
|
||||||
"STR_INSTALL_SUCCESS":"Честитам!#@Ventoy је успешно инсталиран на овом уређају.",
|
"STR_INSTALL_SUCCESS":"Честитам!#@Ventoy је успешно инсталиран на овом уређају.",
|
||||||
@@ -1880,42 +1909,43 @@
|
|||||||
"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":"Сигурно уклјучиванје је подржано",
|
"STR_MENU_SECURE_BOOT":"Сигурно укључивање је подржано",
|
||||||
"STR_MENU_PART_CFG":"Конфигурација партиција",
|
"STR_MENU_PART_CFG":"Конфигурација партиција",
|
||||||
"STR_BTN_OK":"У реду",
|
"STR_BTN_OK":"У реду",
|
||||||
"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":"Можете поново убацити USB и покушати опет. Погледајте log.txt за још детаља.",
|
"STR_CLEAR_FAILED":"Догодила се грешка током брисања Ventoy са диска. Можете поново убацити USB и покушати опет. Погледајте log.txt за још детаља.",
|
||||||
"STR_MENU_PART_STYLE":"Стил партиција",
|
"STR_MENU_PART_STYLE":"Стил партиција",
|
||||||
"STR_DISK_2TB_MBR_ERROR":"Молим Вас, изаберите GPT за дискове преко 2ТB",
|
"STR_DISK_2TB_MBR_ERROR":"Молим Вас, изаберите GPT за дискове преко 2ТB",
|
||||||
"STR_SHOW_ALL_DEV":"Прикажи све уређаје",
|
"STR_SHOW_ALL_DEV":"Прикажи све уређаје",
|
||||||
"STR_PART_ALIGN_4KB":"Поравнајте партиције са 4KB",
|
"STR_PART_ALIGN_4KB":"Поравнајте партиције са 4KB",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Комуникациона грешка:",
|
"STR_WEB_COMMUNICATION_ERR":"Комуникациона грешка:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Комуникациона грешка: ненормално даљинско управљање",
|
"STR_WEB_REMOTE_ABNORMAL":"Комуникациона грешка: Ненормално даљинско управљање",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Комуникациона грешка: Захтев је истекао",
|
"STR_WEB_REQUEST_TIMEOUT":"Комуникациона грешка: Захтев је истекао",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Комуникациона грешка: Сервис је недоступан",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Комуникациона грешка: Сервис је недоступан",
|
||||||
"STR_WEB_TOKEN_MISMATCH":"Статус демона ажуриран, покушајте поново касније.",
|
"STR_WEB_TOKEN_MISMATCH":"Статус демона ажуриран, покушајте поново касније.",
|
||||||
"STR_WEB_SERVICE_BUSY":"Севис је заузет, покушајте поново касније.",
|
"STR_WEB_SERVICE_BUSY":"Севис је заузет, покушајте поново касније.",
|
||||||
"STR_MENU_VTSI_CREATE":"Generate VTSI File",
|
"STR_MENU_VTSI_CREATE":"Створи VTSI датотеку",
|
||||||
"STR_VTSI_CREATE_TIP":"This time will not write to the device, but only generate a VTSI file#@Continue?",
|
"STR_VTSI_CREATE_TIP":"Овај пут не писати на уређај, него само створити VTSI датотеку#@Настави?",
|
||||||
"STR_VTSI_CREATE_SUCCESS":"VTSI file created successfully!#@You can use Rufus(3.15+) to write it to the device so as to complete the installation of Ventoy.",
|
"STR_VTSI_CREATE_SUCCESS":"VTSI датотека успешно створена!#@Можете користити Rufus(3.15+) да је запишете на уређај да бисте завршили инсталацију Ventoy.",
|
||||||
"STR_VTSI_CREATE_FAILED":"VTSI file created failed.",
|
"STR_VTSI_CREATE_FAILED":"Грешка у стварању VTSI датотеке.",
|
||||||
"STR_MENU_PART_RESIZE":"Non-destructive Install",
|
"STR_MENU_PART_RESIZE":"Недеструктивна инсталација",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy will try non-destructive installation if possible. #@Continue?",
|
"STR_PART_RESIZE_TIP":"Ventoy ће покушати недеструктивну инсталацију ако је могуће. #@Настави?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Congratulations!#@Ventoy non-destructive installation successfully finished.",
|
"STR_PART_RESIZE_SUCCESS":"Честитам!#@Ventoy недеструктивна инсталација је била успешна.",
|
||||||
"STR_PART_RESIZE_FAILED":"Non-destructive installation failed, Check log.txt for details.",
|
"STR_PART_RESIZE_FAILED":"Недеструктивна инсталација је била неуспешна. Погледајте log.txt за више детаља.",
|
||||||
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy non-destructive installation stopped because some conditions cannot be met. Check log.txt for details.",
|
"STR_PART_RESIZE_UNSUPPORTED":"Ventoy недеструктивна инсталација се зауставила јер нису постигнути неки услови. Погледајте log.txt за још детаља.",
|
||||||
"STR_INSTALL_YES_TIP1":"Warning: Data will be lost!",
|
"STR_INSTALL_YES_TIP1":"Упозорење: подаци ће бити изгубљени!",
|
||||||
"STR_INSTALL_YES_TIP2":"Please enter YES in the text box below to confirm that you indeed want to do a fresh install instead of upgrade.",
|
"STR_INSTALL_YES_TIP2":"Молим Вас, унесите YES у поље испод да бисте потврдили да заиста желите да урадите нову инсталацију уместо надоградње.",
|
||||||
"STR_PART_VENTOY_FS":"File System For Ventoy Partition",
|
"STR_PART_VENTOY_FS":"Датотечни систем за Ventoy партицију",
|
||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"Датотечни систем",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Величина кластера",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"Подразумевана системска вредност",
|
||||||
"STR_DONATE":"Донирајте",
|
"STR_DONATE":"Донирајте",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Ventoy тренутно не подржава 4К изворне уређаје.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1979,7 +2009,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"บริจาค",
|
"STR_DONATE":"บริจาค",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2043,7 +2074,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"donere",
|
"STR_DONATE":"donere",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2107,7 +2139,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cỡ Cluster",
|
"STR_PART_CLUSTER":"Cỡ Cluster",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Theo mặc định hệ thống",
|
"STR_PART_CLUSTER_DEFAULT":"Theo mặc định hệ thống",
|
||||||
"STR_DONATE":"Thưởng tác giả",
|
"STR_DONATE":"Thưởng tác giả",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2171,7 +2204,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"paaukoti",
|
"STR_DONATE":"paaukoti",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2235,7 +2269,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"донира",
|
"STR_DONATE":"донира",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2299,7 +2334,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"לִתְרוֹם",
|
"STR_DONATE":"לִתְרוֹם",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2363,7 +2399,8 @@
|
|||||||
"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.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2427,7 +2464,8 @@
|
|||||||
"STR_PART_CLUSTER":"Ukuran Kelompok",
|
"STR_PART_CLUSTER":"Ukuran Kelompok",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Nilai Standar Sistem",
|
"STR_PART_CLUSTER_DEFAULT":"Nilai Standar Sistem",
|
||||||
"STR_DONATE":"Donasi sukarela",
|
"STR_DONATE":"Donasi sukarela",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Saat ini Ventoy tidak mendukung perangkat 4K yang asli.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2491,7 +2529,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donere",
|
"STR_DONATE":"Donere",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2555,7 +2594,8 @@
|
|||||||
"STR_PART_CLUSTER":"Розмір кластера",
|
"STR_PART_CLUSTER":"Розмір кластера",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Системне значення за умовчанням",
|
"STR_PART_CLUSTER_DEFAULT":"Системне значення за умовчанням",
|
||||||
"STR_DONATE":"Пожертвуйте",
|
"STR_DONATE":"Пожертвуйте",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Наразі Ventoy не підтримує рідні пристрої 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2619,7 +2659,8 @@
|
|||||||
"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.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -2684,7 +2725,8 @@
|
|||||||
"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.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2748,7 +2790,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donirajte",
|
"STR_DONATE":"Donirajte",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2775,7 +2818,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":"Допълнителен дял",
|
||||||
@@ -2792,27 +2835,28 @@
|
|||||||
"STR_PART_ALIGN_4KB":"Подравняване на дяловете по 4КБ",
|
"STR_PART_ALIGN_4KB":"Подравняване на дяловете по 4КБ",
|
||||||
"STR_WEB_COMMUNICATION_ERR":"Грешка при свързване:",
|
"STR_WEB_COMMUNICATION_ERR":"Грешка при свързване:",
|
||||||
"STR_WEB_REMOTE_ABNORMAL":"Грешка при свързване: Отдалечената връзка е недействителна",
|
"STR_WEB_REMOTE_ABNORMAL":"Грешка при свързване: Отдалечената връзка е недействителна",
|
||||||
"STR_WEB_REQUEST_TIMEOUT":"Грешка при свързване: Изтекло време за изчакване на заявката",
|
"STR_WEB_REQUEST_TIMEOUT":"Грешка при свързване: Времето за изчакване на заявката е просрочено",
|
||||||
"STR_WEB_SERVICE_UNAVAILABLE":"Грешка при свързване: Услугата е недостъпна",
|
"STR_WEB_SERVICE_UNAVAILABLE":"Грешка при свързване: Услугата е недостъпна",
|
||||||
"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":"Неразрушително инсталиране",
|
||||||
"STR_PART_RESIZE_TIP":"Ventoy ще направи опит за неразрушително инсталиране, ако е възможно.#@Продължаване?",
|
"STR_PART_RESIZE_TIP":"Ventoy ще направи опит за неразрушително инсталиране, ако е възможно.#@Продължаване?",
|
||||||
"STR_PART_RESIZE_SUCCESS":"Поздравления!#@Неразрушителното инсталиране на Ventoy е успешно.",
|
"STR_PART_RESIZE_SUCCESS":"Поздравления!#@Неразрушителното инсталиране на Ventoy е успешно.",
|
||||||
"STR_PART_RESIZE_FAILED":"Неразрушителното инсталиране на Ventoy е неуспешно. Проверете log.txt за подробности.",
|
"STR_PART_RESIZE_FAILED":"Неразрушителното инсталиране на Ventoy е неуспешно. Проверете 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":"File System For Ventoy Partition",
|
"STR_PART_VENTOY_FS":"Файлова система за дял на Ventoy",
|
||||||
"STR_PART_FS":"File System",
|
"STR_PART_FS":"Файлова система",
|
||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Размер на клъстера",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"По подразбиране от системата",
|
||||||
"STR_DONATE":"Дарете",
|
"STR_DONATE":"Дарете",
|
||||||
|
"STR_4KN_UNSUPPORTED":"За момента Ventoy не поддържа устройства с клъстери, чиито размери са 4КБ.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2876,7 +2920,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Նվիրաբերել",
|
"STR_DONATE":"Նվիրաբերել",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2940,7 +2985,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Lahjoittaa",
|
"STR_DONATE":"Lahjoittaa",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3004,7 +3050,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Doa",
|
"STR_DONATE":"Doa",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3068,7 +3115,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"Donar",
|
"STR_DONATE":"Donar",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -3133,7 +3181,8 @@
|
|||||||
"STR_PART_CLUSTER":"Cluster Size",
|
"STR_PART_CLUSTER":"Cluster Size",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
"STR_PART_CLUSTER_DEFAULT":"System Default Value",
|
||||||
"STR_DONATE":"შემოწირულობა",
|
"STR_DONATE":"შემოწირულობა",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Currently Ventoy does not support 4K native devices.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3197,7 +3246,8 @@
|
|||||||
"STR_PART_CLUSTER":"கொத்து அளவு",
|
"STR_PART_CLUSTER":"கொத்து அளவு",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"கணினி இயல்புநிலை மதிப்பு",
|
"STR_PART_CLUSTER_DEFAULT":"கணினி இயல்புநிலை மதிப்பு",
|
||||||
"STR_DONATE":"தானம் செய்",
|
"STR_DONATE":"தானம் செய்",
|
||||||
|
"STR_4KN_UNSUPPORTED":"தற்போது, வெண்டோய் 4K சொந்த சாதனங்களை ஆதரிக்கவில்லை.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -3261,6 +3311,7 @@
|
|||||||
"STR_PART_CLUSTER":"Памер кластара",
|
"STR_PART_CLUSTER":"Памер кластара",
|
||||||
"STR_PART_CLUSTER_DEFAULT":"Сістэмнае значэнне па змаўчанні",
|
"STR_PART_CLUSTER_DEFAULT":"Сістэмнае значэнне па змаўчанні",
|
||||||
"STR_DONATE":"Ахвяраваць",
|
"STR_DONATE":"Ахвяраваць",
|
||||||
|
"STR_4KN_UNSUPPORTED":"Зараз Ventoy не падтрымлівае ўласныя прылады 4K.",
|
||||||
|
|
||||||
"STRXXX":""
|
"STRXXX":""
|
||||||
}
|
}
|
||||||
|
@@ -137,6 +137,7 @@ typedef struct ventoy_disk
|
|||||||
char disk_model[256]; // Sandisk/Kingston ...
|
char disk_model[256]; // Sandisk/Kingston ...
|
||||||
char human_readable_size[32];
|
char human_readable_size[32];
|
||||||
|
|
||||||
|
int is4kn;
|
||||||
int major;
|
int major;
|
||||||
int minor;
|
int minor;
|
||||||
int type;
|
int type;
|
||||||
|
@@ -260,6 +260,33 @@ static int ventoy_is_possible_blkdev(const char *name)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ventoy_is_disk_4k_native(const char *disk)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
int rc = 0;
|
||||||
|
int logsector = 0;
|
||||||
|
int physector = 0;
|
||||||
|
char diskpath[256] = {0};
|
||||||
|
|
||||||
|
snprintf(diskpath, sizeof(diskpath) - 1, "/dev/%s", disk);
|
||||||
|
|
||||||
|
fd = open(diskpath, O_RDONLY | O_BINARY);
|
||||||
|
if (fd >= 0)
|
||||||
|
{
|
||||||
|
ioctl(fd, BLKSSZGET, &logsector);
|
||||||
|
ioctl(fd, BLKPBSZGET, &physector);
|
||||||
|
|
||||||
|
if (logsector == 4096 && physector == 4096)
|
||||||
|
{
|
||||||
|
rc = 1;
|
||||||
|
}
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
vdebug("is 4k native disk <%s> <%d>\n", disk, rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t ventoy_get_disk_size_in_byte(const char *disk)
|
uint64_t ventoy_get_disk_size_in_byte(const char *disk)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
@@ -591,6 +618,7 @@ int ventoy_get_disk_info(const char *name, ventoy_disk *info)
|
|||||||
scnprintf(info->part2_path, "/dev/%s2", name);
|
scnprintf(info->part2_path, "/dev/%s2", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info->is4kn = ventoy_is_disk_4k_native(name);
|
||||||
info->size_in_byte = ventoy_get_disk_size_in_byte(name);
|
info->size_in_byte = ventoy_get_disk_size_in_byte(name);
|
||||||
|
|
||||||
ventoy_get_disk_devnum(name, &info->major, &info->minor);
|
ventoy_get_disk_devnum(name, &info->major, &info->minor);
|
||||||
|
@@ -58,6 +58,7 @@
|
|||||||
#define VTOY_JSON_NOT_READY_RET "{ \"result\" : \"notready\" }"
|
#define VTOY_JSON_NOT_READY_RET "{ \"result\" : \"notready\" }"
|
||||||
#define VTOY_JSON_NOT_SUPPORT_RET "{ \"result\" : \"notsupport\" }"
|
#define VTOY_JSON_NOT_SUPPORT_RET "{ \"result\" : \"notsupport\" }"
|
||||||
#define VTOY_JSON_MBR_2TB_RET "{ \"result\" : \"mbr2tb\" }"
|
#define VTOY_JSON_MBR_2TB_RET "{ \"result\" : \"mbr2tb\" }"
|
||||||
|
#define VTOY_JSON_4KN_RET "{ \"result\" : \"4kn\" }"
|
||||||
#define VTOY_JSON_INVALID_RSV_RET "{ \"result\" : \"reserve_invalid\" }"
|
#define VTOY_JSON_INVALID_RSV_RET "{ \"result\" : \"reserve_invalid\" }"
|
||||||
#define VTOY_JSON_FILE_NOT_FOUND_RET "{ \"result\" : \"file_not_found\" }"
|
#define VTOY_JSON_FILE_NOT_FOUND_RET "{ \"result\" : \"file_not_found\" }"
|
||||||
|
|
||||||
|
@@ -579,3 +579,68 @@ int ventoy_fill_mbr(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ventoy_fill_mbr_4k(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR)
|
||||||
|
{
|
||||||
|
ventoy_guid Guid;
|
||||||
|
uint32_t DiskSignature;
|
||||||
|
uint32_t DiskSectorCount;
|
||||||
|
uint32_t PartSectorCount;
|
||||||
|
uint32_t PartStartSector;
|
||||||
|
uint32_t ReservedSector;
|
||||||
|
|
||||||
|
VentoyGetLocalBootImg(pMBR);
|
||||||
|
|
||||||
|
ventoy_gen_preudo_uuid(&Guid);
|
||||||
|
|
||||||
|
memcpy(&DiskSignature, &Guid, sizeof(uint32_t));
|
||||||
|
|
||||||
|
vdebug("Disk signature: 0x%08x\n", DiskSignature);
|
||||||
|
|
||||||
|
memcpy(pMBR->BootCode + 0x1B8, &DiskSignature, 4);
|
||||||
|
memcpy(pMBR->BootCode + 0x180, &Guid, 16);
|
||||||
|
|
||||||
|
if (size / 4096 > 0xFFFFFFFF)
|
||||||
|
{
|
||||||
|
DiskSectorCount = 0xFFFFFFFF;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DiskSectorCount = (uint32_t)(size / 4096);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reserve <= 0)
|
||||||
|
{
|
||||||
|
ReservedSector = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReservedSector = (uint32_t)(reserve / 4096);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check aligned with 4KB
|
||||||
|
vdebug("no need to align with 4KB for 4K native disk\n");
|
||||||
|
|
||||||
|
vlog("ReservedSector: %u\n", ReservedSector);
|
||||||
|
|
||||||
|
//Part1
|
||||||
|
PartStartSector = VTOYIMG_PART_START_SECTOR >> 3;
|
||||||
|
PartSectorCount = DiskSectorCount - ReservedSector - VTOYEFI_PART_BYTES / 4096 - PartStartSector;
|
||||||
|
VentoyFillMBRLocation(size, PartStartSector, PartSectorCount, pMBR->PartTbl);
|
||||||
|
|
||||||
|
pMBR->PartTbl[0].Active = 0x80; // bootable
|
||||||
|
pMBR->PartTbl[0].FsFlag = 0x07; // exFAT/NTFS/HPFS
|
||||||
|
|
||||||
|
//Part2
|
||||||
|
PartStartSector += PartSectorCount;
|
||||||
|
PartSectorCount = VTOYEFI_PART_BYTES / 4096;
|
||||||
|
VentoyFillMBRLocation(size, PartStartSector, PartSectorCount, pMBR->PartTbl + 1);
|
||||||
|
|
||||||
|
pMBR->PartTbl[1].Active = 0x00;
|
||||||
|
pMBR->PartTbl[1].FsFlag = 0xEF; // EFI System Partition
|
||||||
|
|
||||||
|
pMBR->Byte55 = 0x55;
|
||||||
|
pMBR->ByteAA = 0xAA;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -51,6 +51,7 @@ const char * ventoy_get_local_version(void);
|
|||||||
int ventoy_fill_gpt(uint64_t size, uint64_t reserve, int align4k, VTOY_GPT_INFO *gpt);
|
int ventoy_fill_gpt(uint64_t size, uint64_t reserve, int align4k, VTOY_GPT_INFO *gpt);
|
||||||
int ventoy_fill_mbr(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR);
|
int ventoy_fill_mbr(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR);
|
||||||
int VentoyGetLocalBootImg(MBR_HEAD *pMBR);
|
int VentoyGetLocalBootImg(MBR_HEAD *pMBR);
|
||||||
|
int ventoy_fill_mbr_4k(uint64_t size, uint64_t reserve, int align4k, MBR_HEAD *pMBR);
|
||||||
|
|
||||||
#endif /* __VENTOY_UTIL_H__ */
|
#endif /* __VENTOY_UTIL_H__ */
|
||||||
|
|
||||||
|
@@ -661,6 +661,12 @@ void on_button_install_clicked(GtkWidget *widget, gpointer data)
|
|||||||
|
|
||||||
cur = g_disk_list + active;
|
cur = g_disk_list + active;
|
||||||
|
|
||||||
|
if (cur->is4kn)
|
||||||
|
{
|
||||||
|
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_4KN_UNSUPPORTED");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
|
if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
|
||||||
{
|
{
|
||||||
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_DISK_2TB_MBR_ERROR");
|
msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_DISK_2TB_MBR_ERROR");
|
||||||
|
@@ -512,6 +512,14 @@ void Ventoy2DiskWindow::on_ButtonInstall_clicked()
|
|||||||
}
|
}
|
||||||
|
|
||||||
cur = g_disk_list + index;
|
cur = g_disk_list + index;
|
||||||
|
|
||||||
|
if (cur->is4kn)
|
||||||
|
{
|
||||||
|
lang_string("STR_4KN_UNSUPPORTED", msg);
|
||||||
|
QMessageBox::critical(NULL, title_err, msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
|
if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
|
||||||
{
|
{
|
||||||
lang_string("STR_DISK_2TB_MBR_ERROR", msg);
|
lang_string("STR_DISK_2TB_MBR_ERROR", msg);
|
||||||
|
@@ -1122,6 +1122,13 @@ static int ventoy_api_install(struct mg_connection *conn, VTOY_JSON *json)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (disk->is4kn)
|
||||||
|
{
|
||||||
|
vlog("disk %s is 4k native, not supported.\n", diskname);
|
||||||
|
ventoy_json_result(conn, VTOY_JSON_4KN_RET);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
scnprintf(path, "/sys/block/%s", diskname);
|
scnprintf(path, "/sys/block/%s", diskname);
|
||||||
if (access(path, F_OK) < 0)
|
if (access(path, F_OK) < 0)
|
||||||
{
|
{
|
||||||
|
@@ -761,6 +761,8 @@
|
|||||||
vtoy_in_progress = true;
|
vtoy_in_progress = true;
|
||||||
progressDisableItem(vtoy_in_progress);
|
progressDisableItem(vtoy_in_progress);
|
||||||
queryProgress(1);
|
queryProgress(1);
|
||||||
|
}else if (data.result === '4kn') {
|
||||||
|
ventoy_display_alert('error', vtoy_cur_language.STR_4KN_UNSUPPORTED);
|
||||||
} else {
|
} else {
|
||||||
ventoy_display_alert('error', vtoy_cur_language.STR_INSTALL_FAILED);
|
ventoy_display_alert('error', vtoy_cur_language.STR_INSTALL_FAILED);
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user