blob: 57054f71d4790e4de2285f08b61d6a897ac0c9e3 [file] [log] [blame]
erofs-utils
===========
erofs-utils includes user-space tools for erofs filesystem images.
Currently only mkfs.erofs is available.
mkfs.erofs
----------
It can create 2 primary kinds of erofs images: (un)compressed.
- For compressed images, it's able to use several compression
algorithms, but lz4(hc) are only supported due to the current
linux kernel implementation.
- For uncompressed images, it can decide whether the last page of
a file should be inlined or not properly [1].
Dependencies
~~~~~~~~~~~~
lz4-1.8.0+ for lz4 enabled [2], lz4-1.9.0+ recommended
How to build for lz4-1.9.0 or above
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To build you can run the following commands in order:
::
$ ./autogen.sh
$ ./configure
$ make
mkfs.erofs binary will be generated under mkfs folder.
How to build for lz4-1.8.0~1.8.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For these old lz4 versions, lz4hc algorithm cannot be supported without
lz4 static libary due to LZ4_compress_HC_destSize unstable api usage,
which means only lz4 algrithm is available if lz4 static library isn't found.
On Fedora, static lz4 can be installed using:
yum install lz4-static.x86_64
However, it's not recommended to use those versions since there was a bug
in these compressors, see [2] as well.
How to generate erofs images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Currently lz4 and lz4hc are available for compression, e.g.
$ mkfs.erofs -zlz4hc foo.erofs.img foo/
Or leave all files uncompressed as a option:
$ mkfs.erofs foo.erofs.img foo/
Obsoleted erofs.mkfs
~~~~~~~~~~~~~~~~~~~~
There is an original erofs.mkfs version developped by Li Guifu,
which was replaced by the new erofs-utils implementation.
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git -b obsoleted_mkfs
It may still be useful since new erofs-utils has not been widely used in
commercial products. However, if that happens, please report bug to us
as well.
Contribution
------------
erofs-utils is a GPLv2+ project as a part of erofs file system,
feel free to send patches or feedback to us.
To:
linux-erofs mailing list <linux-erofs@lists.ozlabs.org>
Li Guifu <bluce.liguifu@huawei.com>
Miao Xie <miaoxie@huawei.com>
Fang Wei <fangwei1@huawei.com>
Cc:
Gao Xiang <gaoxiang25@huawei.com>
Chao Yu <yuchao0@huawei.com>
Comments
--------
[1] According to the erofs on-disk format, the last page of files could
be inlined aggressively with its metadata in order to reduce the I/O
overhead and save the storage space.
[2] There was a bug until lz4-1.8.3, which can crash erofs-utils randomly.
Fortunately bugfix by our colleague Qiuyang Sun was merged in lz4-1.9.0.
For more details, please refer to
https://github.com/lz4/lz4/commit/660d21272e4c8a0f49db5fc1e6853f08713dff82