nerd2 / gexto Goto Github PK
View Code? Open in Web Editor NEWEXT2/EXT3/EXT4 Filesystem library for Golang
License: Apache License 2.0
EXT2/EXT3/EXT4 Filesystem library for Golang
License: Apache License 2.0
I think the implemented extent traversal logic is incorrect.
This is not documented anywhere but ext4_extent_idx
structs after the ext4_extent_header
are sorted by the ei_block
.
The current logic picks the ext4_extent_idx
which satisfies ext4_extent_idx.ei_block < file_block_no
but that will always choose the first ext4_extent_idx
struct. This will lead to incorrect results for larger files.
The linux kernel implementation does a binary search: look at ext4_ext_binsearch_idx
.
Hey!
Great project! It is a really interesting implementation of ext2/3/4. I was planning on integrating your project into something I am working on. It would be great if you could a license so I could use it.
Usually the MIT or Apache 2.0 are good enough.
You should be using sb.s_desc_size
if sb.s_rev_level == 1
and 32
if if
sb.s_rev_level == 0` over here because in ext4 the block group descriptor could be larger.
i don't want to use it in production data, but only for newly created vm images. But do you have some expensive tests for all functions to guarantee data safety?
I'm using https://github.com/gokrazy/gokrazy to create bootable application images. It needs to add an (ext4) partition for user data to the image. Can I create that ext filesystem and write it to the image? Any hint would be appreciated.
Hi,
Thanks for this great library!
How easy/hard would it be to start supporting 256 inode size instead of only 128?
That'd be awesome to have
Cheers!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.