温馨提示×

怎样迁移debian swap分区

小樊
44
2026-10-25 13:30:36
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)中,“迁移 swap 分区”通常指把 swap 从旧分区换到新分区(或文件)。下面按常见场景一步一步说明。


一、情况确认

先查看当前 swap 使用情况:

swapon --show
free -h
lsblk

假设:

  • 旧 swap:/dev/sda2
  • 新 swap:/dev/sdb1(或新建一个 swap 文件)

二、方案 A:迁移到新的 swap 分区

1. 关闭旧 swap

sudo swapoff /dev/sda2

如果提示“device is busy”,先关闭所有使用 swap 的程序,或重启后再操作。


2. 在新分区上创建 swap

sudo mkswap /dev/sdb1

3. 启用新 swap

sudo swapon /dev/sdb1

验证:

swapon --show

4. 修改 /etc/fstab

编辑:

sudo nano /etc/fstab

把旧 swap 行:

/dev/sda2 none swap sw 0 0

改为:

/dev/sdb1 none swap sw 0 0

或推荐使用 UUID(更稳妥):

sudo blkid /dev/sdb1
UUID=xxxx-xxxx none swap sw 0 0

三、方案 B:迁移到 swap 文件(无需分区)

1. 创建 swap 文件

sudo fallocate -l 4G /swapfile
# 如果 fallocate 不支持:
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

2. 设置权限

sudo chmod 600 /swapfile

3. 格式化为 swap

sudo mkswap /swapfile

4. 启用

sudo swapon /swapfile

5. 写入 fstab

/swapfile none swap sw 0 0

四、彻底移除旧 swap(可选)

如果是分区:

sudo swapoff /dev/sda2

然后从 /etc/fstab 删除对应行,旧分区可重新格式化使用。


五、常见问题

1. swap 太大/太小?

一般:

  • 内存 ≤ 2GB:swap = 2×内存
  • 内存 2–8GB:swap = 内存大小
  • 内存 > 8GB:4–8GB 足够(除非用休眠)

2. 休眠(hibernate)要求

休眠需要:

swap ≥ 内存大小

如果你愿意,可以告诉我:

  • 是 物理机还是虚拟机
  • 是 分区 → 分区 还是 分区 → 文件
  • 当前磁盘布局(lsblk 输出)

我可以给你更精确的命令。

0 踩