EROFS

Last updated
EROFS
Developer(s) Huawei originally, Alibaba Cloud, Bytedance, Coolpad, Google, OPPO, Red Hat, Shanghai Jiao Tong University, VIVO, Uniontech, South China University of Technology
Full nameEnhanced Read-Only File System
IntroducedNovember 24, 2019 (2019-11-24) with Linux 5.4
Limits
Max volume size1 EiB since 6.15
Max file size
  • 4 GiB (compact)
  • 16 EiB (extended, also limited by volume size) [1]
Max no. of filesDepends on volume size
Max filename length255 bytes
Features
Dates recordedFile change time (extended only) [1]
Date resolution1 ns
Attributes POSIX, Extended file attributes
File system
permissions
POSIX, ACL
Transparent
compression
Yes (LZ4; LZMA since 5.16; DEFLATE since 6.6) [1]
Data deduplication Yes (extent-based)
Other
Supported
operating systems
Linux

EROFS (Enhanced Read-Only File System) is a lightweight read-only file system initially developed by Huawei, originally for the Linux kernel and now maintained by an open-source community.

Contents

EROFS aims to form a generic read-only file system solution for various read-only use cases (embedded devices, containers and more) instead of just focusing on storage space saving without considering any side effects of runtime performance. [1]

For example, it provides a solution to save storage space by using transparent compression as an option for scenarios that need high-performance read-only requirements on their devices with limited hardware resources, e.g. smartphones like Android and IoT operating systems such as HarmonyOS alongside its HarmonyOS NEXT core system iteration. [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] Oppo, Xiaomi and some Samsung products also use EROFS. [6] [7]

Also, it provides a content-addressable chunk-based container image solution together with lazy pulling feature to accelerate container startup speed by using new file-based fscache backend since Linux kernel v5.19 and file-backed mounts since v6.12. [8] [9]

The file system was formally merged into the mainline kernel with Linux kernel v5.4. [10]

Features

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

See also

References

  1. 1 2 3 4 5 6 7 8 9 10 11 12 Gao Xiang. "erofs.html". www.kernel.org. Retrieved 2022-08-04.
  2. Michael Larabel (2018-11-19). "There Is Finally A User-Space Utility To Make EROFS Linux File-Systems". 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. "Google's plan to use EROFS on Android". 20 May 2022. Retrieved 2022-08-04.
  7. "The Galaxy S23 might be Samsung's first Android device to use EROFS". 2023-02-07. Retrieved 2023-07-22.
  8. "The Evolution of the Nydus Image Acceleration". 6 June 2022. Retrieved 2022-08-04.
  9. "The 6.12 merge window begins [LWN.net]". lwn.net. Retrieved 2025-04-13.
  10. corbet (2019-11-25). "The 5.4 kernel has been released". LWN.net. Retrieved 2019-12-01.
  11. Michael Larabel. "EROFS File-System Adding LZMA Compression Support Via New MicroLZMA". Phoronix. Retrieved 2022-01-10.
  12. Michael Larabel. "EROFS File-System Adding DEFLATE Compression Support". Phoronix. Retrieved 2023-09-03.
  13. "staging: erofs: introduce LZ4 decompression inplace" . Retrieved 2020-12-03.
  14. "staging: erofs: integrate decompression inplace" . Retrieved 2020-12-03.
  15. Michael Larabel. "EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements". Phoronix. Retrieved 2021-07-11.
  16. "erofs: add big pcluster compression support" . Retrieved 2021-07-11.
  17. Michael Larabel. "XFS & EROFS File-Systems Have Big Changes For Linux 5.15". Phoronix. Retrieved 2021-11-02.
  18. "EROFS-Utils 1.5 Released With ZTailPacking, FSCK Extraction" . Retrieved 2022-08-04.
  19. Jonathan Corbet. "5.19 Merge window, part 1" . Retrieved 2022-08-04.
  20. Marius Nestor (31 July 2022). "Linux Kernel 5.19 Officially Released, Linus Torvalds Teases Linux 6.0 as Next Kernel Series" . Retrieved 2022-08-04.