EROFS (Enhanced Read-Only File System) is a lightweight read-only file system initially developed by Huawei for the Linux kernel and now maintained by an open-source community from all over the world.
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 HarmonyOS.[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.[8]
The file system was formally merged into the mainline kernel with Linux kernel v5.4.[9]
Contents
1Features
2See also
3References
4External links
Features
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]
32-bit block addressing, which currently limits the total possible capacity of an EROFS filesystem to 16 TiB of 4 KiB block size.[1]
Metadata and data can be mixed by design for on-disk flexibility together with tail-packing inline data technology[1]
Support POSIX attributes and permissions, extended file attributes and ACL[1]
Fixed-size output transparent compression with LZ4, MicroLZMA (since Linux 5.16[10]) and/or DEFLATE (since Linux 6.6[11]) for relative higher compression ratios[1]
In-place decompression for higher sequential read [12][13]
Big pcluster feature allowing up to 1 MiB big pclusters for better compression ratios since Linux 5.13.[14][15]
Direct I/O, Direct Access (DAX) support, chunk-based data de-duplication for uncompressed files since Linux 5.15.[1][16]
Multiple device support for multiple layer container images since Linux 5.16.[1]
Ztailpacking support since Linux 5.17.[17]
File-based Fscache backend support since Linux 5.19 with "on-demand mode".[18][19]
Rolling-hash deduplicated data compression and fragment support since Linux 6.1. [1]
See also
cramfs
ext4 - previously Huawei used this file system for its system partitions
↑Michael Larabel (2018-11-19). "There Is Finally A User-Space Utility To Make EROFS Linux File-Systems". https://www.phoronix.com/scan.php?page=news_item&px=Linux-EROFS-User-Space.
↑Xiang, Gao (2019-07-04). "erofs: promote erofs from staging". Linux kernel (Mailing list). Retrieved 2019-09-03.
↑"EMUI 9.1, the Intelligent Android OS". Huawei Technologies. https://consumer.huawei.com/levant/emui-9-1/.
↑"Google's plan to use EROFS on Android". 20 May 2022. https://blog.esper.io/android-dessert-bites-25-erofs-in-android-13-47987123/.
↑"The Galaxy S23 might be Samsung's first Android device to use EROFS". 2023-02-07. https://www.realmicentral.com/2023/02/07/the-galaxy-s23-might-be-samsungs-first-android-device-to-use-erofs.
↑"The Evolution of the Nydus Image Acceleration". 6 June 2022. https://d7y.io/blog/2022/06/06/evolution-of-nydus/.
↑corbet (2019-11-25). "The 5.4 kernel has been released". https://lwn.net/Articles/805462/.
↑Michael Larabel. "EROFS File-System Adding LZMA Compression Support Via New MicroLZMA". https://www.phoronix.com/scan.php?page=news_item&px=EROFS-LZMA-Compression.
↑Michael Larabel. "EROFS Sends In "Big Pcluster" Support For Linux 5.13, Other Improvements". https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.13-EROFS.
↑"erofs: add big pcluster compression support". https://lwn.net/Articles/851388/.
↑Michael Larabel. "XFS & EROFS File-Systems Have Big Changes For Linux 5.15". https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.15-XFS-EROFS.
↑"EROFS-Utils 1.5 Released With ZTailPacking, FSCK Extraction". https://www.phoronix.com/news/EROFS-Utils-1.5-Released.
↑Jonathan Corbet. "5.19 Merge window, part 1". https://lwn.net/Articles/896140/.
↑Marius Nestor (31 July 2022). "Linux Kernel 5.19 Officially Released, Linus Torvalds Teases Linux 6.0 as Next Kernel Series". https://9to5linux.com/linux-kernel-5-19-officially-released-this-is-whats-new.
External links
Official website
EROFS Linux kernel repo - git.kernel.org
erofs-utils - git.kernel.org
ATC '19 - EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices
An introduction to EROFS - LWN.net
EROFS vs. SquashFS: A Gentle Benchmark - blog.sigma-star.at
v
t
e
File systems
Comparison of file systems
distributed
Unix filesystem
Disk
ADFS
AdvFS
Amiga FFS
Amiga OFS
APFS
AthFS
bcachefs
BFS
Be File System
Boot File System
Btrfs
CVFS
CXFS
DFS
EFS
Encrypting File System
Extent File System
Episode
ext
ext2
ext3
ext3cow
ext4
FFS/FFS2
FAT
exFAT
Files-11
Fossil
HAMMER
HAMMER2
HFS
HFS+
HPFS
HTFS
IBM Spectrum Scale
JFS
LFS
MFS
Macintosh File System
TiVo Media File System
MINIX
NetWare File System
Next3
NILFS
NILFS2
NSS
NTFS
OneFS
PFS
QFS
QNX4FS
ReFS
ReiserFS
Reiser4
Reliance
Reliance Nitro
RFS
SFS
SNFS
Soup (Apple)
Tux3
UBIFS
UFS
soft updates
WAPBL
VxFS
WAFL
Xiafs
XFS
Xsan
zFS
ZFS
Optical disc
HSF
ISO 9660
ISO 13490
UDF
Flash memory and SSD
APFS
FAT
exFAT
CHFS
TFAT
EROFS
FFS2
F2FS
HPFS
JFFS
JFFS2
JFS
LogFS
NILFS
NILFS2
NVFS
YAFFS
UBIFS
Distributed
CXFS
GFS2
Google File System
OCFS2
OrangeFS
PVFS
QFS
Xsan
more...
NAS
AFS (OpenAFS)
AFP
Coda
DFS
Google File System
IBM Spectrum Scale
Lustre
NCP
NFS
POHMELFS
Hadoop
SMB (CIFS)
SSHFS
more...
Specialized
Aufs
AXFS
Boot File System
CDfs
Compact Disc File System
cramfs
Davfs2
EROFS
FTPFS
FUSE
Lnfs
LTFS
NOVA
MVFS
SquashFS
UMSDOS
OverlayFS
UnionFS
WBFS
Pseudo and virtual
configfs
devfs
debugfs
kernfs
procfs
specfs
sysfs
tmpfs
WinFS
Encrypted
eCryptfs
EncFS
EFS
Rubberhose
SSHFS
ZFS
Types
Clustered
Global
Grid
Self-certifying
Flash
Journaling
Log-structured
Object
Record-oriented
Semantic
Steganographic
Synthetic
Versioning
Features
Case preservation
Copy-on-write
Data deduplication
Data scrubbing
Execute in place
Extent
File attribute
Extended file attributes
File change log
Fork
Links
Hard
Symbolic
Access control
Access control list
Filesystem-level encryption
Permissions
Modes
Sticky bit
Interfaces
File manager
File system API
Installable File System
Virtual file system
Lists
Cryptographic
Default
Log-structured
0.00
(0 votes)
Original source: https://en.wikipedia.org/wiki/EROFS. Read more