CentOS 上 swap 报错有很多种常见情况,下面我按最常见报错场景给你对应修复方法,你可以先对号入座。
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: /dev/sdb1: cannot allocate memory
系统内存太碎 or 分区不对
fdisk -l
如果是普通分区:
mkswap /dev/sdb1
swapon /dev/sdb1
开机提示:
mount: swap: special device not found
编辑:
vi /etc/fstab
确认类似:
/swapfile swap swap defaults 0 0
或
/dev/sda2 swap swap defaults 0 0
测试:
mount -a
swapoff: /dev/sda2: Cannot allocate memory
内存 + swap 都不够
sync
echo 3 > /proc/sys/vm/drop_caches
lsblk
lvdisplay
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
你可以把 具体报错完整内容 发出来,例如:
dmesg | tailcat /etc/redhat-release)我可以直接告诉你是哪一种、该怎么改。