EROFS

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.

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]

## Contents

* 1 Features
* 2 See also
* 3 References
* 4 External 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]
* 48-bit block addressing, which currently limits the total possible capacity of an EROFS filesystem to 1 EiB of 4 KiB block size.
* 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[11]), zstd and/or DEFLATE (since Linux 6.6[12]) for relative higher compression ratios[1]
* In-place decompression for higher sequential read [13][14]
* Big pcluster feature allowing up to 1 MiB big pclusters for better compression ratios since Linux 5.13.[15][16]
* Direct I/O, Direct Access (DAX) support, chunk-based data deduplication for uncompressed files since Linux 5.15.[1][17]
* Multiple device support for multiple layer container images since Linux 5.16.[1]
* Ztailpacking support since Linux 5.17.[18]
* File-based Fscache backend support since Linux 5.19 with "on-demand mode".[19][20]
* 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
* SquashFS

## References

1. ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Cite error: Invalid `<ref>` tag; no text was provided for refs named `erofs_documentation`
2. ↑ 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.
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 Technologies. https://consumer.huawei.com/levant/emui-9-1/.
6. ↑ "Google's plan to use EROFS on Android". 20 May 2022. https://blog.esper.io/android-dessert-bites-25-erofs-in-android-13-47987123/.
7. ↑ "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.
8. ↑ "The Evolution of the Nydus Image Acceleration". 6 June 2022. https://d7y.io/blog/2022/06/06/evolution-of-nydus/.
9. ↑ "The 6.12 merge window begins [LWN.net"]. https://lwn.net/Articles/990750/.
10. ↑ corbet (2019-11-25). "The 5.4 kernel has been released". https://lwn.net/Articles/805462/.
11. ↑ 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.
12. ↑ Michael Larabel. "EROFS File-System Adding DEFLATE Compression Support". https://www.phoronix.com/news/EROFS-DEFLATE-Coming.
13. ↑ "staging: erofs: introduce LZ4 decompression inplace". https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=0ffd71bcc3a03ebb3551661a36052488369c4de9.
14. ↑ "staging: erofs: integrate decompression inplace". https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/staging?id=b6a76183dea8df67d5888493afe4181e260fad95.
15. ↑ 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.
16. ↑ "erofs: add big pcluster compression support". https://lwn.net/Articles/851388/.
17. ↑ 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.
18. ↑ "EROFS-Utils 1.5 Released With ZTailPacking, FSCK Extraction". https://www.phoronix.com/news/EROFS-Utils-1.5-Released.
19. ↑ Jonathan Corbet. "5.19 Merge window, part 1". https://lwn.net/Articles/896140/.
20. ↑ 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, an Introduction and our Smartphone Practice on YouTube
* EROFS vs. SquashFS: A Gentle Benchmark \- blog.sigma-star.at
* Finding the Best Block Filesystem for Your Embedded Linux System - Michael Opdenacker, Bootlin on YouTube

* 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

* v
* t
* e

Huawei

Products|

| Phones|

| Ascend|

* Huawei Ascend
* Huawei Ascend G300
* Huawei Ascend G600
* Huawei Ascend P1
* Huawei Ascend P2
* Huawei Ascend P6
* Huawei Ascend P7
* Huawei Ascend D1
* Huawei Ascend D2
* Huawei Ascend Mate
* Huawei Ascend Mate2 4G
* Huawei Ascend Mate7
* Huawei Ascend W1

|

Honor|

* Huawei Honor X1
* Huawei Honor X2
* Huawei Honor 3C
* Huawei Honor 3X
* Huawei Honor 4
* Huawei Honor 4C
* Huawei Honor 4X
* Huawei Honor 5X
* Huawei Honor 6
* Huawei Honor 6 Plus
* Huawei Honor 6X
* Huawei Honor 7
* Huawei Honor 7i
* Huawei Honor 7X
* Huawei Honor 8
* Huawei Honor 8 Pro
* Huawei Honor 8X
* Huawei Honor 9
* Huawei Honor 10
* Huawei Honor 20

P series|

* Huawei P8
* Huawei P8 Max
* Huawei P9
* Huawei P10
* Huawei P20
* Huawei P30

Mate series|

* Huawei Mate S
* Huawei Mate 8
* Huawei Mate 9
* Huawei Mate 10
* Huawei Mate 20
* Huawei Mate 30
* Huawei Mate X

Other|

* Huawei M835
* Huawei Sonic
* Huawei U120
* Huawei U121
* Huawei U1000
* Huawei U1100
* Huawei U1270
* Huawei U1250
* Huawei U1310
* Huawei U2801
* Huawei U3300
* Huawei U7310
* Huawei U7510
* Huawei U7519
* Huawei U8100
* Huawei U8110
* Huawei IDEOS U8150
* Huawei U8220
* Huawei U8230
* Huawei U8800
* Huawei U9130 Compass
* Huawei U9150
* Nexus 6P
* Huawei G7
* Huawei G8
* Huawei G9
* Huawei Nova

Other|

* Huawei E5
* Huawei E220
* Huawei Ideos Tablet S7
* Huawei SingleRAN
* Huawei 4G eLTE
* Huawei Mediapad M5
* Huawei Watch
* Huawei MateBook
* Huawei MateBook X Pro

People|

* Ren Zhengfei (CEO)
* Sun Yafang (former chairwoman)
* Meng Wanzhou (deputy chair & CFO)
* Xu Zhijun (deputy chair)

Other|

* EulerOS
* HarmonyOS
* Huawei EMUI
* EROFS
* Huawei Symantec
* HiSilicon
* Criticism of Huawei

* Category
* Commons

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/EROFS. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=EROFS&oldid=4156861"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template