🔎 Overview#

EROFS - Enhanced Read-Only File System

A modern, flexible, general-purpose, high-performance block-based immutable filesystem with highly-optimized on-disk format and runtime implementation aimed at various use cases instead of just focusing on storage space saving without considering any side effects of runtime performance.

EROFS has been formally available since Linux 5.4. It is currently maintained by an open-source community from all over the world, and is still under active development.


A modern filesystem more than just another archive format: EROFS is strictly block-aligned to maximize the data utilization of a single disk I/O and enable advanced features like Direct I/O and FSDAX.

📝 Technical Design

Minimal core on-disk format for non-encoded use cases.
Besides, advanced on-disk and/or runtime features can be enabled on demand.

⚖️ Features and Comparison

Compression & Deduplication

Per-file data compression as an option, normally using fixed-sized output compression to fill up each block. Compressed data can be deduplicated with byte-granularity cut points.

Block-aligned fitblk compression


Applications

Architecture

EROFS dataflow in brief

Feedback & Contributing

If you’re interested, feel free to send feedback and/or patches to the linux-erofs mailing list <linux-erofs@lists.ozlabs.org>. Developer guides might be a useful start for newcomers as the first step.

Please also take a look at Code of Conduct for all Linux kernel development communities.

Additional resources

EROFS in-tree documentation - kernel.org

An introduction to EROFS - LWN.net

EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices - USENIX ATC’19.

EROFS的介绍与讨论 (chn) - Weixin Official Accounts Platform

EROFS Everywhere: An Image-Based Kernel Approach for Various Use Cases (chn) with slides (eng) - KubeCon + CloudNativeCon + Open Source Summit China 2023

Finding the Best Block Filesystem for Your Embedded Linux System - Michael Opdenacker, Bootlin @ EOSS 2023