-# some archlinux initramfs doesn't contain device-mapper udev rules file
-ARCH_UDEV_DIR=$(ventoy_get_udev_conf_dir)
-if [ -s "$ARCH_UDEV_DIR/13-dm-disk.rules" ]; then
- echo 'dm-disk rule exist' >> $VTLOG
+if $GREP -q '^"$mount_handler"' /init; then
+ echo 'use mount_handler ...' >> $VTLOG
+
+ vthookfile=/hooks/archiso
+
+ if [ -e /hooks/miso ]; then
+ vthookfile=/hooks/miso
+ $SED "/^\"\$mount_handler\"/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/arch/ventoy-disk.sh \"\$misodevice\"" -i /init
+ elif [ -e /hooks/artix ]; then
+ vthookfile=/hooks/artix
+ $SED "/^\"\$mount_handler\"/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/arch/ventoy-disk.sh \"\$artixdevice\"" -i /init
+ else
+ $SED "/^\"\$mount_handler\"/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/arch/ventoy-disk.sh \"\$archisodevice\"" -i /init
+ fi
+
+ if [ -f $vthookfile ]; then
+ $SED '/while ! poll_device "${dev}"/a\ if /ventoy/busybox/sh /ventoy/hook/arch/ventoy-timeout.sh ${dev}; then break; fi' -i $vthookfile
+ fi
+
+elif $GREP -q '^KEEP_SEARCHING' /init; then
+ echo 'KEEP_SEARCHING found ...' >> $VTLOG
+ $SED "/^KEEP_SEARCHING/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/arch/ovios-disk.sh " -i /init
+
+ $BUSYBOX_PATH/mkdir -p /dev
+ $BUSYBOX_PATH/mkdir -p /sys
+ $BUSYBOX_PATH/mount -t sysfs sys /sys
+