首页主机资讯Ubuntu Swap分区损坏如何修复

Ubuntu Swap分区损坏如何修复

时间2025-11-25 02:35:04发布访客分类主机资讯浏览538
导读:Ubuntu Swap 分区损坏修复指南 一、快速判断与应急处理 查看当前交换状态:swapon --show、cat /proc/swaps。若无输出,说明交换未启用或不存在。 若开机卡在“A start job is running...

Ubuntu Swap 分区损坏修复指南

一、快速判断与应急处理

  • 查看当前交换状态:swapon --showcat /proc/swaps。若无输出,说明交换未启用或不存在。
  • 若开机卡在“A start job is running for /dev/disk/by-uuid/xxxxx (20s / 1min 30s)”,高概率是 /etc/fstab 中的 swap UUID 与实际不一致 或设备不存在。
  • 临时恢复:先注释掉 /etc/fstab 中的 swap 行,重启进入系统后再修复;或先启用一个临时交换文件保证基本可用性(见下文)。
  • 如系统提示无法停用交换(如 GParted 显示锁定或报 “Cannot allocate memory”),先在终端执行 sudo swapoff -a 再操作分区。

二、修复步骤

  1. 确认设备与当前 UUID
  • 列出块设备与文件系统:sudo blkid,在输出中找到类型为 swap 的分区(如 /dev/sda5)及其 UUID
  • 对比 /etc/fstab 中 swap 行的 UUID,若不一致或设备路径变更,需修正。
  1. 方案A 保留原分区并重新初始化
  • 停用交换:sudo swapoff /dev/sda5(若已启用)。
  • 重新初始化为 swap:sudo mkswap /dev/sda5
  • 更新 /etc/fstab:将 swap 行改为 UUID=< 新UUID> none swap sw 0 0,保存。
  • 启用并验证:sudo swapon -a,再用 swapon --showfree -h 检查。
  1. 方案B 重建分区并修复 fstab
  • 使用 GParted 将目标分区格式化为 linux-swap(右键分区 → Format to → linux-swap → Apply)。
  • 在 GParted 中查看该分区的 UUID 并复制。
  • 编辑 /etc/fstab:将 swap 行改为 UUID=< 复制的UUID> none swap sw 0 0,保存。
  • 启用并验证:sudo swapon -a,检查是否生效。
  1. 方案C 无法立即修复时启用临时交换文件
  • 创建 2GB 交换文件:sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
  • 设置权限:sudo chmod 600 /swapfile
  • 初始化并启用:sudo mkswap /swapfile & & sudo swapon /swapfile
  • /etc/fstab 中的 swap 行改为 /swapfile none swap sw 0 0,确保重启后自动挂载。
  1. 修复后验证
  • swapon --showcat /proc/swapsfree -h 均应能看到已启用的 swap。

三、常见故障与对策

  • 启动卡在 “A start job is running for /dev/disk/by-uuid/xxxxx”

    • 原因:UUID 不一致/设备不存在
    • 处理:用 blkid 获取正确 UUID,修正 /etc/fstab;或先注释 swap 行以正常启动,再按上文重建/修复。
  • GParted 分区被锁定或报 “Cannot allocate memory”

    • 处理:在终端执行 sudo swapoff -a 后再进行删除/格式化/启用操作。
  • 误把 swap 分区格式化成 ext4 或类型错误

    • 处理:在 GParted 将其改回 linux-swap 类型,或 sudo mkswap /dev/sdX 重新初始化,并更新 /etc/fstab 的 UUID。
  • 虚拟机扩容/克隆后 swap 不可用

    • 处理:扩容后分区表变化导致 UUID/路径改变,按“方案B”重建分区并修正 /etc/fstab;或先用临时交换文件恢复系统可用性。

四、数据安全与回退建议

  • 操作分区和 /etc/fstab 前先备份:sudo cp /etc/fstab /etc/fstab.bak-$(date +%F)
  • 修改 /etc/fstab 前,可先注释 swap 行并重启,确认系统能正常进入后再启用修复后的 swap。
  • 若磁盘存在 I/O 错误迹象,优先备份重要数据,再考虑磁盘检测与更换。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Swap分区损坏如何修复
本文地址: https://pptw.com/jishu/755186.html
Debian系统回收机制探讨 Debian如何实现磁盘回收

游客 回复需填写必要信息