diff -rupN spacefm-e6f291858067e73db44fb57c90e4efb97b088ac8-orig/src/vfs/vfs-volume-nohal.c spacefm-e6f291858067e73db44fb57c90e4efb97b088ac8/src/vfs/vfs-volume-nohal.c
--- spacefm-e6f291858067e73db44fb57c90e4efb97b088ac8-orig/src/vfs/vfs-volume-nohal.c	2022-10-05 09:45:21.461976820 +0000
+++ spacefm-e6f291858067e73db44fb57c90e4efb97b088ac8/src/vfs/vfs-volume-nohal.c	2022-10-05 09:45:52.117981054 +0000
@@ -3684,7 +3684,12 @@ char* vfs_volume_device_mount_cmd( VFSVo
     if ( !command )
     {
         // discovery
-        if ( s1 = g_find_program_in_path( "udevil" ) )
+        if ( g_file_test( "/usr/local/lib/spacefm/mount", G_FILE_TEST_IS_EXECUTABLE ) )
+        {
+            s1 = NULL;
+            command = g_strdup_printf( "/usr/local/lib/spacefm/mount %s", vol->device_file );
+        }
+        else if ( s1 = g_find_program_in_path( "udevil" ) )
         {
             // udevil
             if ( options && options[0] != '\0' )
@@ -3789,7 +3794,12 @@ char* vfs_volume_device_unmount_cmd( VFS
         pointq = bash_quote( vol->device_type ==
                                 DEVICE_TYPE_BLOCK || !vol->is_mounted ?
                                     vol->device_file : vol->mount_point );
-        if ( s1 = g_find_program_in_path( "udevil" ) )
+        if ( g_file_test( "/usr/local/lib/spacefm/umount", G_FILE_TEST_IS_EXECUTABLE ) )
+        {
+            s1 = NULL;
+            command = g_strdup_printf( "/usr/local/lib/spacefm/umount %s", pointq );
+        }
+        else if ( s1 = g_find_program_in_path( "udevil" ) )
         {
             // udevil
             command = g_strdup_printf( "%s umount %s", s1, pointq );
