Btrfs文件系统启用交换文件(swap)

可以解决btrfs作为根分区文件系统时,swapon提示无效参数的问题

系统环境:mint 20.1

btrfs文件系统从5.0内核开始支持交换文件,但是有一些限制:

- 不支持在快照卷上配置交换文件,建议单独创建子卷;

- 不支持在跨越多个物理设备的卷上创建交换文件;

# 创建swap子卷
te@EY-B:/$ sudo btrfs subvolume create swap
Create subvolume './swap'

# 在swap子卷下创建一个0 byte大小的交换文件
te@EY-B:/swap$ sudo truncate -s 0 /swap/swapfile

# 配置交换文件权限
te@EY-B:/swap$ sudo chmod 600 /swap/swapfile 

# 配置交换文件属性,具有'C'属性集的文件将不受 copy-on-write 的约束。
# 注意:对于btrfs,“C”标志应该是设置新的或空文件。
te@EY-B:/swap$ sudo chattr +C /swap/swapfile 

# 配置btrfs禁止压缩交换文件
te@EY-B:/swap$ sudo btrfs property set /swap/swapfile compression none

# 将交换文件填充至需要的大小
te@EY-B:/swap$ sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=2048
记录了2048+0 的读入
记录了2048+0 的写出
2147483648字节(2.1 GB,2.0 GiB)已复制,4.62272 s,465 MB/s

# 格式化交换文件
te@EY-B:/swap$ sudo mkswap /swap/swapfile 
正在设置交换空间版本 1,大小 = 2 GiB (2147479552  个字节)
无标签, UUID=b2a8512a-109b-499d-8b4f-96c137f6ca20

# 启用交换文件
te@EY-B:/swap$ sudo swapon /swap/swapfile
编辑 /etc/fstab 自动挂载,添加或编辑以下行:
/swap/swapfile    none    swap    sw    0    0


转自:https://zhuanlan.zhihu.com/p/355986059
原文地址:https://www.cnblogs.com/pipci/p/14856606.html