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"
exit 0
fi
+if check_usb_disk_ready "$vtdiskname"; then
+ vtlog "check_usb_disk_ready ok"
+else
+ vtlog "check_usb_disk_ready error"
+ PATH=$VTPATH_OLD
+ exit 0
+fi
+
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2"
# blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep ventoy | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
. $VTOY_PATH/hook/ventoy-os-lib.sh
-$SED "/^ *mdev *-s/a $BUSYBOX_PATH/sh $VTOY_PATH/hook/austrumi/disk_hook.sh" -i /init
+$SED "/find_usb *(/a $BUSYBOX_PATH/sh $VTOY_PATH/hook/austrumi/disk_hook.sh" -i /init
$SED "s/BOOT_TYPE=livecd/BOOT_TYPE=usb/g" -i /init
$SED '1 apmedia=usbhd' -i /init
$SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
$SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init
+
+if [ -f /DISTRO_SPECS ]; then
+ if ! [ -d /dev ]; then
+ $BUSYBOX_PATH/mkdir /dev
+ fi
+fi
if [ -n "$VT_BUS_USB" ]; then
vtlog "$1 is USB device"
+ echo /dev/$1 > /ventoy/list-devices-usb-part
else
vtlog "$1 is NOT USB device (bus $ID_BUS)"
done
}
+check_usb_disk_ready() {
+ if echo $1 | $EGREP -q "nvme|mmc"; then
+ vtpart2=${1}p2
+ else
+ vtpart2=${1}2
+ fi
+
+ [ -e "${vtpart2}" ]
+}
+
is_ventoy_disk() {
if $VTOY_PATH/tool/vtoydump -f $VTOY_PATH/ventoy_os_param -c "$1"; then
$BUSYBOX_PATH/true
echo 'austrumi'; return
fi
+ if [ -f /DISTRO_SPECS ]; then
+ if $GREP -q '[Pp]uppy' /DISTRO_SPECS; then
+ echo 'debian'; return
+ fi
+ fi
+
echo "default"
}
size=1024
fstype=ext4
label=casper-rw
+config=''
print_usage() {
- echo 'Usage: CreatePersistentImg.sh [ -s size ] [ -t fstype ] [ -l LABEL ]'
+ echo 'Usage: CreatePersistentImg.sh [ -s size ] [ -t fstype ] [ -l LABEL ] [ -c CFG ]'
echo ' OPTION: (optional)'
echo ' -s size in MB, default is 1024'
echo ' -t filesystem type, default is ext4 ext2/ext3/ext4/xfs are supported now'
echo ' -l label, default is casper-rw'
+ echo ' -c configfile name inside the persistence file. File content is "/ union"'
echo ''
}
elif [ "$1" = "-l" ]; then
shift
label=$1
+ elif [ "$1" = "-c" ]; then
+ shift
+ config=$1
elif [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
print_usage
exit 0
sync
-losetup -d $freeloop
+if [ -n "$config" ]; then
+ if [ -d ./persist_tmp_mnt ]; then
+ rm -rf ./persist_tmp_mnt
+ fi
+
+ mkdir ./persist_tmp_mnt
+ if mount $freeloop ./persist_tmp_mnt; then
+ echo '/ union' > ./persist_tmp_mnt/$config
+ sync
+ umount ./persist_tmp_mnt
+ fi
+ rm -rf ./persist_tmp_mnt
+fi
+losetup -d $freeloop
*save_env: loadenv
*search: search
*serial: serial
+*setkey: setkey
*sha1sum: hashsum
*sha256sum: hashsum
*sha512sum: hashsum
videotest: font video gfxmenu
+setkey: extcmd
odc: archelp
loopback: extcmd
macho:
*save_env: loadenv
*search: search
*serial: serial
+*setkey: setkey
*setpci: setpci
*sha1sum: hashsum
*sha256sum: hashsum
videotest: font video gfxmenu
+setkey: extcmd
odc: archelp
loopback: extcmd
macho:
*search: search
*sendkey: sendkey
*serial: serial
+*setkey: setkey
*setpci: setpci
*sha1sum: hashsum
*sha256sum: hashsum
videotest: font video gfxmenu
+setkey: extcmd
odc: archelp
loopback: extcmd
macho:
*save_env: loadenv
*search: search
*serial: serial
+*setkey: setkey
*setpci: setpci
*sha1sum: hashsum
*sha256sum: hashsum
videotest: font video gfxmenu
+setkey: extcmd
odc: archelp
loopback: extcmd
macho: