From f7c78879c749857fcac9181526d6b2524d2000ff Mon Sep 17 00:00:00 2001 From: longpanda Date: Wed, 20 Oct 2021 10:43:36 +0800 Subject: [PATCH] Support Eset SysRescue image file. (#1162) --- .../ventoy/loop/esysrescue/ventoy-disk.sh | 47 +++++++++++++++++++ .../ventoy/loop/esysrescue/ventoy-hook.sh | 26 ++++++++++ INSTALL/grub/grub.cfg | 19 ++++++++ 3 files changed, 92 insertions(+) create mode 100644 IMG/cpio/ventoy/loop/esysrescue/ventoy-disk.sh create mode 100644 IMG/cpio/ventoy/loop/esysrescue/ventoy-hook.sh diff --git a/IMG/cpio/ventoy/loop/esysrescue/ventoy-disk.sh b/IMG/cpio/ventoy/loop/esysrescue/ventoy-disk.sh new file mode 100644 index 00000000..f50c7d48 --- /dev/null +++ b/IMG/cpio/ventoy/loop/esysrescue/ventoy-disk.sh @@ -0,0 +1,47 @@ +#!/ventoy/busybox/sh +#************************************************************************************ +# Copyright (c) 2020, longpanda +# +# 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 . +# +#************************************************************************************ + +. /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 + +ln -s "../../ventoy1" /dev/disk/by-label/ESYSRESCUE + +PATH=$VTPATH_OLD + +set_ventoy_hook_finish diff --git a/IMG/cpio/ventoy/loop/esysrescue/ventoy-hook.sh b/IMG/cpio/ventoy/loop/esysrescue/ventoy-hook.sh new file mode 100644 index 00000000..5420f8cb --- /dev/null +++ b/IMG/cpio/ventoy/loop/esysrescue/ventoy-hook.sh @@ -0,0 +1,26 @@ +#!/ventoy/busybox/sh +#************************************************************************************ +# Copyright (c) 2020, longpanda +# +# 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 . +# +#************************************************************************************ + +. $VTOY_PATH/hook/ventoy-os-lib.sh + +$SED "/maybe_break premount/i\ $BUSYBOX_PATH/sh $VTOY_PATH/loop/esysrescue/ventoy-disk.sh" -i /init + +if [ -f /scripts/casper-bottom/09format_esr_data_partition ]; then + $SED '/mkfs.vfat.*edev.3/icp -a /dev/dm-3 /dev/ventoy3' -i /scripts/casper-bottom/09format_esr_data_partition +fi diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index b77b1255..80b4177a 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -1691,6 +1691,23 @@ function ventoy_img_recalbox { vt_unset_boot_opt } +function ventoy_img_esysrescue { + 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=esysrescue + vt_img_hook_root + + set root=(vtimghd,1) + configfile (vtimghd,1)/boot/grub/grub.cfg + + vt_img_unhook_root + vt_unset_boot_opt +} + function ventoy_img_batocera { 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 @@ -1943,6 +1960,8 @@ function img_common_menuentry { ventoy_img_tails elif [ "$vtImgHd2Label" = "RECALBOX" ]; then ventoy_img_recalbox + elif [ "$vtImgHd1Label" = "ESYSRESCUE" ]; then + ventoy_img_esysrescue elif [ -e (vtimghd,1)/easy.sfs ]; then ventoy_img_easyos elif [ -e (vtimghd,1)/volumio.initrd ]; then