mirror of
https://github.com/ventoy/Ventoy.git
synced 2024-12-25 06:35:59 -05:00
1.0.62 release
This commit is contained in:
parent
0c140cf378
commit
73fabd0c65
@ -29,13 +29,21 @@ for i in 0 1 2 3 4 5 6 7 8 9; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
ventoy_extract_vtloopex ${vtdiskname}2 crux
|
# no need since 3.6.1
|
||||||
|
$BUSYBOX_PATH/modprobe dax > /dev/null 2>&1
|
||||||
|
$BUSYBOX_PATH/modprobe dm-mod > /dev/null 2>&1
|
||||||
|
|
||||||
|
if $GREP -q 'device-mapper' /proc/devices; then
|
||||||
|
vtlog "dm-mod module check success ..."
|
||||||
|
else
|
||||||
|
vtlog "Need to load dm-mod module ..."
|
||||||
|
ventoy_extract_vtloopex ${vtdiskname}2 crux
|
||||||
|
|
||||||
vtKver=$(uname -r)
|
vtKver=$(uname -r)
|
||||||
vtLoopExDir=$VTOY_PATH/vtloopex/crux/vtloopex
|
vtLoopExDir=$VTOY_PATH/vtloopex/crux/vtloopex
|
||||||
|
|
||||||
ventoy_check_install_module_xz $vtLoopExDir/dm-mod/$vtKver/64/dax.ko
|
ventoy_check_install_module_xz $vtLoopExDir/dm-mod/$vtKver/64/dax.ko
|
||||||
ventoy_check_install_module_xz $vtLoopExDir/dm-mod/$vtKver/64/dm-mod.ko
|
ventoy_check_install_module_xz $vtLoopExDir/dm-mod/$vtKver/64/dm-mod.ko
|
||||||
|
fi
|
||||||
|
|
||||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2"
|
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2"
|
||||||
|
@ -2018,7 +2018,7 @@ function img_unsupport_menuentry {
|
|||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
set VENTOY_VERSION="1.0.61"
|
set VENTOY_VERSION="1.0.62"
|
||||||
|
|
||||||
#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
|
||||||
|
Binary file not shown.
@ -39,7 +39,9 @@ VMware ESXi, Citrix XenServer, Xen XCP-ng
|
|||||||
# Tested Image Report
|
# Tested Image Report
|
||||||
[【How to report a successfully tested image file】](https://github.com/ventoy/Ventoy/issues/1195)
|
[【How to report a successfully tested image file】](https://github.com/ventoy/Ventoy/issues/1195)
|
||||||
|
|
||||||
|
# VentoyPlugson
|
||||||
|
A GUI Ventoy plugin configurator. [VentoyPlugson](https://www.ventoy.net/en/plugin_plugson.html)
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
* 100% open source
|
* 100% open source
|
||||||
* Simple to use
|
* Simple to use
|
||||||
@ -61,7 +63,7 @@ VMware ESXi, Citrix XenServer, Xen XCP-ng
|
|||||||
* Not only boot but also complete installation process
|
* Not only boot but also complete installation process
|
||||||
* Menu dynamically switchable between List/TreeView mode
|
* Menu dynamically switchable between List/TreeView mode
|
||||||
* "Ventoy Compatible" concept
|
* "Ventoy Compatible" concept
|
||||||
* Plugin Framework
|
* Plugin Framework and GUI plugin configurator
|
||||||
* Injection files to runtime environment
|
* Injection files to runtime environment
|
||||||
* Boot configuration file dynamically replacement
|
* Boot configuration file dynamically replacement
|
||||||
* Highly customizable theme and menu
|
* Highly customizable theme and menu
|
||||||
|
Binary file not shown.
@ -84,7 +84,7 @@ static int setctty(const char *name)
|
|||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ventoy_init(char **argv_orig)
|
static void ventoy_init(void)
|
||||||
{
|
{
|
||||||
pid_t pid, wpid;
|
pid_t pid, wpid;
|
||||||
int status, error;
|
int status, error;
|
||||||
@ -155,40 +155,12 @@ static void ventoy_init(char **argv_orig)
|
|||||||
|
|
||||||
/* step 7: swich_root */
|
/* step 7: swich_root */
|
||||||
vdebug("[VTOY] step 7: switch root ...\n");
|
vdebug("[VTOY] step 7: switch root ...\n");
|
||||||
error = chdir("/new_root");
|
|
||||||
if (error)
|
|
||||||
{
|
|
||||||
printf("[VTOY] chdir /new_root failed %d\n", error);
|
|
||||||
goto chroot_failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = chroot_kernel("/new_root");
|
|
||||||
if (error)
|
|
||||||
{
|
|
||||||
printf("[VTOY] chroot_kernel /new_root failed %d\n", error);
|
|
||||||
goto chroot_failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = chroot("/new_root");
|
|
||||||
if (error)
|
|
||||||
{
|
|
||||||
printf("[VTOY] chroot /new_root failed %d\n", error);
|
|
||||||
goto chroot_failed;
|
|
||||||
}
|
|
||||||
|
|
||||||
vdebug("[VTOY] step 8: now run /sbin/init ...\n");
|
|
||||||
execv("/sbin/init", __DECONST(char **, argv_orig));
|
|
||||||
|
|
||||||
/* We failed to exec /sbin/init in the chroot, sleep forever */
|
|
||||||
chroot_failed:
|
|
||||||
printf("[VTOY] ################### DEAD ################\n");
|
|
||||||
while(1) {
|
|
||||||
sleep(3);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc __unused, char **argv)
|
int main(int argc __unused, char **argv)
|
||||||
{
|
{
|
||||||
|
pid_t pid, wpid;
|
||||||
|
int status, error;
|
||||||
size_t varsize = sizeof(int);
|
size_t varsize = sizeof(int);
|
||||||
|
|
||||||
/* Dispose of random users. */
|
/* Dispose of random users. */
|
||||||
@ -198,13 +170,40 @@ int main(int argc __unused, char **argv)
|
|||||||
/* Init is not allowed to die, it would make the kernel panic */
|
/* Init is not allowed to die, it would make the kernel panic */
|
||||||
signal(SIGTERM, SIG_IGN);
|
signal(SIGTERM, SIG_IGN);
|
||||||
|
|
||||||
setctty(_PATH_CONSOLE);
|
if ((pid = fork()) == 0) {
|
||||||
|
|
||||||
sysctlbyname("debug.bootverbose", &boot_verbose, &varsize, NULL, 0);
|
setctty(_PATH_CONSOLE);
|
||||||
|
sysctlbyname("debug.bootverbose", &boot_verbose, &varsize, NULL, 0);
|
||||||
|
|
||||||
vdebug("======= Ventoy Init Start ========\n");
|
vdebug("======= Ventoy Init Start ========\n");
|
||||||
|
|
||||||
ventoy_init(argv);
|
ventoy_init();
|
||||||
|
exit(1); /* force single user mode */
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
wpid = waitpid(-1, &status, WUNTRACED);
|
||||||
|
} while (wpid != pid);
|
||||||
|
|
||||||
|
error = chdir("/new_root");
|
||||||
|
if (error)
|
||||||
|
goto chroot_failed;
|
||||||
|
|
||||||
|
error = chroot_kernel("/new_root");
|
||||||
|
if (error)
|
||||||
|
goto chroot_failed;
|
||||||
|
|
||||||
|
error = chroot("/new_root");
|
||||||
|
if (error)
|
||||||
|
goto chroot_failed;
|
||||||
|
|
||||||
|
execv("/sbin/init", __DECONST(char **, argv));
|
||||||
|
|
||||||
|
/* We failed to exec /sbin/init in the chroot, sleep forever */
|
||||||
|
chroot_failed:
|
||||||
|
while(1) {
|
||||||
|
sleep(3);
|
||||||
|
};
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
#define __UTIL_H__
|
#define __UTIL_H__
|
||||||
|
|
||||||
extern int boot_verbose;
|
extern int boot_verbose;
|
||||||
|
//#define vdebug(fmt, ...)
|
||||||
|
//#define verror
|
||||||
#define vdebug(fmt, ...) if (boot_verbose) { printf(fmt, ##__VA_ARGS__); usleep(500000); }
|
#define vdebug(fmt, ...) if (boot_verbose) { printf(fmt, ##__VA_ARGS__); usleep(500000); }
|
||||||
#define verror printf
|
#define verror printf
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user