| Other | |
|---|---|
| Supported operating systems | Unix-like systems |
ROMFS (Read-Only Memory File System) is a minimal, read-only computing file system designed for storing files in read-only memory, particularly in Electrically Erasable Programmable Read-Only Memory (EEPROM) or similar ROM media. Due to its small size and straightforward design, it's commonly used in devices where system resources are limited. It's a part of the Linux Kernel since version 2.1.211: 78 and can be implemented on other Unix-like systems with appropriate support.2
Usage
ROMFS is often used as an initial ROM or initial RAM disk containing kernel modules or essential system files that can be loaded during the boot process. Its implementation requires minimal code, making it suitable for embedded systems and boot floppies.3 The primary advantage of ROMFS is the ability to decrease the size of a kernel (excluding modules).43
Technical details
ROMFS stores files sequentially in contiguous blocks.5: 35 The description of the filesystem layout is documented in the Linux kernel source tree and can be accessed through the LXR romfs.rst.6 ROMFS does not store modification dates or UNIX-like permissions.7
Limitations
ROMFS works on data aligned to 16 byte boundaries, yet most hardware works on data aligned to 1024 byte boundaries.8 As a result, the file system must be padded. ROMFS only works on block devices only and cannot interface with Memory Technology Device for addressing physical ROMs (i.e. EEPROMs, flash memory) directly. The user must supply a device driver that presents the ROM as a block device.9
Platform Support and Tools
Apart from support in the Linux Kernel Nikolay Aleksandrov developed romfser (ROMFS Extractor/Reader), an open-source tool to extract and manipulate ROMFS images, which primarily intended for the BSD family of operating systems, which do not include native ROMFS support.10 Another tool is genromfs, which is a user program for creating a romfs filesystem.11
References
References
- Rubini, Alessandro (May 1997). "The 'Virtual File System' in Linux". Linux Journal. No. 33. Specialized System Consultants. pp. 52–78 – via Google Books.
- "ROMFS - ROM File System". Linux Kernel Documentation. Retrieved 14 August 2025.
- Collings, Terry; Kurt Wall (2007). Red Hat Linux Networking and System Administration. Wiley. p. 150. ISBN 9780471777311 – via Google Books.
- Sally, Gene (2010). Pro Linux Embedded Systems (ebook ed.). Apress. ISBN 1430272260 – via Google Books.
- McCullough, David (July 2004). "uClinux for Linux Programmers". Linux Journal. No. 123. Specialized System Consultants. pp. 34–38 – via Google Books.
- "ROMFS filesystem layout". LXR Cross Referencer. Retrieved 14 August 2025.
- "romfs information".
- "ROMFS - ROM File System".
- Yaghmour, Karim (2003). Building Embedded Linux Systems. O'Reilly. p. 229. ISBN 9780596516468 – via Google Books.
- "romfser GitHub repository". Retrieved 14 August 2025.
- "ROMFS - ROM File System".