それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

swap ファイルをswapon するとエラーになる。(btrfs)

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