如何迅速解决Ubuntu Swap分区故障,确保系统稳定运行?
- 内容介绍
- 文章标签
- 相关推荐
至于痛点,Swap分区故障导致程序卡顿、无法启动、内存不足频繁报错
当 Ubuntu 出现 swap 分区异常时您可能会遇到以下令人头疼的情况: • 程序启动卡在 GRUB 或直接进入救援模式 • 大型应用因内存耗尽而频繁 OOM Kill • 频繁出现 “swap failed”或 “cannot allocate memory” 日志。导致工作中断 • 即便物理内存还有余量,程序仍然变得异常缓慢,影响生产力。
一、快速定位问题
-
查看已加载的 swap 列表:
cat /proc/swaps # 或 sudo swapon --show -
如果未看到任何条目或显示为 “failed”,检查程序日志以定位引导或磁盘错误:
journalctl -b | grep -i swap dmesg | grep -i swap -
确认分区是否存在且 UUID 匹配:
blkid | grep swap cat /etc/fstab # 检查对应的 UUID 是否正确
二、基础修复步骤
-
先关闭所有 swap:
sudo swapoff -a -
重新创建或重新格式化 swap 分区:
sudo mkswap /dev/sdXY sudo swapon /dev/sdXY -
更新 /etc/fstab。确保开机自动挂载:
/dev/sdXY none swap sw 0 0 # 或使用 UUID: UUID=xxxx-xxxx none swap sw 0 0 -
验证是否成功激活:
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` 每周执行一次。不过,
至于痛点,Swap分区故障导致程序卡顿、无法启动、内存不足频繁报错
当 Ubuntu 出现 swap 分区异常时您可能会遇到以下令人头疼的情况: • 程序启动卡在 GRUB 或直接进入救援模式 • 大型应用因内存耗尽而频繁 OOM Kill • 频繁出现 “swap failed”或 “cannot allocate memory” 日志。导致工作中断 • 即便物理内存还有余量,程序仍然变得异常缓慢,影响生产力。
一、快速定位问题
-
查看已加载的 swap 列表:
cat /proc/swaps # 或 sudo swapon --show -
如果未看到任何条目或显示为 “failed”,检查程序日志以定位引导或磁盘错误:
journalctl -b | grep -i swap dmesg | grep -i swap -
确认分区是否存在且 UUID 匹配:
blkid | grep swap cat /etc/fstab # 检查对应的 UUID 是否正确
二、基础修复步骤
-
先关闭所有 swap:
sudo swapoff -a -
重新创建或重新格式化 swap 分区:
sudo mkswap /dev/sdXY sudo swapon /dev/sdXY -
更新 /etc/fstab。确保开机自动挂载:
/dev/sdXY none swap sw 0 0 # 或使用 UUID: UUID=xxxx-xxxx none swap sw 0 0 -
验证是否成功激活:
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` 每周执行一次。不过,

