/atc19-mkfs

(outdated) latest code can be get from https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/

Primary LanguageCOtherNOASSERTION

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.

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