温馨提示×

centos swap报错怎么修

小樊
33
2026-09-11 16:36:00
栏目: 智能运维

CentOS 上 swap 报错有很多种常见情况,下面我按最常见报错场景给你对应修复方法,你可以先对号入座。


一、swapon 失败:read swap header failed / invalid argument

现象

swapon: /swapfile: read swap header failed
swapon: /swapfile: invalid argument

原因

文件没有用 mkswap 初始化,或大小异常。

修复

# 关闭已有(如果尝试过)
swapoff /swapfile

# 重新创建
rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

开机自动挂载:

echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

二、swapon: cannot allocate memory

现象

swapon: /dev/sdb1: cannot allocate memory

原因

系统内存太碎 or 分区不对

修复

  1. 确认分区是 Linux swap
fdisk -l

如果是普通分区:

mkswap /dev/sdb1
swapon /dev/sdb1
  1. 实在不行用 swapfile(见上面)

三、fstab 写错导致开机 swap 报错

现象

开机提示:

mount: swap: special device not found

修复

编辑:

vi /etc/fstab

确认类似:

/swapfile swap swap defaults 0 0

/dev/sda2 swap swap defaults 0 0

测试:

mount -a

四、swap 空间不足 / 被占用无法关闭

现象

swapoff: /dev/sda2: Cannot allocate memory

原因

内存 + swap 都不够

修复

  1. 释放内存
sync
echo 3 > /proc/sys/vm/drop_caches
  1. 或临时加 swapfile 再 off 旧的

五、CentOS 7/8 使用 LVM 的 swap 报错

查看

lsblk
lvdisplay

重建 LVM swap

lvremove /dev/centos/swap
lvcreate -L 2G -n swap centos
mkswap /dev/centos/swap
swapon /dev/centos/swap

六、快速自检命令(必看)

free -h
swapon -s
cat /proc/swaps
lsblk

七、如果你愿意,我可以直接帮你定位

你可以把 具体报错完整内容 发出来,例如:

  • swapon 报错原文
  • dmesg | tail
  • CentOS 版本(cat /etc/redhat-release

我可以直接告诉你是哪一种、该怎么改。

0