Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
d02f184a
Commit
d02f184a
authored
Sep 26, 2020
by
longpanda
Browse files
add support for linux vdisk(vhd/vdi/raw)
parent
3c649b28
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
35 additions
and
12 deletions
+35
-12
LiveCD/VTOY/ventoy/ventoy.sh
LiveCD/VTOY/ventoy/ventoy.sh
+2
-2
VtoyTool/vtoydm.c
VtoyTool/vtoydm.c
+10
-1
VtoyTool/vtoydump.c
VtoyTool/vtoydump.c
+23
-9
VtoyTool/vtoytool/00/vtoytool_32
VtoyTool/vtoytool/00/vtoytool_32
+0
-0
VtoyTool/vtoytool/00/vtoytool_64
VtoyTool/vtoytool/00/vtoytool_64
+0
-0
VtoyTool/vtoytool/01/vtoytool_64
VtoyTool/vtoytool/01/vtoytool_64
+0
-0
No files found.
LiveCD/VTOY/ventoy/ventoy.sh
View file @
d02f184a
...
...
@@ -20,7 +20,7 @@ get_disk_size() {
enum_disk
()
{
id
=
1
rm
-f
/device.list
ls
/sys/block/ |
grep
'd[a-z]'
|
while
read
dev
;
do
ls
/sys/block/ |
e
grep
'd[a-z]
|nvme|mmc
'
|
while
read
dev
;
do
if
!
[
-b
/dev/
$dev
]
;
then
continue
fi
...
...
@@ -145,7 +145,7 @@ ventoy_configuration() {
elif
[
"
$Answer
"
=
"1"
]
;
then
while
true
;
do
read
-p
"Please input the preserve space in MB: "
Answer
if
echo
$Answer
|
grep
-q
"^[
1
-9][0-9]*$"
;
then
if
echo
$Answer
|
grep
-q
"^[
0
-9][0-9]*$"
;
then
echo
$Answer
>
/preserve.txt
break
fi
...
...
VtoyTool/vtoydm.c
View file @
d02f184a
...
...
@@ -507,9 +507,18 @@ static int vtoydm_print_linear_table(const char *img_map_file, const char *diskn
(sector_start << 2), disk_sector_num,
diskname, (unsigned long long)chunk[i].disk_start_sector);
#else
printf
(
"%u %u linear %s1 %llu
\n
"
,
if
(
strstr
(
diskname
,
"nvme"
)
||
strstr
(
diskname
,
"mmc"
))
{
printf
(
"%u %u linear %sp1 %llu
\n
"
,
(
sector_start
<<
2
),
disk_sector_num
,
diskname
,
(
unsigned
long
long
)
chunk
[
i
].
disk_start_sector
-
2048
);
}
else
{
printf
(
"%u %u linear %s1 %llu
\n
"
,
(
sector_start
<<
2
),
disk_sector_num
,
diskname
,
(
unsigned
long
long
)
chunk
[
i
].
disk_start_sector
-
2048
);
}
#endif
}
...
...
VtoyTool/vtoydump.c
View file @
d02f184a
...
...
@@ -120,7 +120,9 @@ typedef struct ventoy_os_param
uint64_t
vtoy_reserved
[
4
];
// Internal use by ventoy
uint8_t
reserved
[
31
];
uint8_t
vtoy_disk_signature
[
4
];
uint8_t
reserved
[
27
];
}
ventoy_os_param
;
#pragma pack()
...
...
@@ -218,6 +220,11 @@ static void vtoy_dump_os_param(ventoy_os_param *param)
printf
(
"param->vtoy_disk_guid = %02x %02x %02x %02x
\n
"
,
param
->
vtoy_disk_guid
[
0
],
param
->
vtoy_disk_guid
[
1
],
param
->
vtoy_disk_guid
[
2
],
param
->
vtoy_disk_guid
[
3
]);
printf
(
"param->vtoy_disk_signature = %02x %02x %02x %02x
\n
"
,
param
->
vtoy_disk_signature
[
0
],
param
->
vtoy_disk_signature
[
1
],
param
->
vtoy_disk_signature
[
2
],
param
->
vtoy_disk_signature
[
3
]);
printf
(
"param->vtoy_disk_size = %llu
\n
"
,
(
unsigned
long
long
)
param
->
vtoy_disk_size
);
printf
(
"param->vtoy_disk_part_id = %u
\n
"
,
param
->
vtoy_disk_part_id
);
printf
(
"param->vtoy_disk_part_type = %u
\n
"
,
param
->
vtoy_disk_part_type
);
...
...
@@ -231,7 +238,7 @@ static void vtoy_dump_os_param(ventoy_os_param *param)
printf
(
"
\n
"
);
}
static
int
vtoy_get_disk_guid
(
const
char
*
diskname
,
uint8_t
*
vtguid
)
static
int
vtoy_get_disk_guid
(
const
char
*
diskname
,
uint8_t
*
vtguid
,
uint8_t
*
vtsig
)
{
int
i
=
0
;
int
fd
=
0
;
...
...
@@ -244,6 +251,9 @@ static int vtoy_get_disk_guid(const char *diskname, uint8_t *vtguid)
{
lseek
(
fd
,
0x180
,
SEEK_SET
);
read
(
fd
,
vtguid
,
16
);
lseek
(
fd
,
0x1b8
,
SEEK_SET
);
read
(
fd
,
vtsig
,
4
);
close
(
fd
);
debug
(
"GUID for %s: <"
,
devdisk
);
...
...
@@ -380,13 +390,14 @@ static int vtoy_find_disk_by_size(unsigned long long size, char *diskname)
return
rc
;
}
static
int
vtoy_find_disk_by_guid
(
uint8_t
*
guid
,
char
*
diskname
)
static
int
vtoy_find_disk_by_guid
(
ventoy_os_param
*
param
,
char
*
diskname
)
{
int
rc
=
0
;
int
count
=
0
;
DIR
*
dir
=
NULL
;
struct
dirent
*
p
=
NULL
;
uint8_t
vtguid
[
16
];
uint8_t
vtsig
[
16
];
dir
=
opendir
(
"/sys/block"
);
if
(
!
dir
)
...
...
@@ -403,8 +414,9 @@ static int vtoy_find_disk_by_guid(uint8_t *guid, char *diskname)
}
memset
(
vtguid
,
0
,
sizeof
(
vtguid
));
rc
=
vtoy_get_disk_guid
(
p
->
d_name
,
vtguid
);
if
(
rc
==
0
&&
memcmp
(
vtguid
,
guid
,
16
)
==
0
)
rc
=
vtoy_get_disk_guid
(
p
->
d_name
,
vtguid
,
vtsig
);
if
(
rc
==
0
&&
memcmp
(
vtguid
,
param
->
vtoy_disk_guid
,
16
)
==
0
&&
memcmp
(
vtsig
,
param
->
vtoy_disk_signature
,
4
)
==
0
)
{
sprintf
(
diskname
,
"%s"
,
p
->
d_name
);
count
++
;
...
...
@@ -430,11 +442,11 @@ static int vtoy_print_os_param(ventoy_os_param *param, char *diskname)
cnt
=
vtoy_find_disk_by_size
(
param
->
vtoy_disk_size
,
diskname
);
if
(
cnt
>
1
)
{
cnt
=
vtoy_find_disk_by_guid
(
param
->
vtoy_disk_guid
,
diskname
);
cnt
=
vtoy_find_disk_by_guid
(
param
,
diskname
);
}
else
if
(
cnt
==
0
)
{
cnt
=
vtoy_find_disk_by_guid
(
param
->
vtoy_disk_guid
,
diskname
);
cnt
=
vtoy_find_disk_by_guid
(
param
,
diskname
);
debug
(
"find 0 disk by size, try with guid cnt=%d...
\n
"
,
cnt
);
}
...
...
@@ -462,17 +474,19 @@ static int vtoy_check_device(ventoy_os_param *param, const char *device)
{
unsigned
long
long
size
;
uint8_t
vtguid
[
16
]
=
{
0
};
uint8_t
vtsig
[
4
]
=
{
0
};
debug
(
"vtoy_check_device for <%s>
\n
"
,
device
);
size
=
vtoy_get_disk_size_in_byte
(
device
);
vtoy_get_disk_guid
(
device
,
vtguid
);
vtoy_get_disk_guid
(
device
,
vtguid
,
vtsig
);
debug
(
"param->vtoy_disk_size=%llu size=%llu
\n
"
,
(
unsigned
long
long
)
param
->
vtoy_disk_size
,
(
unsigned
long
long
)
size
);
if
((
param
->
vtoy_disk_size
==
size
||
param
->
vtoy_disk_size
==
size
+
512
)
&&
memcmp
(
vtguid
,
param
->
vtoy_disk_guid
,
16
)
==
0
)
memcmp
(
vtguid
,
param
->
vtoy_disk_guid
,
16
)
==
0
&&
memcmp
(
vtsig
,
param
->
vtoy_disk_signature
,
4
)
==
0
)
{
debug
(
"<%s> is right ventoy disk
\n
"
,
device
);
return
0
;
...
...
VtoyTool/vtoytool/00/vtoytool_32
View file @
d02f184a
No preview for this file type
VtoyTool/vtoytool/00/vtoytool_64
View file @
d02f184a
No preview for this file type
VtoyTool/vtoytool/01/vtoytool_64
View file @
d02f184a
No preview for this file type
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment