*Edit: I have figured out how to use BTRFS and enable what it calls “transparent file compression”, and I’m going to use that on most of my old storage devices. The only problem I’m having is that I want to use F2FS on my oldest storage device, as BTRFS takes up too much space on the device and I was told by multiple users that F2FS also supports transparent file compression, but I can’t get files to compress and I’m not getting any error messages to try and fix it. Based on what the documentation says, I’m supposed to do something like this:
sudo mkfs.f2fs -f -O extra_attr,inode_checksum,sb_checksum,compression /dev/mmcblk0p1
sudo mount -o compress_algorithm=zstd,compress_extension=* /dev/mmcblk0p1 '/home/j/mountpoint/128mb'
chattr -R +c '/home/j/mountpoint/128mb'
The device will mount like this but files aren’t compressing when added, nor are they compressed if using the last command after they’ve been moved.*
I’m rewriting the old portion for clarification:
In Windows, there’s a file/folder option called “Compress contents to save disk space”. What it does is it compresses the files, as the name suggests, but leaves them accessible as though they aren’t. This doesn’t really have much of a benefit on newer storage devices but on older storage devices, in addition to saving space, it allows files to potentially read faster.
As I have some old storage devices that I want to run games from, I think this will be a great option to have if I could find something similar for Linux. I tried looking online myself but search engines are terrible and I couldn’t find anything though them. So, I decided to post about this here, to see if anyone knows of anything I could try.


It’s not clear here if you mean block compression, file compression, or stream compression.
I’m not sure what the differences are between them but what I’m looking for, BTRFS calls “transparent file compression”. I want the files to be compressed when added to the device but still fully accessible as if they aren’t. As I stated in my post, BTRFS supports this and I was able to set it up. I was told by multiple users that F2FS also supports this but if it does, it’s not working for me.
BTRFS and ZFS both use block compression, ZFS by default. It’s meant to increase both storage efficiency and access speed and has nearly zero impact on performance. The files aren’t compressed from the filesystem point of view, which would satisfy your requirement not to need any other tools.
I’m confused about your statement that you don’t want to save space with compression, but you indicated that you want to “make the most of your storage”. Are you looking for long-term archiving?
I don’t remember exactly what I said but I did rewrite my post a little bit ago, it probably wont change your question though. Basically, what I meant was that I wanted to be able to run the most games from each device. Not as in hold the most games at a time, but more so hold a bigger game than it previously could while also being able to potentially load all games faster just in general. It just so happens that compression is capable of both in the right context, and in a way, it would also prolong the longevity of the devices as well, even if that’s not my main intention.
I know that BTRFS can do this as it’s specified here and that works for me. But I was also told that F2FS could do this as well and I was linked to here. BTRFS is fine for most of my devices but there’s one device in particular that doesn’t have much space left when it’s formatted for BTRFS and therefor I’d like to get the compression in F2FS working if possible. Although, if I did get the compression in F2FS working correctly (assuming I wasn’t lied to), that’s probably what I’m going to end up using for most of my devices since most of them are flash storage devices.