]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/ventoy_chain.sh
Fix the boot issue for Parted Magic (#3304)
[Ventoy.git] / IMG / cpio / ventoy / ventoy_chain.sh
index a6291d5850fd9e7c2ebe335d26384996fb6ce26e..d63a132239ee76e53975d4151b264abc5f974f31 100644 (file)
@@ -52,8 +52,29 @@ ventoy_get_os_type() {
         fi
     fi
 
+    # Parted Magic
+    if [ -d /pmagic ]; then
+        echo 'pmagic'; return
+    fi
+
+    # PrimeOS :
+    if $GREP -q 'PrimeOS' /proc/version; then
+        echo 'primeos'; return
+
+    # Debian :
+    elif $GREP -q '[Dd]ebian' /proc/version; then
+        echo 'debian'; return
+
+    # Ubuntu : do the same process with debian
+    elif $GREP -q '[Uu]buntu' /proc/version; then
+        echo 'debian'; return
+        
+    # Deepin :
+    elif $GREP -q '[Dd]eepin' /proc/version; then
+        echo 'deepin'; return
+
     # rhel5/CentOS5 and all other distributions based on them
-    if $GREP -q 'el5' /proc/version; then
+    elif $GREP -q 'el5' /proc/version; then
         echo 'rhel5'; return
 
     # rhel6/CentOS6 and all other distributions based on them
@@ -77,18 +98,9 @@ ventoy_get_os_type() {
     # Fedora : do the same process with rhel7
     elif $GREP -q '\.fc[0-9][0-9]\.' /proc/version; then
         echo 'rhel7'; return
-        
-    # Debian :
-    elif $GREP -q '[Dd]ebian' /proc/version; then
-        echo 'debian'; return
-        
-    # Ubuntu : do the same process with debian
-    elif $GREP -q '[Uu]buntu' /proc/version; then
-        echo 'debian'; return
-        
-    # Deepin : do the same process with debian
-    elif $GREP -q '[Dd]eepin' /proc/version; then
-        echo 'debian'; return    
+
+    elif $GREP -q 'euleros' /proc/version; then
+        echo 'rhel7'; return
 
     # SUSE
     elif $GREP -q 'SUSE' /proc/version; then
@@ -162,9 +174,9 @@ ventoy_get_os_type() {
         elif $GREP -q 'fuyu' /etc/os-release; then
             echo 'openEuler'; return
         elif $GREP -q 'deepin' /etc/os-release; then
-            echo 'debian'; return
+            echo 'deepin'; return
         elif $GREP -q 'chinauos' /etc/os-release; then
-            echo 'debian'; return
+            echo 'deepin'; return
         fi
     fi
     
@@ -222,12 +234,12 @@ ventoy_get_os_type() {
         echo 'android'; return
     fi 
     
-    if $GREP -q 'adelielinux' /proc/version; then
-        echo 'adelie'; return
+    if $GREP -q 'android.google' /proc/version; then
+        echo 'android'; return
     fi
     
-    if $GREP -q 'pmagic' /proc/version; then
-        echo 'pmagic'; return
+    if $GREP -q 'adelielinux' /proc/version; then
+        echo 'adelie'; return
     fi
     
     if $GREP -q 'CDlinux' /proc/cmdline; then
@@ -338,6 +350,48 @@ ventoy_get_os_type() {
         echo "openEuler"; return
     fi
     
+    
+    #special arch based iso file check
+    if [ -f /init ]; then
+        if $GREP -q 'mount_handler' /init; then
+            if [ -d /hooks ]; then
+                if $BUSYBOX_PATH/ls -1 /hooks/ | $GREP -q '.*iso$'; then
+                    echo "arch"; return
+                fi
+            elif [ -d /hook ]; then
+                if $BUSYBOX_PATH/ls -1 /hook/ | $GREP -q '.*iso$'; then
+                    echo "arch"; return
+                fi
+            fi
+        fi
+    fi
+    
+    
+    #Kylin V10 Server
+    if [ -f /usr/sbin/dhclient ]; then
+        if $BUSYBOX_PATH/strings /usr/sbin/dhclient | $GREP -i -q -m1 openeuler; then
+            echo 'openEuler'; return
+        fi
+    fi
+    
+    if $GREP -q 'chimera' /proc/version; then
+        echo 'chimera'; return
+    fi
+
+    
+    if $GREP -q '4.19.' /proc/version; then
+        if [ -d /lib/dracut/hooks ]; then
+            echo 'openEuler'; return
+        fi
+    fi
+    
+    if [ -f /etc/tinyramfs/config ]; then
+        if $GREP -q 'EWE_ISO' /etc/tinyramfs/config; then
+            echo "ewe"; return
+        fi
+    fi
+    
+    
     echo "default"
 }