首先这个错误我发现并非是没有mkswap的缘故,而是btrfs根本不支持swapfile,解决的方法也很简单,就是把swapfile挂载到loopback就可以了,参见http://www.spinics.net/lists/linux-btrfs/msg28533.html
github上面有个脚本,参见:https://github.com/sebastian-philipp/btrfs-swapon
脚本内容如下
#!/bin/sh # # Copyright (C) Sebastian Philipp # set -e swapsize="$1" swapname="$2" if [ -z "$swapsize" -o -z "$swapname" ] then cat <> $swapname losetup $swapfile $swapname #mount file to loop mkswap $swapfile swapon $swapfile
使用方法是./btrfs-swapon