I have a possible solution, but it is a HUGE workaround (disable all avast shields before connecting the drive, then keep all shields disabled until after you are done using the drive and have ejected it…see detailed instructions at end).
My external USB drives can’t be ejected even with current version 6.0.1000, as of March 2011.
First, I don’t connect the drive until hours after my computer has been started and I’ve logged on (so the 8-minute root kit scan shouldn’t be a factor).
Second, all other precautions have been accounted for:
recycle bin disabled for drive,
indexing disabled,
drive optimized for quick removal.
Today, I’ve found the only solution to ejected a drive SAFELY (even when I disable all Avast shields and ensure that no processes are currently accessing the drive, unplugging it causes Windows Vista to dump all physical memory and shutdown/reboot/restart…this is really annoying…before I could unplug USB drives that WERE NOT safely removed, but the worst that would happen is that Seagate would warn me that a drive was corrupted (not true, verified by a full chckdsk scan).
Here’s MY workaround for ensuring that a drive can be ejected:
Before even connecting the USB drive do the following:
----freeagentGOnextSERVICE—stop the service, using TaskMgr’s Services tab (if it even exists)
----disable *all avast shields (I just choose “1 hour” since my drives are only connected for 5 minutes)
----avast! antivirus— stop the service, using TaskMgr’s Services tab (not the avastGUI service, it doesn’t really matter)
Connect the USB drive
When you are ready to eject the USB drive:
----run processexplorer, search / “Find” all processes that start with “F:” or whatever your drive letter is
----Close / kill the 4 metadata processes
-----then SAFELY REMOVE three times in a row (first 2 times, I get “drive in use / still in use” warning, but the 3rd time I got the all clear.
RESTART avast!antivirus service (using taskmgr, Services tab)
Enable / restart all avast shields again.
Does anyone think there is an easier workaround?
It would be nice to only have to, for example, disable the BEHAVIOR SHIELD before connecting the USB drive (even if computer has already been on for hours), in order to be able to safely remove the drive later, instead of having to completed stop ALL avast shields AND stopping the avast service in TaskMgr.
No, I only have Seagate hard drives.
I was wondering if Seagate was locking the drive, but I exhausted all options trying to investigate that.
Then when I completely disabled Avast before connecting the drive, things seemed to work as normal. Previously, I’ve also had success (one time) in removing a drive after stopping all Avast shields, so that is what got me looking at Avast as the culprit (also, I started getting blue screens of death when I just UNsafely unplugged external drives after verifying that no related processes or services were running–except for Avast, and Windows said “check your anti-virus software” among other things as it counted down the reboot.
Extract and run it. When running, press Ctrl + F to open the Find Handle or DLL…
Type the drive letter and a colon : in and it should show what is keeping it open.
So for a drive labeled F, you would enter F:
I have had mixed results from this method, sometimes nothing, others there is something…either way, it could help.
On my system, I’ve found that going the “safely remove device” route is much faster for a USB flash drive than “eject” … I suspect it may have something to do with delayed-write caching.
Yeah, Process Explorer seems to be essential to remove an external drive.
I get the $metadata processes constantly. Which is another reason why I suspected AVAST as what was locking my hard drives, because when I disable the AVAST shields, the $metadata processes DON’T come back after I cancel them.
If you don’t disable AVAST shields (and even “stop” the AVAST service), the $metadata processes will continuously come back about 30 seconds after you stop them with Process Explorer.
And once I stop AVAST, and those $metadata processes stop, THAT is when I can get my hard drives safely removed. Which is why I don’t think this is a Seagate problem but an Avast problem.
I know tons of people have had this problem before, so like I said, I’ll keep testing it and see what routine gets things done, with the least about of interruption.
(I would try disabling the root kit scan outright, but other people have already tested that and said it doesn’t work.)
~~And yes I am doing the “safely remove” thing. I close windows explorer (where you can right-click and “eject”) just in case that is what is locking my drives (it never is, but I want to tie off all possibilities).
Update: so I still can’t consistently get my external Seagate FreeAgent Go drive to SAFELY remove from Vista. I think it’s due to a confluence of issues.
The best solution that I’ve come up with is to UNSAFELY unplug the drive without problems (so far). Before, whenever I unplugged the drive (even with no processes running), I would get the blue screen of death (BSOD).
Now, this is what I do:
plug in the drive.
when done, go to Task Manager, click on Services, and “stop” both the Avast! service and the FreeAgentGoService.
Go to Process Explorer, search for the drive letter, and end all processes attached to the drive (the four $RmMetadata processes). Instead of INSTANTLY coming back, these processes will take awhile to return if both the Avast and the FreeAgentGo services have been stopped.
Repeat the Process Explorer search & stop the processes a few times to ensure that no processes are attached. At the same time, try SAFELY removing the drive a few times (but it won’t work).
When no processes are running that are attached to the drive, just unplug it. If you hadn’t stopped the Avast! service, you’d get the BSOD.