O

OEC-Turbo Armbian系统重新打开zram

Captain 杂类 2023-01-06

本例是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

PREV
使用squashfs-tools和binwalk修改路由固件rootfs文件
NEXT
RAX3000M如何从外观上辨别算力版和普通版?