我已经从一个swapfile交换了很长一段时间,但由于某种原因,它停止了工作。
sudo fallocate -l 4G /home/.swap/swapfile
sudo chmod 600 /home/.swap/swapfile
sudo mkswap /home/.swap/swapfile
# /etc/fstab
/home/.swap/swapfile swap swap defaults 0 0
sudo swapon -aswapon: /home/.swap/swapfile: swapon failed: Invalid argument
我正在运行Fedora的最新版本,那么是否有可能随着更新而发生了一些变化,或者是什么原因呢?
发布于 2020-07-23 10:50:49
请试着替换
fallocate -l 4G /home/.swap/swapfile
使用
dd if=/dev/zero of=/home/.swap/swapfile bs=1M count=4096
发布于 2020-10-12 20:28:21
在被接受的答案的基础上构建一个解释:引用swapon(8):
有孔文件
内核中的交换文件实现希望能够直接写入文件,而不需要文件系统的帮助,这是存在漏洞的文件或像Btrfs这样的文件系统上的复制上的问题。
像cp(1)或截断(1)这样的命令创建有漏洞的文件。这些文件将被swapon拒绝。
根据文件系统的不同,由fallocate(1)创建的预分配文件也可以解释为带有漏洞的文件。XFS支持预先分配的交换文件,因为Linux4.18支持预先分配的交换文件。
创建交换文件的最可移植的解决方案是使用dd(1)和/dev/zero。
斜体注释似乎解释了一切。不幸的是,即使输出很长,swapon也没有提到失败的原因(有漏洞的文件)。
发布于 2022-08-17 13:24:40
如果您使用的是btrfs,您应该像这样创建swapfile。在将任何内容写入文件之前,chattr +C是很重要的:
truncate -s 0 swapfile
chattr +C swapfile
fallocate -l 2G swapfile
chmod 0600 swapfile
mkswap swapfile
swapon swapfile使用以下条目将其添加到/etc/fstab中:
/path/swapfile none swap defaults 0 0我在精细材料中找到了它。
https://unix.stackexchange.com/questions/599949
复制相似问题