在 Debian 里看到 swap 报错,常见原因和对应解决办法如下,你可以按顺序排查。
swapon failed: invalid argument原因
解决
# 如果是 swap 文件
sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
如果是分区(如 /dev/sda2):
sudo mkswap /dev/sda2
sudo swapon /dev/sda2
swapon: /swapfile: read swap header failed原因
mkswap 初始化解决
sudo mkswap /swapfile
sudo swapon /swapfile
报错表现
free -h 看不到 swap解决
编辑 /etc/fstab:
sudo nano /etc/fstab
添加(文件方式):
/swapfile none swap sw 0 0
或(分区方式):
/dev/sda2 none swap sw 0 0
保存后:
sudo mount -a
cannot allocate memory 但 swap 存在原因
swappiness 太低解决
# 查看
cat /proc/sys/vm/swappiness
# 临时修改
sudo sysctl vm.swappiness=60
# 永久
echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf
典型错误
device does not existcryptsetup failed解决
/etc/crypttab 和 /etc/fstab 一致lsblk 确认设备名# 查看当前 swap
swapon --show
free -h
# 查看报错
dmesg | grep swap
journalctl -xe | grep swap
为了更精准帮你,建议提供:
cat /etc/debian_version)我可以直接给你对应的修复命令。