-
-####################################################################
-# #
-# Step 2 : extract real initramfs to / #
-# #
-####################################################################
-cd /
-rm -rf /init /linuxrc /sbin /dev/ /root
-
-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
-
- 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
- ${vtx:5} $vtfile | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
- 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
-
-# special process
-need_xzminidec() {
- testmagic=$(hexdump -n 2 -e '2/1 "%02X"' /initrd001)
- if [ "FD37" = "${testmagic:0:4}" ]; then
- if echo $vtkerver | grep -q 'kaspersky'; then
- true
- elif echo $vtkerver | grep -q 'kiosk.*Gentoo'; then
- true
- else
- false
- fi
- else
- false
- fi
-}
-
-if need_xzminidec; then
- echo "use xzminidec" >> $VTLOG
- cat /initrd001 | xzminidec | cpio -idmu 2>>$VTLOG
- rm -f /initrd001