温馨提示×

debian swapper常见错误有哪些

小樊
43
2026-10-13 04:04:48
栏目: 智能运维

在 Debian 系统中,swapper(交换分区/交换文件相关机制)常见错误通常出现在系统启动、内存不足、休眠(hibernate)或磁盘管理等场景。下面按常见现象 → 原因 → 解决办法整理。


1. swap 未启用 / 不生效

现象

free -h
# swap 显示 0B

或

swapon --show
# 无输出

常见原因

  • /etc/fstab 中 swap 配置错误
  • UUID 写错
  • 分区未格式化(mkswap 未执行)
  • 交换文件权限不对(必须是 600)

解决

# 分区方式
mkswap /dev/sdXn
swapon /dev/sdXn

# 文件方式
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

/etc/fstab 示例:

UUID=xxxx none swap sw 0 0
# 或
/swapfile none swap sw 0 0

2. 系统启动时报 “swapon failed”

现象

swapon: /dev/sdXn: invalid argument

或

Job swapon.device/start failed

原因

  • 使用了 LVM / 加密分区但未正确解锁
  • swap 分区被误格式化
  • 磁盘损坏
  • fstab 指向不存在的设备

解决

  • 检查 UUID:
blkid
  • 临时注释 fstab 中 swap 行,先正常启动
  • 重建 swap:
mkswap /dev/sdXn

3. 休眠(hibernate)失败

现象

systemctl hibernate
# 失败或立刻唤醒

原因

  • swap 小于物理内存
  • 使用了 swap file 但内核参数未配置
  • initramfs 未包含 resume 支持

解决

确认:

free -h

swap ≥ RAM

编辑:

/etc/default/grub

添加:

resume=UUID=xxx

(swap file 用 resume_offset=)

更新:

update-grub
update-initramfs -u

4. swapper 占用高 / kswapd0 高 CPU

现象

top
# kswapd0 CPU 很高

原因

  • 物理内存不足
  • swap 太小
  • 应用内存泄漏
  • swappiness 设置不合理

解决

查看:

cat /proc/sys/vm/swappiness

临时调整:

sysctl vm.swappiness=10

永久:

/etc/sysctl.conf
vm.swappiness=10

加内存或扩大 swap。


5. 删除/调整 swap 后系统异常

现象

  • 启动慢
  • systemd 等待 swap 设备
  • 提示 dev-sdaX.swap timeout

原因

  • fstab 仍引用已删除 swap
  • initramfs 残留配置

解决

swapoff /dev/sdXn

删除 fstab 对应行
更新:

update-initramfs -u

6. ZRAM / ZSWAP 冲突

现象

  • swap 行为异常
  • 内存占用诡异

原因

同时启用:

  • zram
  • 普通 swap
  • zswap

解决

确认使用哪种:

lsmod | grep zram

只保留一种方案。


7. Debian 安装时未创建 swap

现象

  • 安装后无 swap
  • 低内存机器卡顿

解决

手动创建 swap file(推荐):

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

总结速查表

问题 关键词
不生效 fstab / UUID
启动失败 swapon failed
休眠失败 resume
CPU 高 kswapd0
卡启动 残留 swap

如果你愿意,可以贴 具体报错信息或 fstab 内容,我可以直接帮你定位。

0 踩