Virtualbox slow on ExFat formatted hard drive normal on NTFS

0

I am running Ubuntu 14.04 as host and Windows 7 as a guest with VirtualBox. My vdi file for Windows 7 was getting large, so I migrated it to a Samsung 850 EVO internal SSD connected through a USB hub with a SATA-USB3 data cable. Before when the vdi file was on my computer's internal hard drive (Ext4), Windows 7 on Virtualbox was working fast.

I initially formatted the Samsung SSD to ExFAT and Windows 7 guest was painfully slow (minutes to fire up a browser). I struggled for hours playing with all manner of settings in VirtualBox. I noticed when I ran "top" on my Ubunutu host, mount.exfat was a cpu hog and slowing my system down. Occasionally, Windows 7 would work as normal and every time mount.exfat would not be in the list of top cpu users. On a whim, I decided to reformat the Samsung SSD to NTFS and boot the Windows 7 guest from that. Under this setup, Windows 7 performs perfectly normal.

Question:

Why does Windows 7 guest host on VirtualBox perform poorly on an ExFAT external hard drive as compared to an NTFS external hard drive?

Note: I have no idea if this is a hardware issue, linux software issue, VirtualBox software issue, etc.

sbbjpm

Posted 2015-12-08T16:48:01.780

Reputation: 3

Don't forget that ExFAT is a Microsoft format. ExFAT was designed to be an improvement to FAT32.. NTFS is completely different format and is faster than ExFAT. ExFAT is predominately used for USB memory sticks and memory cards... you should be using a better format for a hard disk/SSD... I.e. stick with the NTFS you've been using... – Kinnectus – 2015-12-08T17:12:47.757

@BigChris I will probably be sticking with NTFS, but I also have an OSX operating system that I use. I was hoping to format as ExFAT, so that writing to the drive from an OSX operating system was possible. – sbbjpm – 2015-12-08T17:34:39.473

It's, unfortunately, because people want to be able to use multiple (often competing) OSes that bring these difficulties and only because of some kind people that there are some cross-capabilities (e.g. Linux supporting NTFS through NTFS-3G and FUSE - but no support from Apple)... – Kinnectus – 2015-12-08T17:38:22.643

Answers

0

ExFAT (FAT64) isn't designed for SSD use. It was designed for flash sticks and memory cards, to replace their standard FAT32 filesystem. Due to royalty demands from Microsoft, it never caught on.

NTFS is a highly optimized b-tree filesystem that is up-to-date for SSD use, and should be used in all cases other than small removable drives over ExFAT.

To answer your question, you're likely using the FUSE ExFAT driver, which runs in user space. If you were to compile and use the ExFAT kernel module, you'd likely see better performance, though not better than using the NTFS kernel module (YMMV)

ExFAT kernel module: https://github.com/dorimanx/exfat-nofuse

Hydranix

Posted 2015-12-08T16:48:01.780

Reputation: 822

I can confirm that I am using FUSE ExFat driver. Your answer makes sense. Unfortunately, and its probably silly, but I am not comfortable with my ability to mess around with root access and the kernel module on a work computer (as required from the repository), so I can't test your solution. I will mark your answer as correct, but note if anyone else reads this, that I did not completely test the solution. – sbbjpm – 2015-12-08T20:01:09.237