Ubuntu Swap恢复方法
在进行swap恢复操作前,请务必备份重要数据(如/home目录、系统配置文件等),避免磁盘操作导致数据丢失。同时,确保系统处于稳定状态,无其他进程占用swap空间。
在恢复前,需确认系统当前swap的使用情况,判断是否需要恢复以及恢复的目标(文件或分区):
sudo swapon --show,若有输出则表示swap已启用(显示设备名称/文件路径及大小);若无输出则表示未启用。free -h,在“Swap”行查看总大小、已用及空闲空间。lsblk或fdisk -l,找到类型为“Linux swap”的分区(如/dev/sda2)或swap文件(通常为/swapfile)。若之前存在swap分区但未启用或因误操作删除,可按以下步骤恢复:
fdisk工具重新划分swap分区(需替换/dev/sdX为实际磁盘,如/dev/sda):sudo fdisk /dev/sdX
操作步骤:删除旧分区(d命令)、创建新分区(n命令,选择主分区/逻辑分区)、设置分区类型为“Linux swap”(t命令,输入82)、保存并退出(w命令)。/dev/sdXn为新创建的分区(如/dev/sda2),运行:sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn
/etc/fstab文件(sudo nano /etc/fstab),添加以下行(替换为实际分区):/dev/sdXn none swap sw 0 0
保存并退出(Ctrl+O→Enter→Ctrl+X)。若原swap为文件或需新增swap空间,可通过以下步骤创建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)
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab文件,添加以下行:/swapfile none swap sw 0 0
保存并退出。若之前备份过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
sudo cp /path/to/backup/swapfile /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
/etc/fstab:恢复完成后,通过以下命令确认swap是否正常工作:
sudo swapon --show
应显示恢复的swap分区或文件(如/dev/sda2或/swapfile)。free -h
“Swap”行的数值应与恢复的大小一致。dmesg | grep swap或journalctl -xe | grep swap查看系统日志,排查错误原因(如分区类型错误、文件系统损坏)。sudo fsck /dev/sdXn修复(需先swapoff分区)。