Yes, I think mocking is _absolutely_ the right way to go.

I do not think that unit tests should create things on the filesystem (let alone create filesystems!). The user shouldn't have to clean anything up if something goes wrong during unit testing.

We should _also_ have a set of "smoke tests" that we run before any release. We should make a wiki page listing things to check that are hard to check with any sort of automated testing. Copying between volumes would be one of those things.