mirror of https://github.com/ventoy/Ventoy.git
1.0.19 release
This commit is contained in:
parent
9962775296
commit
58a93cdb40
|
@ -2829,6 +2829,60 @@ end:
|
|||
return rc;
|
||||
}
|
||||
|
||||
static grub_err_t ventoy_cmd_get_fs_label(grub_extcmd_context_t ctxt, int argc, char **args)
|
||||
{
|
||||
int rc = 1;
|
||||
char *device_name = NULL;
|
||||
grub_device_t dev = NULL;
|
||||
grub_fs_t fs = NULL;
|
||||
char *label = NULL;
|
||||
|
||||
(void)ctxt;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
debug("ventoy_cmd_get_fs_label, invalid param num %d\n", argc);
|
||||
return 1;
|
||||
}
|
||||
|
||||
device_name = grub_file_get_device_name(args[0]);
|
||||
if (!device_name)
|
||||
{
|
||||
debug("grub_file_get_device_name failed, %s\n", args[0]);
|
||||
goto end;
|
||||
}
|
||||
|
||||
dev = grub_device_open(device_name);
|
||||
if (!dev)
|
||||
{
|
||||
debug("grub_device_open failed, %s\n", device_name);
|
||||
goto end;
|
||||
}
|
||||
|
||||
fs = grub_fs_probe(dev);
|
||||
if (!fs)
|
||||
{
|
||||
debug("grub_fs_probe failed, %s\n", device_name);
|
||||
goto end;
|
||||
}
|
||||
|
||||
fs->fs_label(dev, &label);
|
||||
if (label)
|
||||
{
|
||||
ventoy_set_env(args[1], label);
|
||||
grub_free(label);
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
|
||||
end:
|
||||
|
||||
check_free(device_name, grub_free);
|
||||
check_free(dev, grub_device_close);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
grub_uint64_t ventoy_grub_get_file_size(const char *fmt, ...)
|
||||
{
|
||||
grub_uint64_t size = 0;
|
||||
|
@ -2973,6 +3027,7 @@ static cmd_para ventoy_cmds[] =
|
|||
{ "vt_push_last_entry", ventoy_cmd_push_last_entry, 0, NULL, "", "", NULL },
|
||||
{ "vt_pop_last_entry", ventoy_cmd_pop_last_entry, 0, NULL, "", "", NULL },
|
||||
{ "vt_get_lib_module_ver", ventoy_cmd_lib_module_ver, 0, NULL, "", "", NULL },
|
||||
{ "vt_get_fs_label", ventoy_cmd_get_fs_label, 0, NULL, "", "", NULL },
|
||||
|
||||
{ "vt_find_first_bootable_hd", ventoy_cmd_find_bootable_hdd, 0, NULL, "", "", NULL },
|
||||
{ "vt_dump_menu", ventoy_cmd_dump_menu, 0, NULL, "", "", NULL },
|
||||
|
|
|
@ -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
|
||||
|
||||
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_extract_vtloopex /dev/${vtdiskname#/dev/}2 crux
|
||||
|
||||
vtLoopExDir=$VTOY_PATH/vtloopex/crux/vtloopex
|
||||
$BUSYBOX_PATH/xz -d $vtLoopExDir/dm-mod/$(uname -r)/64/dax.ko.xz
|
||||
$BUSYBOX_PATH/xz -d $vtLoopExDir/dm-mod/$(uname -r)/64/dm-mod.ko.xz
|
||||
$BUSYBOX_PATH/insmod $vtLoopExDir/dm-mod/$(uname -r)/64/dax.ko
|
||||
$BUSYBOX_PATH/insmod $vtLoopExDir/dm-mod/$(uname -r)/64/dm-mod.ko
|
||||
|
||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2"
|
|
@ -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 "/find_and_mount_media.*(/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/crux/disk_hook.sh" -i /init
|
|
@ -0,0 +1,36 @@
|
|||
#!/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
|
||||
|
||||
# Just for KVM test enviroment
|
||||
$BUSYBOX_PATH/modprobe virtio_blk 2>/dev/null
|
||||
$BUSYBOX_PATH/modprobe virtio_pci 2>/dev/null
|
||||
|
||||
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 2
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
|
|
@ -0,0 +1,24 @@
|
|||
#!/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 "/mount_boot /i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||
|
||||
$SED "s#'\.\*/block/mmcblk[^ ]*'#'\.\*/block/dm-[0-9]*'#" -i /init
|
|
@ -0,0 +1,47 @@
|
|||
#!/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
|
||||
|
||||
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
|
||||
|
||||
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" "noreplace"
|
||||
|
||||
blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
|
||||
mknod -m 0666 /dev/ventoy b $blkdev_num
|
||||
|
||||
set_ventoy_hook_finish
|
||||
|
||||
PATH=$VTPATH_OLD
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
#!/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
|
||||
|
||||
$BUSYBOX_PATH/mkdir /dev
|
||||
$SED "/for device in/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/phoenixos/disk_hook.sh" -i /init
|
||||
$SED "s#for device in #for device in /dev/ventoy #" -i /init
|
|
@ -532,3 +532,19 @@ ventoy_swap_device() {
|
|||
mv $VTOY_PATH/swap_tmp_dev $2
|
||||
}
|
||||
|
||||
ventoy_extract_vtloopex() {
|
||||
vtCurPwd=$PWD
|
||||
$BUSYBOX_PATH/mkdir -p $VTOY_PATH/partmnt $VTOY_PATH/vtloopex
|
||||
$BUSYBOX_PATH/mount -o ro -t vfat /dev/${vtdiskname#/dev/}2 $VTOY_PATH/partmnt
|
||||
cd $VTOY_PATH/vtloopex
|
||||
$CAT $VTOY_PATH/partmnt/ventoy/vtloopex.cpio | $BUSYBOX_PATH/cpio -idm
|
||||
$BUSYBOX_PATH/umount $VTOY_PATH/partmnt
|
||||
$BUSYBOX_PATH/rm -rf $VTOY_PATH/partmnt
|
||||
|
||||
if [ -n "$2" ]; then
|
||||
cd $VTOY_PATH/vtloopex/$2/
|
||||
$BUSYBOX_PATH/tar -xJf vtloopex.tar.xz
|
||||
fi
|
||||
|
||||
cd $vtCurPwd
|
||||
}
|
||||
|
|
|
@ -47,6 +47,12 @@ ventoy_get_os_type() {
|
|||
echo "kernel version" >> $VTLOG
|
||||
$CAT /proc/version >> $VTLOG
|
||||
|
||||
if [ -d /twres ]; then
|
||||
if $GREP -q 'Phoenix' /init; then
|
||||
echo 'phoenixos'; return
|
||||
fi
|
||||
fi
|
||||
|
||||
# rhel5/CentOS5 and all other distributions based on them
|
||||
if $GREP -q 'el5' /proc/version; then
|
||||
echo 'rhel5'; return
|
||||
|
@ -93,6 +99,10 @@ ventoy_get_os_type() {
|
|||
|
||||
# gentoo
|
||||
elif $EGREP -q '[Gg]entoo' /proc/version; then
|
||||
if $GREP -q 'daphile' /proc/version; then
|
||||
echo 'daphile'; return
|
||||
fi
|
||||
|
||||
echo 'gentoo'; return
|
||||
|
||||
# TinyCore
|
||||
|
@ -119,10 +129,14 @@ ventoy_get_os_type() {
|
|||
elif $GREP -q 'Alpine' /proc/version; then
|
||||
echo 'alpine'; return
|
||||
|
||||
elif $GREP -i -q 'PhoenixOS' /proc/version; then
|
||||
echo 'phoenixos'; return
|
||||
|
||||
# NixOS
|
||||
elif $GREP -i -q 'NixOS' /proc/version; then
|
||||
echo 'nixos'; return
|
||||
|
||||
|
||||
fi
|
||||
|
||||
if [ -e /lib/debian-installer ]; then
|
||||
|
@ -231,6 +245,10 @@ ventoy_get_os_type() {
|
|||
echo 'hyperbola'; return
|
||||
fi
|
||||
|
||||
if $GREP -q 'CRUX' /proc/version; then
|
||||
echo 'crux'; return
|
||||
fi
|
||||
|
||||
echo "default"
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -157,6 +157,9 @@ function distro_specify_initrd_file {
|
|||
if [ -e (loop)/casper/initrd ]; then
|
||||
vt_linux_specify_initrd_file /casper/initrd
|
||||
fi
|
||||
if [ -e (loop)/casper/initrd.gz ]; then
|
||||
vt_linux_specify_initrd_file /casper/initrd.gz
|
||||
fi
|
||||
if [ -e (loop)/casper/initrd-oem ]; then
|
||||
vt_linux_specify_initrd_file /casper/initrd-oem
|
||||
fi
|
||||
|
@ -221,6 +224,8 @@ function distro_specify_initrd_file_phase2 {
|
|||
vt_linux_specify_initrd_file /initrd
|
||||
elif [ -f (loop)/live/initrd1 ]; then
|
||||
vt_linux_specify_initrd_file /live/initrd1
|
||||
elif vt_strstr $vt_volume_id "Daphile"; then
|
||||
vt_linux_parse_initrd_isolinux (loop)/isolinux/
|
||||
|
||||
fi
|
||||
}
|
||||
|
@ -899,36 +904,6 @@ function ventoy_img_volumio {
|
|||
vt_unset_boot_opt
|
||||
}
|
||||
|
||||
function ventoy_img_fydeos {
|
||||
|
||||
set ventoy_busybox_ver=64
|
||||
|
||||
vt_load_cpio $vtoy_path/ventoy.cpio ${vt_chosen_path} ${vtoy_iso_part} "busybox=$ventoy_busybox_ver"
|
||||
vt_trailer_cpio ${vtoy_iso_part} ${vt_chosen_path} noinit
|
||||
|
||||
# loopback easysfs (vtimghd,1)/easy.sfs
|
||||
# vt_get_lib_module_ver (easysfs) /lib/modules/ vt_module_ver
|
||||
|
||||
# if [ -n "$vt_module_ver" ]; then
|
||||
# for mod in "kernel/drivers/md/dm-mod.ko" "kernel/drivers/dax/dax.ko"; do
|
||||
# vt_img_extra_initrd_append (easysfs)/lib/modules/$vt_module_ver/$mod
|
||||
# done
|
||||
# fi
|
||||
|
||||
ventoy_debug_pause
|
||||
|
||||
#boot image file
|
||||
vt_set_boot_opt rdinit=/vtoy/vtoy
|
||||
vt_img_hook_root
|
||||
|
||||
set root=(vtimghd,12)
|
||||
configfile (vtimghd,12)/efi/boot/grub.cfg
|
||||
#syslinux_configfile (vtimghd,12)/syslinux/syslinux.cfg
|
||||
|
||||
vt_img_unhook_root
|
||||
vt_unset_boot_opt
|
||||
}
|
||||
|
||||
|
||||
function img_common_menuentry {
|
||||
set ventoy_busybox_ver=32
|
||||
|
@ -950,14 +925,13 @@ function img_common_menuentry {
|
|||
|
||||
vt_img_extra_initrd_reset
|
||||
|
||||
#vt_get_fs_label (vtimghd,1) vtImgHd1Label
|
||||
|
||||
if [ -e (vtimghd,1)/easy.sfs ]; then
|
||||
ventoy_img_easyos
|
||||
elif [ -e (vtimghd,1)/volumio.initrd ]; then
|
||||
ventoy_img_volumio
|
||||
elif [ -e (vtimghd,3)/etc/os-release ]; then
|
||||
if vt_file_strstr (vtimghd,3)/etc/os-release FydeOS; then
|
||||
ventoy_img_fydeos
|
||||
fi
|
||||
|
||||
|
||||
else
|
||||
echo -e "\n This IMG file is NOT supported now. \n"
|
||||
|
@ -983,7 +957,7 @@ function img_unsupport_menuentry {
|
|||
#############################################################
|
||||
#############################################################
|
||||
|
||||
set VENTOY_VERSION="1.0.18"
|
||||
set VENTOY_VERSION="1.0.19"
|
||||
|
||||
# Default menu display mode, you can change it as you want.
|
||||
# 0: List mode
|
||||
|
|
|
@ -188,6 +188,8 @@ vbeinfo: videoinfo
|
|||
vbetest: videotest
|
||||
videoinfo: videoinfo
|
||||
videotest: videotest
|
||||
vt_img_extra_initrd_append: linux
|
||||
vt_img_extra_initrd_reset: linux
|
||||
vt_set_boot_opt: linux
|
||||
vt_unset_boot_opt: linux
|
||||
write_byte: memrw
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -177,6 +177,8 @@ true: true
|
|||
usb: usbtest
|
||||
videoinfo: videoinfo
|
||||
videotest: videotest
|
||||
vt_img_extra_initrd_append: linux
|
||||
vt_img_extra_initrd_reset: linux
|
||||
vt_set_boot_opt: linux
|
||||
vt_unset_boot_opt: linux
|
||||
write_byte: memrw
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue