]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/hook/suse/ventoy-hook.sh
Fix the bug when booting ALT Linux in UEFI mode. (#1645)
[Ventoy.git] / IMG / cpio / ventoy / hook / suse / ventoy-hook.sh
index 19b90687886ee7a926a79083d4c698829abdfa83..da1eb2c66f779de4b59bfe01664e2346972c2aa7 100644 (file)
@@ -26,10 +26,48 @@ if [ -f $VTOY_PATH/autoinstall ]; then
     fi
 fi
 
+if $BUSYBOX_PATH/ls $VTOY_PATH | $GREP -q 'ventoy_dud[0-9]'; then
+    if [ -f /linuxrc.config ]; then
+        vtKerVer=$($BUSYBOX_PATH/uname -r)
+        ventoy_check_insmod /modules/loop.ko
+        ventoy_check_insmod /modules/squashfs.ko
+        
+        ventoy_check_mount /parts/00_lib /modules
+        ventoy_check_insmod /modules/lib/modules/$vtKerVer/initrd/isofs.ko
+        $BUSYBOX_PATH/umount /modules
+    
+        for vtDud in $($BUSYBOX_PATH/ls $VTOY_PATH/ventoy_dud*); do
+            $BUSYBOX_PATH/mkdir -p ${vtDud%.*}_mnt
+            if $BUSYBOX_PATH/mount $vtDud ${vtDud%.*}_mnt > /dev/null 2>&1; then
+                $BUSYBOX_PATH/cp -a ${vtDud%.*}_mnt  ${vtDud%.*}_data
+                $BUSYBOX_PATH/umount ${vtDud%.*}_mnt
+                echo "dud: file://${vtDud%.*}_data" >> /linuxrc.config
+            else
+                echo "mount $vtDud failed" >> $VTLOG
+            fi
+        done
+        
+        $BUSYBOX_PATH/rmmod isofs >> $VTLOG 2>&1
+        $BUSYBOX_PATH/rmmod squashfs >> $VTLOG 2>&1
+        $BUSYBOX_PATH/rmmod loop >> $VTLOG 2>&1
+    fi
+fi
 
 #echo "Exec: /bin/sh $VTOY_PATH/hook/suse/cdrom-hook.sh" >> /info-ventoy
 #echo "install: hd:/?device=/dev/mapper/ventoy" >> /info-ventoy
 #$SED "1 iinfo: file:/info-ventoy" -i /linuxrc.config
 
-ventoy_systemd_udevd_work_around
-ventoy_add_udev_rule "$VTOY_PATH/hook/suse/udev_disk_hook.sh %k"
+if [ -e /etc/initrd.functions ] && $GREP -q 'HPIP' /etc/initrd.functions; then
+    echo "HPIP" >> $VTLOG    
+    $BUSYBOX_PATH/mkdir /dev
+    $BUSYBOX_PATH/mknod -m 660 /dev/console b 5 1
+    $SED "/CD_DEVICES=/a $BUSYBOX_PATH/sh $VTOY_PATH/hook/suse/disk_hook.sh" -i /etc/initrd.functions
+    $SED "/CD_DEVICES=/a CD_DEVICES=\"/dev/ventoy \$CD_DEVICES\"" -i /etc/initrd.functions
+elif [ -f /scripts/udev_setup ]; then
+    echo "udev_setup" >> $VTLOG
+    echo "/ventoy/busybox/sh /ventoy/hook/suse/udev_setup_hook.sh" >> /scripts/udev_setup    
+else
+    echo "SUSE" >> $VTLOG
+    ventoy_systemd_udevd_work_around
+    ventoy_add_udev_rule "$VTOY_PATH/hook/suse/udev_disk_hook.sh %k"
+fi