温馨提示×

ubuntu swap恢复方法

小樊
47
2025-10-01 15:33:13
栏目: 智能运维

Ubuntu Swap恢复方法

一、恢复前准备

在进行swap恢复操作前,请务必备份重要数据(如/home目录、系统配置文件等),避免磁盘操作导致数据丢失。同时,确保系统处于稳定状态,无其他进程占用swap空间。

二、检查当前Swap状态

在恢复前,需确认系统当前swap的使用情况,判断是否需要恢复以及恢复的目标(文件或分区):

  • 查看已启用的swap:运行sudo swapon --show,若有输出则表示swap已启用(显示设备名称/文件路径及大小);若无输出则表示未启用。
  • 查看swap总量及使用量:运行free -h,在“Swap”行查看总大小、已用及空闲空间。
  • 定位swap分区/文件:运行lsblkfdisk -l,找到类型为“Linux swap”的分区(如/dev/sda2)或swap文件(通常为/swapfile)。

三、恢复已有的Swap分区

若之前存在swap分区但未启用或因误操作删除,可按以下步骤恢复:

  1. 重新创建分区(若分区表损坏)
    使用fdisk工具重新划分swap分区(需替换/dev/sdX为实际磁盘,如/dev/sda):
    sudo fdisk /dev/sdX
    
    操作步骤:删除旧分区(d命令)、创建新分区(n命令,选择主分区/逻辑分区)、设置分区类型为“Linux swap”(t命令,输入82)、保存并退出(w命令)。
  2. 格式化分区为swap
    替换/dev/sdXn为新创建的分区(如/dev/sda2),运行:
    sudo mkswap /dev/sdXn
    
  3. 启用swap分区
    sudo swapon /dev/sdXn
    
  4. 设置开机自动启用
    编辑/etc/fstab文件(sudo nano /etc/fstab),添加以下行(替换为实际分区):
    /dev/sdXn none swap sw 0 0
    
    保存并退出(Ctrl+OEnterCtrl+X)。

四、创建并恢复Swap文件

若原swap为文件或需新增swap空间,可通过以下步骤创建swap文件:

  1. 创建swap文件
    使用fallocate(推荐,速度快)或dd命令创建指定大小的文件(如4GB):
    sudo fallocate -l 4G /swapfile
    
    sudo dd if=/dev/zero of=/swapfile bs=1M count=4096  # count=4096表示4GB(1M×4096)
    
  2. 设置文件权限
    为保证安全,仅允许root用户读写:
    sudo chmod 600 /swapfile
    
  3. 格式化文件为swap
    sudo mkswap /swapfile
    
  4. 启用swap文件
    sudo swapon /swapfile
    
  5. 设置开机自动启用
    编辑/etc/fstab文件,添加以下行:
    /swapfile none swap sw 0 0
    
    保存并退出。

五、恢复备份的Swap

若之前备份过swap分区或文件,可按以下步骤恢复:

1. 恢复Swap分区

  • 解压备份镜像(若压缩)
    sudo gunzip /path/to/backup/swap_backup.img.gz
    
  • 恢复镜像到分区
    替换/dev/sdXn为目标分区(需与备份时的分区大小一致):
    sudo dd if=/path/to/backup/swap_backup.img of=/dev/sdXn bs=4M
    
  • 激活分区
    sudo swapon /dev/sdXn
    

2. 恢复Swap文件

  • 复制文件到原位置
    sudo cp /path/to/backup/swapfile /swapfile
    
  • 设置权限
    sudo chmod 600 /swapfile
    
  • 重新格式化并启用
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
  • 更新/etc/fstab
    确保文件路径正确(若路径未变则无需修改)。

六、验证恢复结果

恢复完成后,通过以下命令确认swap是否正常工作:

  • 查看已启用的swap
    sudo swapon --show
    
    应显示恢复的swap分区或文件(如/dev/sda2/swapfile)。
  • 查看swap总量
    free -h
    
    “Swap”行的数值应与恢复的大小一致。

七、常见问题排查

  • swap无法启用
    运行dmesg | grep swapjournalctl -xe | grep swap查看系统日志,排查错误原因(如分区类型错误、文件系统损坏)。
  • 文件系统错误
    若swap分区为ext4等文件系统,可运行sudo fsck /dev/sdXn修复(需先swapoff分区)。

0