What filesystem should I choose so that I can use my HDD with both raspbian and windows?
1 Answer
FAT32 (with VFAT) -- "With VFAT" really goes without saying now, of course.
While it may not be, in theory, the best performing filesystem of all time and lacks features of newer/more advanced fs types such as NTFS and ext4, it has a long history of stable support on both platforms, including VFAT extensions that allow for long names with spaces in them, unicode characters, etc. -- which is one of the basic problems confronting people using FAT filesystems and ye olde 8.3 filename format.
It also allows for (depending upon block size), minimally 2 TB of storage. If you need more than that, just use a bigger block size when you format the partition (or spread your stuff across several partitions).
While I'm not a Windows user, the fact that Windows does not natively support ext4 makes that, at a minimum, a hassle -- especially if you end up wanting to plug this drive into some Windows system somewhere where whatever special third party software you need isn't installed.
NTFS probabably has better support under linux than ext4 has under Windows, but it is not without complications. For starters, I believe the currently predominant implementation is FUSE based. There's nothing in particular wrong with this, although it might be considered to impose some restrictions that you may or may not ever have to deal with. It should work out of the box, but in the end I am not so sure you are going to get better performance with it on the linux side than you would with the less restrictive, more flexible FAT32.
Just stating the fact that there are various NTFS implementations for linux and "the currently predominant is FUSE based" I think means we are getting into potentially confusing territory for many users and "confusing territory" is the last place you want to store your data.
Finally, NTFS support on linux has a spotty history in all the various implementations including corruption, absurd processor usage, etc. which may (or may not...) currently be considered a thing of the past -- but since it is proprietary technology belonging to a corporation notorious for leveraging its size to try and establish monopolies wherever possible, there is always the outside chance, since it is currently their primary fs, of it being manipulated to this end in the future. Although technically this could apply to FAT32 as well, it is much, much less likely to happen there -- e.g., MS could suddenly decide to drop support in Windows 12, but this would probably not be a wise choice for them to make as the most significant consequence would be to drive a small percentage of their user base away.
It is also worth observing that (V)FAT is a requirement on the Raspberry Pi regardless of the operating system used, so you are almost guaranteed support for it will be present no matter what you do with your Pi. The requirement is because of how the SoC uses the SD card during boot (I do not know whether this covers FAT32 specifically, and technically the OS doesn't have to be able to read the first partition, but it is still a pretty safe bet).