USB 3.0 Seagate Drive Issues w/ Linux
udisks2 (thunar) does not play nice w/ Seagate Drives. If you seem to be having problems w/ hangs, check your journal journalctl -f. There are two issues:
  • blacklist uas and use usb-storage - it’s a bit slower but that should fix weird I/O stuff
  • udisks2 tries to do housekeeping even when it shouldn’t (eg, it doesn’t care if SMART is enabled or not). You need to patch out housekeeping 

SOLUTION


Blacklisting UAS

/etc/modprobe.d/30-ignore_uas.conf
# Seagate USB 3.0 Drive - Ignoring UAS
# https://en.opensuse.org/SDB:USB_3.0_Hard_Drive_troubleshooting
# https://bbs.archlinux.org/viewtopic.php?id=212477
# https://bbs.archlinux.org/viewtopic.php?id=211523
# https://bbs.archlinux.org/viewtopic.php?id=183190
options usb-storage quirks=0bc2:ab28:u

# Alternatively, disable UAS completely...
# blacklist uas


Compile a custom udisks2 that doesn’t housekeep:

git clone https://github.com/storaged-project/udisks

Remove Housekeeping Entirely
diff --git a/src/udiskslinuxprovider.c b/src/udiskslinuxprovider.c
index 434325b..fd73c0b 100644
--- a/src/udiskslinuxprovider.c
+++ b/src/udiskslinuxprovider.c
@@ -659,12 +659,9 @@ udisks_linux_provider_start (UDisksProvider *_provider)
   g_list_free_full (udisks_devices, g_object_unref);
   udisks_info ("Initialization complete");
 
-  /* schedule housekeeping for every 10 minutes */
-  provider->housekeeping_timeout = g_timeout_add_seconds (10*60,
-                                                          on_housekeeping_timeout,
-                                                          provider);
-  /* ... and also do an initial run */
-  on_housekeeping_timeout (provider);
+  // DISABLE HOUSEKEEPING
+  udisks_notice ("Housekeeping deactivated in this version - lhl");
+  provider->housekeeping_timeout = 0;
 
   provider->coldplug = FALSE;
 
@@ -1008,6 +1005,8 @@ handle_block_uevent_for_drive (UDisksLinuxProvider *provider,
                   g_hash_table_insert (provider->sysfs_path_to_drive, g_strdup (sysfs_path), object);
 
                   /* schedule initial housekeeping for the drive unless coldplugging */
+
+                  /* lhl - we're just gonna skip this bs