]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - IMG/cpio/ventoy/init
added Spanish (Latinoamérica) translation (#1865)
[Ventoy.git] / IMG / cpio / ventoy / init
index 61659fc38aab8d2c2b80a8b0a63d5ec325e5414c..b1040bcf74105a36b06883bf0293bbc1a88ade60 100644 (file)
 # Step 1 : parse kernel debug parameter                            #
 #                                                                  #
 ####################################################################
-[ -d /proc ] || mkdir /proc; mount -t proc proc /proc
-vtcmdline=$(cat /proc/cmdline)
-vtkerver=$(cat /proc/version)
-umount /proc; rm -rf /proc
+
+if ! [ -d /proc ]; then
+    mkdir /proc
+    vtrmproc='Y'
+fi
+
+mount -t proc proc /proc
+export vtcmdline=$(cat /proc/cmdline)
+export vtkerver=$(cat /proc/version)
+umount /proc; 
+
+if [ "$vtrmproc" = "Y" ]; then
+    rm -rf /proc
+fi
 
 echo "kenel version=$vtkerver" >>$VTLOG
 echo "kenel cmdline=$vtcmdline" >>$VTLOG
 
 #break here for debug
 if [ "$VTOY_BREAK_LEVEL" = "01" ] || [ "$VTOY_BREAK_LEVEL" = "11" ]; then
-    sleep 5
+    sleep 5    
     echo -e "\n\n\033[32m ################################################# \033[0m"
     echo -e "\033[32m ################ VENTOY DEBUG ################### \033[0m"
     echo -e "\033[32m ################################################# \033[0m \n"
@@ -44,138 +54,11 @@ if [ "$VTOY_BREAK_LEVEL" = "01" ] || [ "$VTOY_BREAK_LEVEL" = "11" ]; then
     exec $BUSYBOX_PATH/sh
 fi
 
-
-####################################################################
-#                                                                  #
-# Step 2 : extract real initramfs to /                             #
-#                                                                  #
-####################################################################
-cd /
-rm -rf /init /linuxrc /dev/  /root
-
-vtSbinFileNum=$(ls -1 /sbin | wc -l)
-if [ $vtSbinFileNum -eq 1 ]; then
-    echo "remove whole sbin directory" >> $VTLOG
-    rm -rf /sbin
+if echo $vtcmdline | grep -q 'rdinit=/vtoy/vtoy'; then
+    echo "handover to init_loop" >>$VTLOG
+    rm -f /xxxx /vtoyxrc
+    exec $BUSYBOX_PATH/sh $VTOY_PATH/init_loop
 else
-    echo "remove only sbin/init file" >> $VTLOG
-    ls -l /sbin >> $VTLOG
-    rm -f /sbin/init
+    echo "handover to init_chain" >>$VTLOG
+    exec $BUSYBOX_PATH/sh $VTOY_PATH/init_chain
 fi
-
-ventoy_is_initrd_ramdisk() {
-    #As I known, PCLinuxOS use ramdisk
-    if echo $vtkerver | grep -i -q 'PCLinuxOS'; then
-        true
-    else
-        false
-    fi
-}
-
-# param: file skip magic tmp
-ventoy_unpack_initramfs() {        
-    vtfile=$1; vtskip=$2; vtmagic=$3; vttmp=$4    
-    echo "=====ventoy_unpack_initramfs: #$*#" >> $VTLOG
-    
-    #special process
-    #if [ "${vtmagic:0:4}" = '5678' ]; then
-    #    echo -en '\x1F\x8B' | dd status=none of=$vtfile bs=1 count=2 conv=notrunc
-    #    vtmagic='1F8B'
-    #fi
-    
-    for vtx in '1F8B zcat' '1F9E zcat' '425A bzcat' '5D00 lzcat' 'FD37 xzcat' '894C lzopcat' '0221 lz4cat' '28B5 zstdcat' '3037 cat'; do
-        if [ "${vtx:0:4}" = "${vtmagic:0:4}" ]; then
-            echo "vtx=$vtx" >> $VTLOG            
-            if [ $vtskip -eq 0 ]; then            
-                if [ "${vtx:5}" = "xzcat" ]; then
-                    rm -f $VTOY_PATH/xzlog
-                    ${vtx:5} $vtfile 2> $VTOY_PATH/xzlog | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
-                    
-                    if grep -q 'corrupted data' $VTOY_PATH/xzlog; then
-                        echo 'xzcat failed, now try xzminidec...' >> $VTLOG        
-                        cat $vtfile | xzminidec | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
-                    fi
-                    
-                else
-                    ${vtx:5} $vtfile | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
-                fi
-            else
-                dd if=$vtfile skip=$vtskip iflag=skip_bytes status=none | ${vtx:5} | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
-            fi
-            break
-        fi
-    done
-}
-
-# param: file magic tmp
-ventoy_unpack_initrd() {        
-    vtfile=$1; vtmagic=$2; vttmp=$3    
-    echo "=====ventoy_unpack_initrd: #$*#" >> $VTLOG
-    
-    for vtx in '1F8B zcat' '1F9E zcat' '425A bzcat' '5D00 lzcat' 'FD37 xzcat' '894C lzopcat' '0221 lz4cat' '28B5 zstdcat' '3037 cat'; do
-        if [ "${vtx:0:4}" = "${vtmagic:0:4}" ]; then
-            echo "vtx=$vtx" >> $VTLOG            
-            ${vtx:5} $vtfile > $vttmp
-            break
-        fi
-    done    
-}
-
-
-# This export is for busybox cpio command
-export EXTRACT_UNSAFE_SYMLINKS=1
-
-for vtfile in $(ls /initrd*); do    
-    #decompress first initrd
-    vtmagic=$(hexdump -n 2 -e '2/1 "%02X"' $vtfile)
-
-    if ventoy_is_initrd_ramdisk; then
-        ventoy_unpack_initrd $vtfile $vtmagic ${vtfile}_tmp
-        mv ${vtfile}_tmp $vtfile
-        break
-    else
-        ventoy_unpack_initramfs $vtfile 0 $vtmagic ${vtfile}_tmp
-    fi
-
-    #only for cpio,cpio,...,initrd sequence, initrd,cpio or initrd,initrd sequence is not supported
-    while [ -e ${vtfile}_tmp ] && [ $(stat -c '%s' ${vtfile}_tmp) -gt 512 ]; do
-        mv ${vtfile}_tmp $vtfile
-        vtdump=$(hexdump -n 512 -e '512/1 "%02X"' $vtfile)
-        vtmagic=$(echo $vtdump | sed 's/^\(00\)*//')
-        let vtoffset="(${#vtdump}-${#vtmagic})/2"
-        
-        if [ -z "$vtmagic" ]; then
-            echo "terminate with all zero data file" >> $VTLOG
-            break
-        fi
-        
-        ventoy_unpack_initramfs $vtfile $vtoffset ${vtmagic:0:4} ${vtfile}_tmp
-    done
-    
-    rm -f $vtfile ${vtfile}_tmp
-done
-
-
-#break here for debug
-if [ "$VTOY_BREAK_LEVEL" = "02" ] || [ "$VTOY_BREAK_LEVEL" = "12" ]; then
-    sleep 5
-    echo -e "\n\n\033[32m ################################################# \033[0m"
-    echo -e "\033[32m ################ VENTOY DEBUG ################### \033[0m"
-    echo -e "\033[32m ################################################# \033[0m \n"   
-    if [ "$VTOY_BREAK_LEVEL" = "12" ]; then 
-        cat $VTOY_PATH/log
-    fi    
-    exec $BUSYBOX_PATH/sh
-fi
-
-
-####################################################################
-#                                                                  #
-# Step 3 : Hand over to ventoy.sh                                  #
-#                                                                  #
-####################################################################
-echo "Now hand over to ventoy.sh" >>$VTLOG
-. $VTOY_PATH/tool/vtoytool_install.sh
-
-export PATH=$VTOY_ORG_PATH
-exec $BUSYBOX_PATH/sh $VTOY_PATH/ventoy.sh