EROFS

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
EROFS
Developer(s)Huawei, Alibaba Cloud
Full nameEnhanced Read-Only File System
IntroducedNovember 24, 2019 (2019-11-24) with Linux 5.4
Limits
Max. file size
Max. number of filesDepends on volume size
Max. filename length255 bytes
Features
Dates recordedFile change time (extended only)[1]
Date resolution1 ns
AttributesPOSIX, xattr
File system permissionsPOSIX, ACL
Transparent compressionYes (LZ4)[1]
Other
Supported operating systemsLinux

EROFS (Enhanced Read-Only File System) is a lightweight read-only file system initially developed by Huawei for the Linux kernel.

EROFS aims to provide a solution to save storage space by using transparent compression for scenarios which need high-performance read-only requirements on their devices with limited hardware resources, e.g. smartphones like Android.[2][3] All of Huawei's new products shipped with EMUI 9.0.1 or later used EROFS,[4] and it was promoted as one of the key features of EMUI 9.1.[5]

The file system was formally merged into the mainline kernel with Linux kernel v5.4.[6] All new devices with Android 13 (released in 2022) that will use Google mobile services (GMS package) must use EROFS.[7]

Features[edit]

The file system has two different inode on-disk layouts. One is compact, and the other is extended.[1]

  • Little-endian on-disk design[1]
  • 4KB block size and 32-bit block address, which limits the total possible capacity of a EROFS filesystem to 16 TB.[1]
  • Metadata and data could be mixed by tail-packing inline data technology[1]
  • Support POSIX attributes and permissions, xattr and ACL[1]
  • Fixed-output transparent compression with LZ4 for relative higher compression ratios[1]
  • In-place decompression for higher sequential read [8][9]
  • Big pcluster feature allowing up to 1 MiB big pclusters for better compression ratios since Linux 5.13.[10][11]
  • Direct I/O, Direct Access (DAX) support, chunk-based data de-duplication for uncompressed files since Linux 5.15.[1][12]
  • Multiple device support for multiple layer container images since Linux 5.16.[1]
  • MicroLZMA algorithm support since Linux 5.16.[13]

See also[edit]

References[edit]

  1. ^ a b c d e f g h i j k Gao Xiang. "erofs.html". www.kernel.org. Retrieved 2021-11-02.
  2. ^ Michael Larabel (2018-11-19). "There Is Finally A User-Space Utility To Make EROFS Linux File-Systems". Phoronix. Phoronix. Retrieved 2018-12-13.
  3. ^ Xiang, Gao (2018-05-31). "erofs: introduce erofs file system". Linux kernel (Mailing list). Retrieved 2018-12-13.
  4. ^ Xiang, Gao (2019-07-04). "erofs: promote erofs from staging". Linux kernel (Mailing list). Retrieved 2019-09-03.
  5. ^ "EMUI 9.1, the Intelligent Android OS". HUAWEI Global. Huawei Technologies. Retrieved 2022-01-10.
  6. ^ corbet (2019-11-25). "The 5.4 kernel has been released". LWN.net. Retrieved 2019-12-01.
  7. ^ RYNE HAGER (2022-05-24). "Phones launching with Android 13 will use a new, space-saving file system format". LWN.net. Retrieved 2022-05-26.
  8. ^ "staging: erofs: introduce LZ4 decompression inplace". Retrieved 2020-12-03.
  9. ^ "staging: erofs: integrate decompression inplace". Retrieved 2020-12-03.
  10. ^ Michael Larabel. "EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements". Phoronix. Phoronix. Retrieved 2021-07-11.
  11. ^ "erofs: add big pcluster compression support". Retrieved 2021-07-11.
  12. ^ Michael Larabel. "XFS & EROFS File-Systems Have Big Changes For Linux 5.15". Phoronix. Phoronix. Retrieved 2021-11-02.
  13. ^ Michael Larabel. "EROFS File-System Adding LZMA Compression Support Via New MicroLZMA". Phoronix. Phoronix. Retrieved 2022-01-10.

External links[edit]