mirror of
				https://github.com/ventoy/Ventoy.git
				synced 2025-10-31 14:56:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Porteus Kiosk initialization script.
 | |
| # Author: T.Jokiel <http://porteus-kiosk.org>
 | |
| #
 | |
| # 2021 longpanda  admin@ventoy.net
 | |
| #
 | |
| 
 | |
| 
 | |
| /bin/busybox --install -s
 | |
| mount -nt proc proc /proc
 | |
| grep -q -w debug /proc/cmdline || { echo 0 >/proc/sys/kernel/printk 2>/dev/null; clear; }
 | |
| mount -nt sysfs sysfs /sys
 | |
| mount -nt devtmpfs none /dev
 | |
| mkdir -p /dev/shm; chmod 1777 /dev/shm
 | |
| 
 | |
| grep -q -w debug /proc/cmdline && touch /tmp/lspci || quiet=yes
 | |
| 
 | |
| # Use memory as aufs
 | |
| mount -nt tmpfs -o size=75% tmpfs /memory
 | |
| mkdir -p /memory/xino /memory/changes /memory/images /memory/copy2ram
 | |
| 
 | |
| # Setup aufs
 | |
| mount -nt aufs -o nowarn_perm,xino=/memory/xino/.aufs.xino,br:/memory/changes=rw aufs /union
 | |
| 
 | |
| 
 | |
| #Draw background 
 | |
| if [ -z "$quiet" ]; then
 | |
|     echo "##################################################"
 | |
|     echo "Starting Ventoy Live GUI <https://www.ventoy.net>"
 | |
|     echo "##################################################"
 | |
| else
 | |
|     mkdir -p /lib /opt/000 /opt/001; lspci >/tmp/lspci
 | |
|     mount -o loop /000-kernel.xzm /opt/000
 | |
|     mount -o loop /001-core.xzm /opt/001
 | |
|     [ `uname -m` = x86_64 ] && prefix="-x86-64"
 | |
|     ln -sf /opt/000/lib/firmware /lib/firmware
 | |
|     ln -sf /opt/000/lib/modules /lib/modules
 | |
|     ln -sf /opt/001/lib64/libc.so.6 /lib/libc.so.6
 | |
|     ln -sf /opt/001/lib64/ld-linux"$prefix".so.2 /lib/ld-linux"$prefix".so.2
 | |
|     ln -s /opt/001/bin/kmod /bin/modprobe
 | |
| 
 | |
|     vga=`lspci | grep 0300: | head -n1 | cut -d: -f3-4 | sed s/:/d0000/g`; [ "$vga" ] && driver="$(grep -i $vga /lib/modules/`uname -r`/modules.alias 2>/dev/null | head -n1 | rev | cut -d" " -f1 | rev)"
 | |
|     
 | |
|     # Nvidia quirk:
 | |
|     [ "$driver" ] || { lspci | grep 0300: | head -n1 | cut -d: -f3 | grep -q "10de" && driver=nouveau; }
 | |
|     
 | |
|     # VirtualBox quirk:
 | |
|     [ "$driver" = vboxvideo ] || modprobe $driver 2>/dev/null
 | |
|     test -e /dev/fb0 || { cp /opt/001/sbin/v86d /sbin; modprobe uvesafb mode_option=1024x768-32; }
 | |
|     if test -e /dev/fb0; then
 | |
|         rm -r /lib; ln -sf /opt/001/lib64 /lib; ln -sf /opt/001/usr/lib64 /usr/lib
 | |
|         /opt/001/usr/bin/fbv -a -c -u -i -k -e -r /VTOY/background.png 2>/dev/null &
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| 
 | |
| cp -a /*.xzm /memory/copy2ram/
 | |
| 
 | |
| # Populate aufs with modules:
 | |
| for x in `ls -1 /memory/copy2ram/ | grep \\.xzm$`; do
 | |
|     mkdir -p /memory/images/$x
 | |
|     mount -nt squashfs -o loop /memory/copy2ram/$x /memory/images/$x 2>/dev/null
 | |
|     if [ $? -eq 0 ]; then
 | |
|         mount -no remount,add:1:/memory/images/$x=rr aufs /union
 | |
|     fi
 | |
| done
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| #clean 
 | |
| if [ -n "$quiet" ]; then
 | |
|     while [ "`pidof fbv`" ]; do 
 | |
|         usleep 500000
 | |
|     done
 | |
|     umount /opt/000 /opt/001 2>/dev/null
 | |
|     rm -r /lib
 | |
| fi
 | |
| 
 | |
| 
 | |
| 
 | |
| mkdir -p /union/opt/scripts/
 | |
| echo 123 > /union/opt/scripts/extras
 | |
| 
 | |
| echo "c2::respawn:/sbin/agetty --autologin root 38400 tty2 linux" >> /union/etc/inittab
 | |
| echo "c3::respawn:/sbin/agetty --autologin root 38400 tty3 linux" >> /union/etc/inittab
 | |
| echo "c4::respawn:/sbin/agetty --autologin root 38400 tty4 linux" >> /union/etc/inittab
 | |
| 
 | |
| 
 | |
| sed "s/root:[^:]*:/root::/g" -i /union/etc/shadow
 | |
| rm -f /union/etc/X11/xorg.conf.d/10-xorg.conf
 | |
| rm -f /union/lib64/udev/rules.d/10-kiosk-auto_mount.rules
 | |
| cp -a /VTOY/autostart /union/etc/xdg/openbox/autostart
 | |
| cp -a /VTOY/*.png /union/ventoy/
 | |
| 
 | |
| mkdir -p /union/usr/local/sbin
 | |
| mv /VTOY/ntfs-3g.tar.gz /union/usr/local/sbin/
 | |
| mv /VTOY/busybox /union/usr/local/sbin/
 | |
| 
 | |
| 
 | |
| cp -a /bin/busybox /union/bin; ln -sf /union/lib /lib
 | |
| cp -a /VTOY/wallpaper.png /union/usr/share/wallpapers/ 2>/dev/null
 | |
| 
 | |
| #to suppress error message
 | |
| mkdir -p /mnt/fake/docs
 | |
| echo 11 > /mnt/fake/docs/kiosk.sgn
 | |
| 
 | |
| # swith_root
 | |
| exec /sbin/switch_root /union /sbin/init
 | |
| 
 |