一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Ubuntu Swap失效如何解决

时间:2026-07-05 09:42:52 编辑:袖梨 来源:一聚教程网

Ubuntu Swap失效排查与修复

Ubuntu Swap失效怎么解决

一、快速自检

  • 查看是否启用:运行free -h,若Swap为0或未显示,说明未启用。
  • 查看当前交换区:cat /proc/swaps 或 swapon --show。
  • 检查设备与配置:用sudo blkid确认交换分区/文件的UUID,再核对**/etc/fstab中对应的UUID**与挂载项是否一致。
  • 查看内核与系统日志:dmesg | tail、journalctl -xe,定位挂载失败或设备不存在的报错。以上命令能快速判断是“未启用”“配置错误”还是“设备故障”。

二、常见原因与对应修复

  • 配置指向了错误的UUID现象:开机出现“A start job is running for /dev/disk/by-uuid/… (1min 30s)”。处理:
    1. 用blkid获取当前交换分区/文件的新UUID;
    2. 编辑**/etc/fstab**,将swap行中的旧UUID替换为新UUID(确保行首无“#”);
    3. 重启验证。
  • 交换分区未格式化或被改动后未重新启用处理:
    1. 用GParted将目标分区格式化为linux-swap;
    2. 右键启用交换空间或执行sudo swapon /dev/sdXY;
    3. 在**/etc/fstab中以UUID=… none swap sw 0 0**形式写入;
    4. 重启。
  • 使用swap文件但开机未自动启用处理:
    1. 创建并启用:
      • 建议方式:sudo fallocate -l 2G /swapfile(或按需设定大小)
      • 兼容方式:dd if=/dev/zero of=/swapfile bs=1M count=2048
      • 格式化:sudo mkswap /swapfile
      • 启用:sudo swapon /swapfile
    2. 持久化:在**/etc/fstab加入/swapfile none swap sw 0 0**;
    3. 验证:swapon --show 与 free -h。
  • 休眠不可用(hibernate)处理:
    1. 确保交换分区/文件已启用且容量≥物理内存;
    2. 编辑**/etc/default/grub**,在GRUB_CMDLINE_LINUX_DEFAULT中添加resume=UUID=交换分区UUID;
    3. 更新引导:sudo update-grub;
    4. 测试:sudo systemctl hibernate。以上步骤覆盖了配置错误、分区未启用、swap文件未持久化以及休眠支持等高频场景。

三、验证与优化

  • 验证:
    • 运行free -h确认Swap已分配且可用;
    • 运行swapon --show查看具体设备或文件;
    • 查看日志:dmesg | tail、journalctl -xe确认无挂载错误。
  • 调整使用倾向(可选):
    • 查看:cat /proc/sys/vm/swappiness(默认通常为60);
    • 临时调整:sudo sysctl vm.swappiness=20;
    • 永久生效:在**/etc/sysctl.conf添加vm.swappiness=20**后重启。
  • 多交换区的优先级(可选):
    • 启用并设置优先级:sudo swapon -p 10 /dev/sdXY(数值越大优先级越高)。这些操作可确认修复效果,并按需优化系统对交换空间的使用策略。

四、应急与回退

  • 临时禁用全部交换:sudo swapoff -a(排查异常时很有用)。
  • 仅临时启用某个交换:sudo swapon /dev/sdXY 或 sudo swapon /swapfile。
  • 若**/etc/fstab**配置有误导致无法进入系统:
    • 进入恢复模式或LiveCD/救援环境,挂载根分区并修正**/etc/fstab**中的swap行(或先注释掉swap行以正常启动),再按上文步骤恢复。
  • 若只是想先恢复启动速度,可在**/etc/fstab**中注释swap行,待修复完成后再恢复。上述方法可在不影响数据的前提下快速恢复系统可用性,并便于进一步排错。

热门栏目