Storage¶
Install to internal media, ZFS, NFS, read-only rootfs
Install¶
Install the running system to internal media (eMMC/NVMe/SATA/USB/UFS, or Windows dual-boot)
- Clones your current live OS installation
- Keeps your settings, configuration, installed packages, and user data
- Essentially “transfer my existing system to internal/external storage”
Use this option to transfer your current live Armbian system to another storage device (eMMC, SSD, USB, etc.). This copies your existing installation exactly as it is — including settings, installed packages, and user data.
| Install | |
|---|---|
Download and flash¶
Download a fresh, official Armbian OS image and write it to a device

What can this tool do?
- Install Armbian onto internal eMMC, SSD, or other storage
- Create bootable SD cards or USB drives for any supported board
- Recover a system by re-flashing a clean image
- Switch between different OS variants, kernel branches, or preinstalled applications
- Accelerate development with fast, repeatable deployments for testing and automation
| Download and flash | |
|---|---|
| Remove cached images | |
|---|---|
Read Only FS¶
Enable read only filesystem
Read-only filesystem is enabled using overlayroot, a utility that places a temporary writable layer over the system root filesystem. Changes made during runtime are redirected into RAM or an alternative writable storage, while the underlying system remains untouched. This ensures that after a reboot, the system returns to a clean original state. It’s ideal for kiosks, appliances, SD card-based systems, and scenarios where long-term filesystem durability and recovery are critical.
| Read Only FS | |
|---|---|
| Disable read only filesystem | |
|---|---|
NFS¶
Enable Network filesystem (NFS) support
| NFS | |
|---|---|
| Disable Network filesystem (NFS) support | |
|---|---|
NFS server¶
Enable network filesystem (NFS) daemon
| NFS server | |
|---|---|
| Configure network filesystem (NFS) daemon | |
|---|---|
| Remove network filesystem (NFS) daemon | |
|---|---|
| Show network filesystem (NFS) daemon clients | |
|---|---|
Find NFS servers¶
Find NFS servers in subnet and mount shares
| Find NFS servers | |
|---|---|
| Show and manage NFS mounts | |
|---|---|
ZFS¶
ZFS filesystem - enable support

ZFS is an advanced, high-performance file system and volume manager designed for data integrity, scalability, and ease of use. It offers features like copy-on-write snapshots, native compression, data deduplication, automatic repair, and efficient storage pooling. Originally developed by Sun Microsystems, ZFS is ideal for handling large amounts of data reliably with minimal maintenance.
When enabling ZFS support, Armbian checks if the running kernel can support ZFS, installs matching kernel headers if necessary, and builds the ZFS DKMS (Dynamic Kernel Module Support) module automatically.
The ARC (Adaptive Replacement Cache) is ZFS’s intelligent caching system.
Recommended Settings:
- ARC Min: 1/8 of RAM (minimum cache size)
- ARC Max: 1/2 of RAM (maximum cache size)
For memory-constrained ARM devices (1-2 GB RAM):
- Consider limiting ARC to 256-512 MB to leave memory for applications
- ARC Max = 0 means “use all available RAM” (may not be ideal for small systems)
Impact:
- Higher ARC = better read performance for frequently accessed data
- Too high ARC can cause system swapping and degraded performance
Dirty data is modified data waiting to be written to disk.
Recommended Setting:
- 4% of RAM (or 4% of ARC size, whichever is smaller)
Impact:
- Higher values = better write performance, more data loss risk on power failure
- Lower values = safer data, more frequent disk writes
TXG (Transaction Group) controls how often ZFS writes changes to disk.
Recommended Setting:
- 5 seconds (default)
Range: 1-30 seconds
Impact:
- Lower (1-3s): Better data safety, more disk writes, lower performance
- Higher (10-30s): Better performance, more data loss risk on power failure
ZFS compression is transparent and can actually improve performance by reducing I/O.
Options:
- lz4: Fast, good compression (recommended for most)
- zstd: Better compression ratio, slightly slower CPU usage
- gzip: Maximum compression, slowest
- off: Disable compression
Note: Compression setting only affects new datasets. Existing datasets keep their compression setting.
Configuration is saved to /etc/modprobe.d/zfs.conf and requires reloading the ZFS module:
The tuning interface includes a “Reset to Defaults” option that:
- Removes custom configuration from
/etc/modprobe.d/zfs.conf - Resets all parameters to ZFS defaults
- Requires module reload to take effect
ZFS pools can be imported when they are not currently mounted. This is useful when:
- Moving pools between systems
- Booting from a different system with ZFS pools present
- Pools were exported and need to be re-imported
Import Options:
- Scan: Lists all available pools that can be imported
- Import with original mount points: Pool datasets mount at their configured locations
- Import with alternate mount point: Pool datasets mount under a custom root directory
Force Import:
The import function uses -f flag to force import, which handles:
- HostID mismatches between systems
- Pool state issues
- Active pools on other systems (use with caution)
Alternate Mount Point:
When importing with an alternate root (altroot):
- Datasets mount under the specified path (e.g.,
/mnt/pool) - Original mount point configuration is preserved
- Useful for temporary access or recovery scenarios
Note: Default behavior is to use the pool’s original mount points for maximum compatibility.
| ZFS | |
|---|---|
Key Features¶
Data Integrity¶
- Copy-on-Write (CoW): Prevents data corruption by never overwriting live data.
- Checksumming: Detects and corrects silent data corruption (bit rot).
Storage Management¶
- Pooled Storage: Eliminates the need for traditional partitions; all storage is managed dynamically.
- Snapshots & Clones: Creates instant backups without using extra storage.
Performance & Scalability¶
- Efficient Compression & Deduplication: Reduces storage usage without performance loss.
- Dynamic Striping & Caching: Distributes data across multiple disks for optimized read/write speeds.
Advanced Security¶
- Native Encryption: Supports dataset-level encryption for secure data storage.
- RAID-Z: A superior RAID alternative that prevents write-hole issues.
| ZFS filesystem - remove support | |
|---|---|
| Tune ZFS | |
|---|---|
| Import ZFS Pool | |
|---|---|
Memory¶
Memory management - enable features

ZRAM is a Linux kernel module that creates compressed RAM-based block devices. It extends available memory by compressing pages and storing them in RAM, giving you more usable memory at the cost of some CPU overhead. On devices with limited RAM, ZRAM can significantly improve system responsiveness and prevent out-of-memory conditions.
When enabling memory management, Armbian installs the zram-config package if not already present, enables the armbian-zram-config service, and configures optimal swappiness settings for ZRAM-based swapping.
Key Features
- Memory Compression: Transparent ZRAM-based swap that extends available memory without application changes
- Parallel Compression: Multiple ZRAM devices utilize all CPU cores for maximum throughput
- Algorithm Choice: Select optimal compression for your hardware (lzo, lz4, zstd, lzo-rle)
- Adaptive Swapping: Swappiness tuned for ZRAM’s in-RAM characteristics
- Memory Overcommitment: Support for swap sizes larger than physical RAM
- Safe Defaults: Sensible defaults based on your system’s memory size
Perfect for ARM-based SBCs, small form-factor PCs, and servers where physical RAM is limited and disk-based swap would cause excessive I/O.
| Memory | |
|---|---|
Settings are automatically selected based on system memory:
| System | ZRAM Size | Memory Limit | Swappiness |
|---|---|---|---|
| < 4 GB RAM | 50% | 50% | 100 |
| 4+ GB RAM | 25% | 25% | 80 |
- Max Devices: Set to CPU core count (capped at 8)
- Algorithm: lzo (best for ARM), lz4 (fast on x86), zstd (best ratio, slower)
- ZRAM Percentage (10-300%): Swap space relative to physical RAM. With 50% on a 2GB system you get 1GB of swap, but compression (2:1 to 3:1) effectively holds 2-3GB
- Memory Limit (10-100%): Prevents ZRAM from consuming too much physical RAM. Should generally match ZRAM percentage
- Swappiness (1-100): How aggressively the kernel swaps to ZRAM. Use 80-100 for ZRAM (unlike disk swap where 60 is default)
- Max Devices (1-8): Number of ZRAM devices, usually one per CPU core for parallel compression
- ZRAM not working: Check
systemctl status armbian-zram-configandswapon --show - High CPU usage: Normal during memory pressure. Reduce
ZRAM_PERCENTAGEor switch tolzoalgorithm - Still out of memory: Increase
ZRAM_PERCENTAGE(up to 200-300% for read-heavy workloads) - Algorithm not supported: Run
cat /sys/block/zram0/comp_algorithmto see available options - Changes not applying: Run
systemctl restart armbian-zram-configor reboot
Edit /etc/default/armbian-zram-config directly for advanced options:
| Bash | |
|---|---|
ZRAM backing device - for systems with fast NVMe storage:
Monitoring:
/etc/default/armbian-zram-config: Main ZRAM configuration/etc/sysctl.d/99-armbian-memory.conf: Swappiness and VM parameterszramctl: Show detailed ZRAM device statisticsswapon --show: Display active swap devices including ZRAM
| Memory | |
|---|---|
| Tune Memory | |
|---|---|