Skip to content

Commit

Permalink
1.0.19 release
Browse files Browse the repository at this point in the history
  • Loading branch information
ventoy committed Aug 14, 2020
1 parent 9962775 commit 58a93cd
Show file tree
Hide file tree
Showing 20 changed files with 296 additions and 36 deletions.
55 changes: 55 additions & 0 deletions GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c
Original file line number Diff line number Diff line change
Expand Up @@ -2829,6 +2829,60 @@ static grub_err_t ventoy_cmd_lib_module_ver(grub_extcmd_context_t ctxt, int argc
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;
Expand Down Expand Up @@ -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 },
Expand Down
40 changes: 40 additions & 0 deletions IMG/cpio/ventoy/hook/crux/disk_hook.sh
Original file line number Diff line number Diff line change
@@ -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"
22 changes: 22 additions & 0 deletions IMG/cpio/ventoy/hook/crux/ventoy-hook.sh
Original file line number Diff line number Diff line change
@@ -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
36 changes: 36 additions & 0 deletions IMG/cpio/ventoy/hook/daphile/disk_hook.sh
Original file line number Diff line number Diff line change
@@ -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"
24 changes: 24 additions & 0 deletions IMG/cpio/ventoy/hook/daphile/ventoy-hook.sh
Original file line number Diff line number Diff line change
@@ -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
47 changes: 47 additions & 0 deletions IMG/cpio/ventoy/hook/phoenixos/disk_hook.sh
Original file line number Diff line number Diff line change
@@ -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


24 changes: 24 additions & 0 deletions IMG/cpio/ventoy/hook/phoenixos/ventoy-hook.sh
Original file line number Diff line number Diff line change
@@ -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
16 changes: 16 additions & 0 deletions IMG/cpio/ventoy/hook/ventoy-hook-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
18 changes: 18 additions & 0 deletions IMG/cpio/ventoy/ventoy_chain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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"
}

Expand Down
Binary file not shown.
Binary file not shown.
Binary file modified INSTALL/EFI/BOOT/grubx64_real.efi
Binary file not shown.
Loading

0 comments on commit 58a93cd

Please sign in to comment.