> fallocate / chmod / mkswap
Why not "mkswap --size ... --file ...", which does these three things and more? For instance, according to the mkswap man page, "[...] sets the nocow attribute for newly created files [...]" which is a detail that seems to be missing from this gist.
I wrote this years ago before LLMs made it easy to validate guesswork. I’ll update! Good call
Also, fallocate+chmod is racy: between the two calls, an attacker could open the file, and then keep it open until next reboot. OTOH, mkswap creates the swap file with the correct permissions straight away.
The --size and --file options are relatively new, though: they were added in util-linux v2.40, released in 2024.