About LeanFS
Posted: Sat Mar 20, 2021 10:10 am
TL;DR leanfs is part of a dead project that never actually used it, doesn't have a working mkfs tool, and the reference implementation is non-portable, bloated, heavy on dependencies and doesn't even compile.
Okay, not having a driver not a big thing for me, if I can generate images I can reverse-engineer the format in no time. So next step, in lack of a working driver example, I've searched for a tool to create and dump leanfs images.
1. I've found mkfs.c in the aforementioned unrelated leanfs folder, but while it compiles without problems and is dependency-free, actually isn't a tool at all, just a quick-n-dirty toy to handle one image with a hardcoded file name, size and parameters.
2. okay, I've seen worse, I could work with that, but being over 10 years old, it's for "The LEAN File System Driver version 0.1", something very very old and outdated.
3. then I've tried leanfsgui, which is in C++. That's a big no-go for library as well as for a command line tool, but there are even bigger problems with it.
4. it is a non-portable horror, requiring TONS of Windows-related dependencies (mingw, CodeBlock build environment, boost, wxWidgets, gdmd (whatever that is) etc.). There's nothing wrong with providing IDE project files as long as there's a working Makefile too, but the one shipped doesn't work (if you can find it, because it's hidden in a sub-directory of a sub-directory). The way how 0.1's mkfs.c and the FreeDOS FAT createfs.c was written is the way to do it, not like this.
5. if this isn't enough, that leanfsgui is abandoned too, hasn't been updated for more than 9 years, and throws several pages of warnings and errors with the latest compilers.
So my question is, if you're recommending this file system, do you have a simple, small, portable image creator for it? Because I can't even find one. (Proprietary and closed-source, or windows-only out of question.) I'd be happy with the 0.6 version of the mkfs.c too, even though it isn't a tool just a toy (as it compiles, dependency-free, written in portable C and simple. Simple is good.)
Any working driver example would be nice too (fuse, grub-module, linux kernel module, dokan driver what ever).
Cheers,
bzt
Then maybe you can help me.BenLunt wrote:Anyway, if you are writing for a hard drive, I would actually recommend the LEAN file system. I had/have the honor of working with the original author and have added and implemented a lot of its current format. I believe he (we) are ready to release version 0.7 soon.
And some disadvantages too, like no support for this file system of any kind, which is quite a big roadblock. I mean, I've searched the web all over and over again, and come up with nothing useful. I couldn't find any leanfs driver that's actually been used (to be precise, even FreeDOS-32 can't use leanfs formatted partitions, only FAT supported. The separate leanfs directory outside of "src" is NOT being used at all.) Then I've learned that FreeDOS-32 actually has nothing to do with FreeDOS, it is a separate project stealing the name and it was actually abandoned (last update in 2011 about 10 years ago). Obviously this also means no drivers nor tools for leanfs under FreeDOS (I mean, in the original FreeDOS).BenLunt wrote:The LeanFS has a lot of advantages: Large files, long filenames, extents, forks, etc.
Okay, not having a driver not a big thing for me, if I can generate images I can reverse-engineer the format in no time. So next step, in lack of a working driver example, I've searched for a tool to create and dump leanfs images.
1. I've found mkfs.c in the aforementioned unrelated leanfs folder, but while it compiles without problems and is dependency-free, actually isn't a tool at all, just a quick-n-dirty toy to handle one image with a hardcoded file name, size and parameters.
2. okay, I've seen worse, I could work with that, but being over 10 years old, it's for "The LEAN File System Driver version 0.1", something very very old and outdated.
3. then I've tried leanfsgui, which is in C++. That's a big no-go for library as well as for a command line tool, but there are even bigger problems with it.
4. it is a non-portable horror, requiring TONS of Windows-related dependencies (mingw, CodeBlock build environment, boost, wxWidgets, gdmd (whatever that is) etc.). There's nothing wrong with providing IDE project files as long as there's a working Makefile too, but the one shipped doesn't work (if you can find it, because it's hidden in a sub-directory of a sub-directory). The way how 0.1's mkfs.c and the FreeDOS FAT createfs.c was written is the way to do it, not like this.
5. if this isn't enough, that leanfsgui is abandoned too, hasn't been updated for more than 9 years, and throws several pages of warnings and errors with the latest compilers.
So my question is, if you're recommending this file system, do you have a simple, small, portable image creator for it? Because I can't even find one. (Proprietary and closed-source, or windows-only out of question.) I'd be happy with the 0.6 version of the mkfs.c too, even though it isn't a tool just a toy (as it compiles, dependency-free, written in portable C and simple. Simple is good.)
Any working driver example would be nice too (fuse, grub-module, linux kernel module, dokan driver what ever).
Cheers,
bzt