如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?

更新于
2026-09-30 16:12:36
2阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

至于痛点,Swap分区故障导致程序卡顿、无法启动、内存不足频繁报错

当 Ubuntu 出现 swap 分区异常时您可能会遇到以下令人头疼的情况: • 程序启动卡在 GRUB 或直接进入救援模式 • 大型应用因内存耗尽而频繁 OOM Kill • 频繁出现 “swap failed”或 “cannot allocate memory” 日志。导致工作中断 • 即便物理内存还有余量,程序仍然变得异常缓慢,影响生产力。

一、快速定位问题

  1. 查看已加载的 swap 列表:

    如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?
    cat /proc/swaps
    # 或
    sudo swapon --show
    
  2. 如果未看到任何条目或显示为 “failed”,检查程序日志以定位引导或磁盘错误:

    如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?
    journalctl -b | grep -i swap
    dmesg | grep -i swap
    
  3. 确认分区是否存在且 UUID 匹配:

    blkid | grep swap
    cat /etc/fstab # 检查对应的 UUID 是否正确
    

二、基础修复步骤

  1. 先关闭所有 swap:

    sudo swapoff -a
    
  2. 重新创建或重新格式化 swap 分区:

    sudo mkswap /dev/sdXY
    sudo swapon /dev/sdXY
    
  3. 更新 /etc/fstab。确保开机自动挂载:

    /dev/sdXY none swap sw 0 0
    # 或使用 UUID:
    UUID=xxxx-xxxx none swap sw 0 0
    
  4. 验证是否成功激活:

    swapon --show
    free -h
    

三、高级排查与修复

1. 检查磁盘健康状况及坏道

使用 GParted 或 smartmontools 检测硬盘状态:

sudo smartctl -a /dev/sdX # X 为对应磁盘
sudo fsck /dev/sdXY # 若分区含文件程序

2. 重新划分 Swap 分区

- 停用旧 swap - 创建交换文件: - 设置权限并激活 - 添加至 fstab 自动挂载。 不过,

$ sudo swapoff -a
$ sudo fallocate -l 4G /swapfile # 若 fallocate 不支持,可用 dd
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

3. 调整 Swappiness 值以提前使用 Swap。防止瞬间内存耗尽导致卡死

从临时调整来看,`sudo sysctl vm.swappiness=10` `vm.swappiness = 10`。

四、验证与调整——保证程序稳定运行

  • `free -m` 或 `htop` 查看实时占用。
  • `sudo swapoff -a && sudo swapon -a` 检查是否有错误输出。
  • `journalctl -f | grep -i sweep` 持续观察异常。怎么说呢,
  • `smartctl -H /dev/sdX` 每周执行一次。不过,

标签:Ubuntu

至于痛点,Swap分区故障导致程序卡顿、无法启动、内存不足频繁报错

当 Ubuntu 出现 swap 分区异常时您可能会遇到以下令人头疼的情况: • 程序启动卡在 GRUB 或直接进入救援模式 • 大型应用因内存耗尽而频繁 OOM Kill • 频繁出现 “swap failed”或 “cannot allocate memory” 日志。导致工作中断 • 即便物理内存还有余量,程序仍然变得异常缓慢,影响生产力。

一、快速定位问题

  1. 查看已加载的 swap 列表:

    如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?
    cat /proc/swaps
    # 或
    sudo swapon --show
    
  2. 如果未看到任何条目或显示为 “failed”,检查程序日志以定位引导或磁盘错误:

    如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?
    journalctl -b | grep -i swap
    dmesg | grep -i swap
    
  3. 确认分区是否存在且 UUID 匹配:

    blkid | grep swap
    cat /etc/fstab # 检查对应的 UUID 是否正确
    

二、基础修复步骤

  1. 先关闭所有 swap:

    sudo swapoff -a
    
  2. 重新创建或重新格式化 swap 分区:

    sudo mkswap /dev/sdXY
    sudo swapon /dev/sdXY
    
  3. 更新 /etc/fstab。确保开机自动挂载:

    /dev/sdXY none swap sw 0 0
    # 或使用 UUID:
    UUID=xxxx-xxxx none swap sw 0 0
    
  4. 验证是否成功激活:

    swapon --show
    free -h
    

三、高级排查与修复

1. 检查磁盘健康状况及坏道

使用 GParted 或 smartmontools 检测硬盘状态:

sudo smartctl -a /dev/sdX # X 为对应磁盘
sudo fsck /dev/sdXY # 若分区含文件程序

2. 重新划分 Swap 分区

- 停用旧 swap - 创建交换文件: - 设置权限并激活 - 添加至 fstab 自动挂载。 不过,

$ sudo swapoff -a
$ sudo fallocate -l 4G /swapfile # 若 fallocate 不支持,可用 dd
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

3. 调整 Swappiness 值以提前使用 Swap。防止瞬间内存耗尽导致卡死

从临时调整来看,`sudo sysctl vm.swappiness=10` `vm.swappiness = 10`。

四、验证与调整——保证程序稳定运行

  • `free -m` 或 `htop` 查看实时占用。
  • `sudo swapoff -a && sudo swapon -a` 检查是否有错误输出。
  • `journalctl -f | grep -i sweep` 持续观察异常。怎么说呢,
  • `smartctl -H /dev/sdX` 每周执行一次。不过,

标签:Ubuntu