本例是OEC-Turbo Armbian系统(4G 内存),之前关闭了zram,以下是重新打开 zram 步骤:
优先用系统自带的 armbian-zram-config 服务,简单高效;也可手动临时 / 永久配置,下面是具体操作。
一、快速恢复(利用 Armbian 自带服务)
Armbian 默认有 zram 自动配置服务,先通过它恢复,4G 内存建议设为 2G(物理内存 50%),算法选 lz4/zstd。
启用并启动服务
编辑配置文件启用zram
sudo nano /etc/default/armbian-zram-config
将 ENABLED=false 改为 ENABLED=true,按需调整参数(4G 内存参考):
ZRAM_PERCENTAGE=50 # zram大小为物理内存50%(2G)
SWAP_ALGORITHM=lz4 # 平衡速度与压缩率
按 Ctrl+O 并回车保存,Ctrl+X 退出。
启动并设置开机自启
sudo systemctl enable armbian-zram-config
sudo systemctl start armbian-zram-config
验证生效
zramctl # 查看zram设备信息
cat /proc/swaps # 确认swap中存在zram0

二、临时开启(重启失效,适合测试)
加载模块与创建 zram 设备
sudo modprobe zram
sudo zramctl /dev/zram0 --size 2G --algorithm lz4
格式化并启用交换
sudo mkswap /dev/zram0
sudo swapon /dev/zram0 -p 100 # 设高优先级
验证
执行 zramctl 或 cat /proc/swaps 查看 zram0 条目:

三、手动永久配置(systemd 服务,适合无自带服务的情况)
创建 systemd 服务文件
sudo tee /etc/systemd/system/zram.service <<EOF
[Unit]
Description=ZRAM Setup for ARM 4G RAM
After=systemd-modules-load.service
Before=swap.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c '
modprobe zram
zramctl /dev/zram0 --size 2G --algorithm lz4
mkswap /dev/zram0
swapon /dev/zram0 -p 100
'
ExecStop=/bin/bash -c '
swapoff /dev/zram0
zramctl --reset /dev/zram0
'
[Install]
WantedBy=swap.target
EOF
启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable zram
sudo systemctl start zram
重启验证
reboot
重启后执行 cat /proc/swaps 确认 zram0 存在。
关键注意事项
4G 内存建议 zram 设为 2G,算法优先 lz4/zstd,避免 CPU 开销过大。
若提示模块加载失败,先检查内核是否支持 zram:
zcat /proc/config.gz | grep CONFIG_ZRAM
若显示=y或=m则支持;否则需升级内核或重新编译:

若已安装其他 zram 管理工具(如 zram-config),先卸载避免冲突:
sudo apt remove zram-config
