Add swap partition on zram device using udev rule
Arch has this covered quite good
Example: To set up one lz4 compressed zram device with 32GiB capacity and a higher-than-normal priority (only for the current session):
# modprobe zram
# echo lz4 > /sys/block/zram0/comp_algorithm
# echo 32G > /sys/block/zram0/disksize
# mkswap --label zram0 /dev/zram0
# swapon --priority 100 /dev/zram0
Swap on zRAM using a udev rule
The example below describes how to set up swap on zRAM automatically at boot with a single udev rule. No extra package should be needed to make this work.
First, enable the module:
/etc/modules-load.d/zram.conf:
zram
Configure the number of /dev/zram nodes you need.
/etc/modprobe.d/zram.conf:
options zram num_devices=2
Create the udev rule as shown in the example.
/etc/udev/rules.d/99-zram.rules:
KERNEL=="zram0", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram0", TAG+="systemd"
KERNEL=="zram1", ATTR{disksize}="512M" RUN="/usr/bin/mkswap /dev/zram1", TAG+="systemd"
Add /dev/zram to your fstab.
/etc/fstab:
/dev/zram0 none swap defaults 0 0
/dev/zram1 none swap defaults 0 0