mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 00:11:15 +00:00
1.0.05 release
1. Add backup thread in vtoyjump.exe 2. New iso support MXLinux 19.1 (Legacy + UEFI) KNOPPIX_V8.6-2019-08-08-EN.iso (Legacy) Puppy Linux, bionicpup64-8.0-uefi.iso (Legacy + UEFI) tails-amd64-4.5.iso (Legacy) slax-64bit-9.11.0.iso (Legacy) Kaspersky Rescue Disk 18 (Legacy + UEFI) Parted Magic 2018 Bootable ISO (Legacy + UEFI) veket_20.iso (Legacy) ZeroShell-3.9.3-X86.iso (Legacy) SuperGrub2Disk rescatux-0.73.iso (Legacy + UEFI) Some WinPE iso (Legacy + UEFI)
This commit is contained in:
@@ -97,6 +97,9 @@ ventoy_os_install_dmsetup() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
wait_for_usb_disk_ready
|
||||
|
||||
vtdiskname=$(get_ventoy_disk_name)
|
||||
if [ "$vtdiskname" = "unknown" ]; then
|
||||
vtlog "ventoy disk not found"
|
||||
|
@@ -21,11 +21,36 @@
|
||||
|
||||
DISTRO='default'
|
||||
|
||||
if [ -e /etc/initrd-release ]; then
|
||||
if [ -d /KNOPPIX ]; then
|
||||
DISTRO='knoppix'
|
||||
elif [ -e /etc/initrd-release ]; then
|
||||
if $EGREP -q "ID=.*antix|ID=.*mx" /etc/initrd-release; then
|
||||
DISTRO='antix'
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e /init ]; then
|
||||
if $GREP -q PUPPYSFS /init; then
|
||||
if $GREP -q VEKETSFS /init; then
|
||||
DISTRO='veket'
|
||||
else
|
||||
DISTRO='puppy'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e /etc/os-release ]; then
|
||||
if $GREP -q 'Tails' /etc/os-release; then
|
||||
DISTRO='tails'
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$DISTRO"="default" ]; then
|
||||
if $GREP -q 'slax/' /proc/cmdline; then
|
||||
DISTRO='slax'
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo "##### distribution = $DISTRO ######" >> $VTLOG
|
||||
. $VTOY_PATH/hook/debian/${DISTRO}-hook.sh
|
||||
|
@@ -23,5 +23,9 @@ if [ -d /etc/udev/rules.d ]; then
|
||||
ventoy_systemd_udevd_work_around
|
||||
ventoy_add_udev_rule "$VTOY_PATH/hook/default/udev_disk_hook.sh %k noreplace"
|
||||
else
|
||||
$SED "/mdev *-s/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||
if $GREP -q kaspersky /proc/version; then
|
||||
$SED "/sysresccd_stage1_normal[^(]*$/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||
else
|
||||
$SED "/mdev *-s/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/gentoo/disk_hook.sh" -i /init
|
||||
fi
|
||||
fi
|
||||
|
@@ -29,7 +29,7 @@ SED=$BUSYBOX_PATH/sed
|
||||
SLEEP=$BUSYBOX_PATH/sleep
|
||||
HEAD=$BUSYBOX_PATH/head
|
||||
VTOY_DM_PATH=/dev/mapper/ventoy
|
||||
VTOY_DEBUG_LEVEL=$($BUSYBOX_PATH/hexdump -n 1 -s 430 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param)
|
||||
VTOY_DEBUG_LEVEL=$($BUSYBOX_PATH/hexdump -n 1 -s 450 -e '1/1 "%02x"' $VTOY_PATH/ventoy_os_param)
|
||||
|
||||
if [ "$VTOY_DEBUG_LEVEL" = "01" ]; then
|
||||
if [ -e /dev/console ]; then
|
||||
|
@@ -23,7 +23,7 @@
|
||||
# Step 1 : parse kernel debug parameter #
|
||||
# #
|
||||
####################################################################
|
||||
mkdir /proc; mount -t proc proc /proc
|
||||
[ -d /proc ] || mkdir /proc; mount -t proc proc /proc
|
||||
vtcmdline=$(cat /proc/cmdline)
|
||||
vtkerver=$(cat /proc/version)
|
||||
umount /proc; rm -rf /proc
|
||||
@@ -71,9 +71,9 @@ ventoy_unpack_initramfs() {
|
||||
if [ "${vtx:0:4}" = "${vtmagic:0:4}" ]; then
|
||||
echo "vtx=$vtx" >> $VTLOG
|
||||
if [ $vtskip -eq 0 ]; then
|
||||
${vtx:5} $vtfile | (cpio -idm 2>>$VTLOG; cat > $vttmp)
|
||||
${vtx:5} $vtfile | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
|
||||
else
|
||||
dd if=$vtfile skip=$vtskip iflag=skip_bytes status=none | ${vtx:5} | (cpio -idm 2>>$VTLOG; cat > $vttmp)
|
||||
dd if=$vtfile skip=$vtskip iflag=skip_bytes status=none | ${vtx:5} | (cpio -idmu 2>>$VTLOG; cat > $vttmp)
|
||||
fi
|
||||
break
|
||||
fi
|
||||
@@ -98,36 +98,57 @@ ventoy_unpack_initrd() {
|
||||
# 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
|
||||
# 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
|
||||
|
||||
ventoy_unpack_initramfs $vtfile $vtoffset ${vtmagic:0:4} ${vtfile}_tmp
|
||||
done
|
||||
|
||||
rm -f $vtfile ${vtfile}_tmp
|
||||
done
|
||||
else
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
if need_xzminidec; then
|
||||
echo "use xzminidec" >> $VTLOG
|
||||
cat /initrd001 | xzminidec | cpio -idmu 2>>$VTLOG
|
||||
rm -f /initrd001
|
||||
else
|
||||
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
|
||||
fi
|
||||
|
||||
#break here for debug
|
||||
if [ "$VTOY_BREAK_LEVEL" = "02" ] || [ "$VTOY_BREAK_LEVEL" = "12" ]; then
|
||||
|
@@ -142,6 +142,12 @@ ventoy_get_os_type() {
|
||||
echo 'slackware'; return
|
||||
fi
|
||||
|
||||
if [ -e /init ]; then
|
||||
if $GREP -i -q zeroshell /init; then
|
||||
echo 'zeroshell'; return
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
echo "default"
|
||||
}
|
||||
|
Reference in New Issue
Block a user