2022/05/23 追記
Linuxのカーネル 5.x から btrfs 内部にスワップファイル設置がサポートされてます。新しい方に書き直した。
新しい方法 → btrfs 内部にスワップ・ファイルを設置する - それマグで!
swap ファイルが作れない
takuya@raspi3:/var/samba$ sudo swapon out.swp swapon: /var/samba/out.swp: swapon failed: 無効な引数です takuya@raspi3:/var/samba$ LANG=c sudo swapon out.swp swapon: /var/samba/out.swp: swapon failed: Invalid argument
btrfsにはswapが作れない
エラーメッセージがinvalidとしかでないのでわからなくなる
散々、検索して理由を探したけど見当たらなくて。すごく青ざめてパニックになってた。わかってしまうとなんだって感じ。
ext4 の中には swap file が作れるが btrfs の中には swap file が作れない。
単純にswapon でマウントしようとしただけではinvaid エラーになって気づきにくい。っていうかしらないとハマる。
慌てて確認したら、btrfs ですね。。。
takuya@raspi3:/var/samba$ df -Th . ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 /dev/sda btrfs 58G 32G 25G 57% /var/samba
スワップファイルが作れない解決法
btrfs 上に直接作れないだけで。作成済みのファイルをloopback で接続すれば出来る。
dd if=/dev/zero of=swap.img count=512 size=1M losetup swap.img /dev/loop1 swapon /dev/loop1
btrfs がinodeを管理しちゃったり場所を移すので出来ないんだと思う。まぁ不便だね
参考資料
https://www.linux.com/forums/lfs201-class-forum/lab-131-swapon-failed-invalid-argument