--- /dev/null
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+#************************************************************************************
+
+. /ventoy/hook/ventoy-hook-lib.sh
+
+if is_ventoy_hook_finished; then
+ exit 0
+fi
+
+vtlog "####### $0 $* ########"
+
+VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
+
+wait_for_usb_disk_ready
+
+vtdiskname=$(get_ventoy_disk_name)
+if [ "$vtdiskname" = "unknown" ]; then
+ vtlog "ventoy disk not found"
+ PATH=$VTPATH_OLD
+ exit 0
+fi
+
+ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
+
+blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1 \2/')
+mknod -m 0666 /dev/ventoy b $blkdev_num
+
+
+PATH=$VTPATH_OLD
+
+set_ventoy_hook_finish
--- /dev/null
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+#************************************************************************************
+
+. $VTOY_PATH/hook/ventoy-os-lib.sh
+
+echo "CDlinux process..." >> $VTLOG
+
+$BUSYBOX_PATH/mknod -m 0660 /ventoy/ram0 b 1 0
+
+$BUSYBOX_PATH/mkdir /vtmnt /ventoy_rdroot
+$BUSYBOX_PATH/mount -t squashfs /ventoy/ram0 /vtmnt
+
+$BUSYBOX_PATH/mount -nt tmpfs -o mode=755 tmpfs /ventoy_rdroot
+
+$BUSYBOX_PATH/cp -a /vtmnt/* /ventoy_rdroot
+$BUSYBOX_PATH/ls -1a /vtmnt/ | $GREP '^\.[^.]' | while read vtLine; do
+ $BUSYBOX_PATH/cp -a /vtmnt/$vtLine /ventoy_rdroot
+done
+
+$BUSYBOX_PATH/umount /vtmnt && $BUSYBOX_PATH/rm -rf /vtmnt
+$BUSYBOX_PATH/cp -a /ventoy /ventoy_rdroot
+
+echo "CDL_DEV=/dev/mapper/ventoy" >> /ventoy_rdroot/etc/default/cdlinux
+
+ventoy_set_rule_dir_prefix /ventoy_rdroot
+ventoy_systemd_udevd_work_around
+ventoy_add_udev_rule "$VTOY_PATH/hook/default/udev_disk_hook.sh %k"
fi
}
+ventoy_mount_squashfs() {
+ mkdir /dev
+ mount -t devtmpfs devtmpfs /dev
+ dd if=$1 of=/dev/ram0 status=none
+ umount /dev && rm -rf /dev
+}
+
# param: file skip magic tmp
ventoy_unpack_initramfs() {
vtfile=$1; vtskip=$2; vtmagic=$3; vttmp=$4
# vtmagic='1F8B'
#fi
+ if [ "${vtmagic:0:4}" = '6873' ]; then
+ ventoy_mount_squashfs $vtfile
+ return
+ 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
echo 'pmagic'; return
fi
+ if $GREP -q 'CDlinux' /proc/cmdline; then
+ echo 'cdlinux'; return
+ fi
+
echo "default"
}
function ventoy_cli_console {
if [ "$grub_platform" = "pc" ]; then
- terminal_output vga_text
+ #terminal_output vga_text
+ terminal_output console
else
if [ "$vtoy_display_mode" != "CLI" ]; then
terminal_output console
vt_linux_specify_initrd_file /initrd.img
elif [ -f (loop)/sysresccd/boot/x86_64/sysresccd.img ]; then
vt_linux_specify_initrd_file /sysresccd/boot/x86_64/sysresccd.img
+ elif [ -f (loop)/CDlinux/initrd ]; then
+ vt_linux_specify_initrd_file /CDlinux/initrd
fi
}
common_unsupport_menuentry
}
+
+
#############################################################
#############################################################
#############################################################
#############################################################
#############################################################
-set VENTOY_VERSION="1.0.14"
+set VENTOY_VERSION="1.0.15"
# Default menu display mode, you can change it as you want.
# 0: List mode