fi
}
+create_persistent_device_mapper() {
+ vtlog "create_persistent_device_mapper $*"
+
+ VT_DM_BIN=$(ventoy_find_bin_path dmsetup)
+ if [ -z "$VT_DM_BIN" ]; then
+ vtlog "no dmsetup avaliable, lastly try inbox dmsetup"
+ VT_DM_BIN=$VTOY_PATH/tool/dmsetup
+ fi
+
+ vtlog "dmsetup avaliable in system $VT_DM_BIN"
+
+ if ventoy_check_dm_module "$1"; then
+ vtlog "device-mapper module check success"
+ else
+ vterr "Error: no dm module avaliable"
+ fi
+
+ $VTOY_PATH/tool/vtoydm -p -f $VTOY_PATH/ventoy_persistent_map -d $1 > $VTOY_PATH/persistent_dm_table
+ $VT_DM_BIN create vtoy_persistent $VTOY_PATH/persistent_dm_table >>$VTLOG 2>&1
+}
+
+
+
wait_for_ventoy_dm_disk_label() {
DM=$($BUSYBOX_PATH/readlink $VTOY_DM_PATH)
vtlog "wait_for_ventoy_dm_disk_label $DM ..."
fi
}
+# create link for device-mapper
+ventoy_create_persistent_link() {
+ blkdev_num=$($VTOY_PATH/tool/dmsetup ls | grep vtoy_persistent | sed 's/.*(\([0-9][0-9]*\),.*\([0-9][0-9]*\).*/\1:\2/')
+ vtDM=$(ventoy_find_dm_id ${blkdev_num})
+
+ if ! [ -d /dev/disk/by-label ]; then
+ mkdir -p /dev/disk/by-label
+ fi
+
+ VTLABEL=$($BUSYBOX_PATH/blkid /dev/$vtDM | $SED 's/.*LABEL="\([^"]*\)".*/\1/')
+ if [ -z "$VTLABEL" ]; then
+ VTLABEL=casper-rw
+ fi
+
+ vtlog "Persistent Label: ##${VTLABEL}##"
+
+ if ! [ -e /dev/disk/by-label/$VTLABEL ]; then
+ vtOldDir=$PWD
+ cd /dev/disk/by-label
+ ln -s ../../$vtDM $VTLABEL
+ cd $vtOldDir
+ fi
+}
+
ventoy_udev_disk_common_hook() {
VTDISK="${1:0:-1}"
else
ventoy_copy_device_mapper "/dev/$1"
fi
+
+ if [ -f $VTOY_PATH/ventoy_persistent_map ]; then
+ create_persistent_device_mapper "/dev/$VTDISK"
+ ventoy_create_persistent_link
+ fi
+}
+
+
+is_inotify_ventoy_part() {
+ if echo $1 | grep -q "2$"; then
+ if ! [ -e /sys/block/$1 ]; then
+ if [ -e /sys/class/block/$1 ]; then
+ if [ -e /dev/${1:0:-1} ]; then
+ $VTOY_PATH/tool/vtoydump -f $VTOY_PATH/ventoy_os_param -c ${1:0:-1}
+ return
+ fi
+ fi
+ fi
+ fi
+
+ [ "1" = "0" ]
}
+ventoy_find_dm_id() {
+ for vt in $($BUSYBOX_PATH/ls /sys/block/); do
+ if [ "${vt:0:3}" = "dm-" ]; then
+ vtMajorMinor=$($CAT /sys/block/$vt/dev)
+ if [ "$vtMajorMinor" = "$1" ]; then
+ echo ${vt}
+ return
+ fi
+ fi
+ done
+ echo 'xx'
+}
+
+ventoy_swap_device() {
+ mv $1 $VTOY_PATH/swap_tmp_dev
+ mv $2 $1
+ mv $VTOY_PATH/swap_tmp_dev $2
+}