From dcb3264519c0c00f57ae9138878198c86dd347f6 Mon Sep 17 00:00:00 2001 From: longpanda Date: Thu, 9 Jul 2020 19:26:10 +0800 Subject: [PATCH] prepare for new release --- .../Application/Ventoy/VentoyProtocol.c | 2 +- .../grub-2.04/grub-core/ventoy/ventoy_def.h | 1 + .../grub-core/ventoy/ventoy_windows.c | 4 +- IMG/cpio/ventoy/hook/debian/default-hook.sh | 12 ++++- .../hook/debian/ventoy-inotifyd-hook.sh | 4 +- .../ventoy/hook/gobo/ventoy-inotifyd-hook.sh | 6 ++- .../hook/mageia/ventoy-inotifyd-hook.sh | 7 +-- .../hook/manjaro/ventoy-inotifyd-hook.sh | 5 +- IMG/cpio/ventoy/hook/pmagic/disk-hook.sh | 47 ++++++++++++++++++ IMG/cpio/ventoy/hook/pmagic/udev_disk_hook.sh | 32 ++++++++++++ IMG/cpio/ventoy/hook/pmagic/ventoy-hook.sh | 31 ++++++++++++ .../ventoy/hook/rhel7/ventoy-inotifyd-hook.sh | 6 ++- IMG/cpio/ventoy/ventoy.sh | 4 ++ INSTALL/tool/VentoyWorker.sh | 3 +- Ventoy2Disk/Ventoy2Disk/Res/refresh.ico | Bin 0 -> 4286 bytes 15 files changed, 148 insertions(+), 16 deletions(-) create mode 100644 IMG/cpio/ventoy/hook/pmagic/disk-hook.sh create mode 100644 IMG/cpio/ventoy/hook/pmagic/udev_disk_hook.sh create mode 100644 IMG/cpio/ventoy/hook/pmagic/ventoy-hook.sh create mode 100644 Ventoy2Disk/Ventoy2Disk/Res/refresh.ico diff --git a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c index 8afbd9a1..ed595b9f 100644 --- a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c +++ b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyProtocol.c @@ -167,7 +167,7 @@ STATIC EFI_STATUS EFIAPI ventoy_read_iso_sector MapLba, secRead * 2048, pCurBuf); if (EFI_ERROR(Status)) { - debug("Raw disk read block failed %r", Status); + debug("Raw disk read block failed %r LBA:%lu Count:%u", Status, MapLba, secRead); return Status; } diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h index 169c56e9..27eb7fd7 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h @@ -225,6 +225,7 @@ void ventoy_debug(const char *fmt, ...); #define FLAG_HEADER_COMPRESS_RESERVED 0x00010000 #define FLAG_HEADER_COMPRESS_XPRESS 0x00020000 #define FLAG_HEADER_COMPRESS_LZX 0x00040000 +#define FLAG_HEADER_COMPRESS_LZMS 0x00080000 #define RESHDR_FLAG_FREE 0x01 #define RESHDR_FLAG_METADATA 0x02 diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c index 1100fd38..d756afcb 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_windows.c @@ -811,9 +811,9 @@ static int ventoy_wimdows_locate_wim(const char *disk, wim_patch *patch) return 1; } - if (head->flags & FLAG_HEADER_COMPRESS_XPRESS) + if ((head->flags & FLAG_HEADER_COMPRESS_XPRESS) || (head->flags & FLAG_HEADER_COMPRESS_LZMS)) { - debug("Xpress compress is not supported 0x%x\n", head->flags); + debug("Xpress or LZMS compress is not supported 0x%x\n", head->flags); grub_file_close(file); return 1; } diff --git a/IMG/cpio/ventoy/hook/debian/default-hook.sh b/IMG/cpio/ventoy/hook/debian/default-hook.sh index bd2dd1ea..234c6766 100644 --- a/IMG/cpio/ventoy/hook/debian/default-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/default-hook.sh @@ -17,6 +17,8 @@ # #************************************************************************************ +CD_DETECT="/var/lib/dpkg/info/cdrom-detect.postinst" + if [ -e /init ] && $GREP -q '^mountroot$' /init; then echo "Here before mountroot ..." >> $VTLOG @@ -29,7 +31,15 @@ if [ -e /init ] && $GREP -q '^mountroot$' /init; then $SED "s#^ *LIVEMEDIA=.*#LIVEMEDIA=/dev/mapper/ventoy#" -i /scripts/casper fi fi - +elif [ -e "$CD_DETECT" ]; then + echo "$CD_DETECT exist, now add hook in it..." >> $VTLOG + + $SED "1 a $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/disk_mount_hook.sh" -i "$CD_DETECT" + TITLE_LINE=$($GREP -m1 '^hw-detect.*detect_progress_title' "$CD_DETECT") + if [ $? -eq 0 ]; then + echo "add $TITLE_LINE for hook" >> $VTLOG + $SED "1 a$TITLE_LINE" -i "$CD_DETECT" + fi elif [ -e /init ] && $GREP -q '/start-udev$' /init; then echo "Here use notify ..." >> $VTLOG diff --git a/IMG/cpio/ventoy/hook/debian/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/debian/ventoy-inotifyd-hook.sh index 53916c6a..e1547225 100644 --- a/IMG/cpio/ventoy/hook/debian/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/debian/ventoy-inotifyd-hook.sh @@ -23,13 +23,15 @@ if is_ventoy_hook_finished; then exit 0 fi -vtlog "##### INOTIFYD: $2/$3 is created ..." VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH if is_inotify_ventoy_part $3; then + vtlog "##### INOTIFYD: $2/$3 is created (YES) ..." vtlog "find ventoy partition $3 ..." $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/udev_disk_hook.sh "$3" +else + vtlog "##### INOTIFYD: $2/$3 is created (NO)..." fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/gobo/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/gobo/ventoy-inotifyd-hook.sh index ff52bbb0..76009e86 100644 --- a/IMG/cpio/ventoy/hook/gobo/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/gobo/ventoy-inotifyd-hook.sh @@ -23,11 +23,11 @@ if is_ventoy_hook_finished; then exit 0 fi -vtlog "##### INOTIFYD: $2/$3 is created ..." - VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH if is_inotify_ventoy_part $3; then + vtlog "##### INOTIFYD: $2/$3 is created (YES)..." + vtlog "find ventoy partition $3 ..." $BUSYBOX_PATH/sh $VTOY_PATH/hook/default/udev_disk_hook.sh $3 noreplace @@ -42,6 +42,8 @@ if is_inotify_ventoy_part $3; then # fi set_ventoy_hook_finish +else + vtlog "##### INOTIFYD: $2/$3 is created (NO)..." fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh index bc604ffd..226cbcad 100644 --- a/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/mageia/ventoy-inotifyd-hook.sh @@ -23,12 +23,11 @@ if is_ventoy_hook_finished; then exit 0 fi -vtlog "##### INOTIFYD: $2/$3 is created ..." - VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH if is_inotify_ventoy_part $3; then - + vtlog "##### INOTIFYD: $2/$3 is created (YES) ..." + vtlog "find ventoy partition ..." $BUSYBOX_PATH/sh $VTOY_PATH/hook/default/udev_disk_hook.sh $3 noreplace @@ -64,6 +63,8 @@ if is_inotify_ventoy_part $3; then fi set_ventoy_hook_finish +else + vtlog "##### INOTIFYD: $2/$3 is created (NO) ..." fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/manjaro/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/manjaro/ventoy-inotifyd-hook.sh index 60cff43a..5f2d45cb 100644 --- a/IMG/cpio/ventoy/hook/manjaro/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/manjaro/ventoy-inotifyd-hook.sh @@ -23,11 +23,10 @@ if is_ventoy_hook_finished; then exit 0 fi -vtlog "##### INOTIFYD: $2/$3 is created ..." - VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH if is_inotify_ventoy_part $3; then + vtlog "##### INOTIFYD: $2/$3 is created (YES) ..." vtlog "find ventoy partition $3 ..." $BUSYBOX_PATH/sh $VTOY_PATH/hook/default/udev_disk_hook.sh "$3" @@ -41,6 +40,8 @@ if is_inotify_ventoy_part $3; then mkdir -p /dev/disk/by-label fi $BUSYBOX_PATH/cp -a /dev/$vtDM /dev/disk/by-label/$vtLABEL +else + vtlog "##### INOTIFYD: $2/$3 is created (NO) ..." fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/hook/pmagic/disk-hook.sh b/IMG/cpio/ventoy/hook/pmagic/disk-hook.sh new file mode 100644 index 00000000..3e46fbfd --- /dev/null +++ b/IMG/cpio/ventoy/hook/pmagic/disk-hook.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" + +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 + + +PATH=$VTPATH_OLD + +set_ventoy_hook_finish diff --git a/IMG/cpio/ventoy/hook/pmagic/udev_disk_hook.sh b/IMG/cpio/ventoy/hook/pmagic/udev_disk_hook.sh new file mode 100644 index 00000000..93e0548e --- /dev/null +++ b/IMG/cpio/ventoy/hook/pmagic/udev_disk_hook.sh @@ -0,0 +1,32 @@ +#!/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 || not_ventoy_disk "${1:0:-1}"; then + exit 0 +fi + +ventoy_udev_disk_common_hook $* "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 + +# OK finish +set_ventoy_hook_finish + diff --git a/IMG/cpio/ventoy/hook/pmagic/ventoy-hook.sh b/IMG/cpio/ventoy/hook/pmagic/ventoy-hook.sh new file mode 100644 index 00000000..d4768875 --- /dev/null +++ b/IMG/cpio/ventoy/hook/pmagic/ventoy-hook.sh @@ -0,0 +1,31 @@ +#!/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 + +if $GREP -q 'Searching *for *PMAGIC' /init; then + echo "Find Searching PMAGIC" >> $VTLOG + $SED "/Searching *for *PMAGIC/a\ root=/dev/ventoy" -i /init + $SED "/Searching *for *PMAGIC/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/pmagic/disk-hook.sh" -i /init +else + echo "Use default..." >> $VTLOG + $SED "s#^root=.*cmdline.*#root=/dev/ventoy#g'" -i /init + ventoy_systemd_udevd_work_around + ventoy_add_udev_rule "$VTOY_PATH/hook/pmagic/udev_disk_hook.sh %k" +fi diff --git a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh index a565098b..a1431d07 100644 --- a/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh +++ b/IMG/cpio/ventoy/hook/rhel7/ventoy-inotifyd-hook.sh @@ -23,12 +23,12 @@ if is_ventoy_hook_finished; then exit 0 fi -vtlog "##### INOTIFYD: $2/$3 is created ..." - VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH if is_inotify_ventoy_part $3; then + vtlog "##### INOTIFYD: $2/$3 is created (YES) ..." + vtGenRulFile='/etc/udev/rules.d/99-live-squash.rules' if [ -e $vtGenRulFile ] && $GREP -q dmsquash $vtGenRulFile; then vtScript=$($GREP -m1 'RUN.=' $vtGenRulFile | $AWK -F'RUN.=' '{print $2}' | $SED 's/"\(.*\)".*/\1/') @@ -57,6 +57,8 @@ if is_inotify_ventoy_part $3; then fi set_ventoy_hook_finish +else + vtlog "##### INOTIFYD: $2/$3 is created (NO) ..." fi PATH=$VTPATH_OLD diff --git a/IMG/cpio/ventoy/ventoy.sh b/IMG/cpio/ventoy/ventoy.sh index 640b08a9..af1f2dfe 100644 --- a/IMG/cpio/ventoy/ventoy.sh +++ b/IMG/cpio/ventoy/ventoy.sh @@ -196,6 +196,10 @@ ventoy_get_os_type() { echo 'adelie'; return fi + if $GREP -q 'pmagic' /proc/version; then + echo 'pmagic'; return + fi + echo "default" } diff --git a/INSTALL/tool/VentoyWorker.sh b/INSTALL/tool/VentoyWorker.sh index 2fe07e6a..1f79df3f 100644 --- a/INSTALL/tool/VentoyWorker.sh +++ b/INSTALL/tool/VentoyWorker.sh @@ -6,15 +6,14 @@ print_usage() { echo 'Usage: Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX' echo ' CMD:' echo ' -i install ventoy to sdX (fail if disk already installed with ventoy)' - echo ' -u update ventoy in sdX' echo ' -I force install ventoy to sdX (no matter installed or not)' + echo ' -u update ventoy in sdX' echo '' echo ' OPTION: (optional)' echo ' -r SIZE_MB preserve some space at the bottom of the disk (only for install)' echo ' -s enable secure boot support (default is disabled)' echo ' -g use GPT partition style, default is MBR (only for install)' echo '' - } RESERVE_SIZE_MB=0 diff --git a/Ventoy2Disk/Ventoy2Disk/Res/refresh.ico b/Ventoy2Disk/Ventoy2Disk/Res/refresh.ico new file mode 100644 index 0000000000000000000000000000000000000000..c2bc33885d70bba22c27b61e604c0b3a69e9ff5c GIT binary patch literal 4286 zcmbVQTWFj`6rSRPFM@gU)%HmRTeH<#6_tqM9Ym<$4HfF;K@h4hDxxVUf(VKaf`V_U z-J00uLTqia*-dj#nxwT&Y?|6!&9zC*Ws^-d`ybDD{(mO3v;S_>PB@wQ=W@O?=Q@c} z+xTbuc7@+6TBOu%N~t@UcuJKpVO|=q72V;JKe4snzc%bvH$q$Eo_|*e<}Ez8lW8B* zhfD_p!WeT{!=5a8^CN_>xaawM2NN*jOtVZIOym&eu!cR@i!;|PhjXTgzYj1CFu8cw z`o0*P1rH-f_>KKpdmoSQVyb5Hm>jGK9f}n*-Lpvz5oeE_!CCMCuYxkz>pb4W)XS8` zQ!p8)qN#+AcfLaLGw)O4><4tR`z<=w@-!We-zW08=K@~fnO6pD4YE4exLbs3JND7} z;a_NOv7gq`3zW&MQ^reEdLv1TD0w)-(xxU(4mInEZGB|Mh~_fENs{c`m)YO zD4N(yT?1d!^6CU#tF5P(X<$4`$C{rM8)fqn-o_ua3>H3o&9ZldjwBwSKE89tTNh~0 z%h3GN01b>q>GZ{KsPn>CbZ+P;nz+(T>**yU-sD^xRkc3v$^hQL5IX>0kGV&@z-O(y z@22j-Z$-yoyu3OodN|tjxY(nN{jV&xOKc7~W4-Uv)O?4LVSKices6kA_F8;_u^F2& z;}eKk!G>R#)$gPeU9Z#1+N|(fNDhgg30}CbiyTLrpPC`12Fad9emaS>#nYQ zKdq!@2)qjUoGm--2U#IA8sf3yR0-cV#}91$Ed6VK$mhuI&}GPZN9VA!?{~1(X7i}` z()VHKZT%bn)7ZNAb(bT12sU(9EItZfwOcYZ&2jjeZ9mulO#EqFzxVTRG`=@X{wx`Q zUCpt%xH4)(n=x_{a%8~YjX#rrG(PyD-XVt$P1SOJeaeBsn0lw8eQM>4(IZ_ z-E+3>bqwraT&w;>2)TS>uGPo@UHp0a4ZpslMsV%X^#{4GrSB73NL~*1dr}tqhN>RjB4hc^ZsyT$a#N3 z5AfZ_zYY*$8}Wp<7qIb@-dLr@pL{?`FW-C)z_69K