Thank you! I haven't noticed that I could allocate some space for an ext4 image, as though the image in fact do not occupy that much physical space.
I would test about this and I think this would work - just a feeling. About qcow - yes, qcow occured to me. When creating an VM, qcow format could be used to provide a virtual disk which dynamically grows. However, I didn't dig into researching about it. Now I think again and changed my mind - I think qcow might work as well - but I would firstly try the ext4 image solution, which sounds simpler. About the projects I've found - I searched with three terms on GitHub - 'sqlite', 'fs' and 'fuse'. It is surprisingly large number of projects come up with the same idea of using SQLite as a backing file system storage. This probably has something to do with how the SQLite developers have put an article in the documentation, about their research that with certain sector size, SQLite perform better than file systems for large number of tiny files - that article should title something like 'SQLite is Faster Than Filesystem'. However, those projects I've found are *all* abandoned and without maintaince. The relatively most mature one of them is written in Rust, with a 700+ lines of pull request about upgrading the Rust library used by the project and updating the API calls to meet the new library version. This is a good pull request to my view, but there is no respond from neither the maintainer nor other users for like several months. Out of maintaince, I guess. As a result, I decide that I would go and try with ext4. I would firstly put some files in and see how much the image grows physically. I guess it won't overgrow - ext4 doesn't store files for extra copies, right? I guess the sparse file mechanism would work fine. About the motivation of why am I looking for such a fuse filesystem - it is for a device that I don't regularly use, where there is dual-boot installed, one Windows and one Debian, and Windows occupies most of the disk space in its NTFS partition, so I need to fuse a virtual filesystem for the poor Debian on that device, with backing storage on the NTFS partition visible for Windows. The awful part is that, I need to run a commercial software on the Windows system of that device, and that commercial software frequently performs full-disk scan 'for the sake of user security'. Due to this, I come up with the idea of only leaving *one* file visible to the Windows system - that disk-scanning software - so that there would be less trouble. In fact, that device is primarily for the use of that commercial software, other I won't install Windows, but simply use a VM when I have to. Besides the fuse filesystem backing storage, I also keep the Windows environment clean - no any other software installed - otherwise, the more files visible to that disk-scanning, the worse it would be. Firstly it would get lagged, and secondly it might try to 'protect the user's security' and try to fight with my files which it feels suspicious. I think a better solution might be setting up a dedicated device for that disk-scanning software. I'm still thinking about this, and I would probably need to further clean up the room for space for an extra device. Or maybe I would try reverse enginnering that commercial software and mock its disk scanning function. But this would probably get done really slowly, and I would need to keep up with the update. If that software guard itself hard enough and secure itself by loading dynamic machine instructions from network from its server, the reverse engineering might become impossible. Anyway, I would try ext4 sparse file and it would probably work, I guess. But eventually I think I would get a new hardware to ease the efforts. Thank you! I haven't thought about the sparse thing and that seems to be able to do the thing I want to. Miriami