X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/05a1b863a66bf72b26e5d87570c4e0e61b9736cd..8ef9732931bb298c8d5ffd66efcc4d79ad2cdbe2:/IMG/cpio/ventoy/hook/ventoy-os-lib.sh diff --git a/IMG/cpio/ventoy/hook/ventoy-os-lib.sh b/IMG/cpio/ventoy/hook/ventoy-os-lib.sh index 0be5a0a..693a96b 100644 --- a/IMG/cpio/ventoy/hook/ventoy-os-lib.sh +++ b/IMG/cpio/ventoy/hook/ventoy-os-lib.sh @@ -80,14 +80,19 @@ ventoy_add_udev_rule() { # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=869719 # ventoy_systemd_udevd_work_around() { - VTSYSTEMUDEV="$VT_RULE_DIR_PREFIX/lib/systemd/system/systemd-udevd.service" - if [ -e $VTSYSTEMUDEV ]; then - if $GREP -q 'SystemCallArchitectures.*native' $VTSYSTEMUDEV; then - $SED "s/.*\(SystemCallArchitectures.*native\)/#\1/g" -i $VTSYSTEMUDEV + for vtdir in 'lib' 'usr/lib'; do + + VTSYSTEMUDEV="$VT_RULE_DIR_PREFIX/$vtdir/systemd/system/systemd-udevd.service" + if [ -e $VTSYSTEMUDEV ]; then + if $GREP -q 'SystemCallArchitectures.*native' $VTSYSTEMUDEV; then + $SED "s/.*\(SystemCallArchitectures.*native\)/#\1/g" -i $VTSYSTEMUDEV + break + fi fi - fi + done } + ventoy_print_yum_repo() { echo "[$1]" echo "name=$1" @@ -96,3 +101,68 @@ ventoy_print_yum_repo() { echo "gpgcheck=0" echo "priority=0" } + +ventoy_set_inotify_script() { + echo $VTOY_PATH/hook/$1 > $VTOY_PATH/inotifyd-hook-script.txt +} + +ventoy_set_loop_inotify_script() { + echo $VTOY_PATH/loop/$1 > $VTOY_PATH/inotifyd-loop-script.txt +} + +ventoy_check_insmod() { + if [ -e $1 ]; then + $BUSYBOX_PATH/insmod $1 + fi +} + +ventoy_check_mount() { + if [ -e $1 ]; then + $BUSYBOX_PATH/mount $1 $2 + fi +} + +ventoy_has_exfat_ko() { + vtExfat='' + vtKerVer=$($BUSYBOX_PATH/uname -r) + if [ -d /lib/modules/$vtKerVer/kernel/fs/exfat ]; then + vtExfat=$(ls /lib/modules/$vtKerVer/kernel/fs/exfat/) + fi + [ -n "$vtExfat" ] +} + +ventoy_is_exfat_part() { + $VTOY_PATH/tool/vtoydump -s /ventoy/ventoy_os_param | $GREP -q exfat +} + +ventoy_iso_scan_path() { + if [ -f /sbin/iso-scan ]; then + echo -n '/sbin/iso-scan' + elif [ -f /bin/iso-scan ]; then + echo -n '/bin/iso-scan' + else + echo -n '' + fi +} + +ventoy_has_iso_scan() { + vtScanPath=$(ventoy_iso_scan_path) + [ -n "$vtScanPath" ] +} + +ventoy_rw_iso_scan() { + vtScanPath=$(ventoy_iso_scan_path) + if [ -n "$vtScanPath" ]; then + if $GREP -q 'mount.* ro .*isoscan' $vtScanPath; then + $SED -i 's/\(mount.*-o.*\) ro /\1 rw /' $vtScanPath + fi + fi +} + +ventoy_iso_scan_check() { + if ventoy_is_exfat_part; then + if ventoy_has_exfat_ko; then + ventoy_has_iso_scan + fi + fi +} \ No newline at end of file