linux服务器迁移swap文件地址

  |   0 评论   |   0 浏览

第一步:确认有足够空间创建新交换文件

首先确认 /data 分区有足够空间(至少 3.8G):

df -h /data

第二步:创建新的交换文件(热迁移)

# 1. 创建与旧文件大小相同的新交换文件(3.8G)
sudo fallocate -l 3.8G /data/swap.img
# 如果 fallocate 不支持,使用:
# sudo dd if=/dev/zero of=/data/swap.img bs=1M count=3891 status=progress

# 2. 设置正确权限
sudo chmod 600 /data/swap.img

# 3. 格式化为交换空间
sudo mkswap /data/swap.img

# 4. 启用新交换文件
sudo swapon /data/swap.img

# 5. 验证两个交换文件都已启用
sudo swapon --show

此时应该看到两个交换文件同时存在。

第三步:迁移数据并移除旧交换文件

# 1. 停用旧交换文件(数据会自动迁移到新文件或内存)
sudo swapoff /swap.img

# 2. 验证新交换文件正常工作
sudo swapon --show
free -h
# 应该只显示 /data/swap.img,且 USED 列显示约 3.1G

# 3. 删除旧文件
sudo rm /swap.img

第四步:更新开机配置

# 编辑 fstab
sudo nano /etc/fstab

# 找到类似下面这行并删除或注释掉:
# /swap.img none swap sw 0 0

# 添加新行:
/data/swap.img none swap sw 0 0

# 保存并退出
# 验证配置
sudo mount -a

特别注意点

  1. 操作顺序很重要 :一定要先创建并启用新交换文件,然后再停用旧的
  2. 关于 "3.1G 已使用"
    • 当前交换空间使用率很高(3.1G/3.8G ≈ 82%)
    • 但您的可用内存有 4.9G,足够容纳这些数据
    • 停用旧交换文件时,3.1G 数据会平滑迁移到新文件或内存中
  3. 如果 swapoff 卡住
    • 说明系统正在迁移数据,这是正常现象
    • 可以打开另一个终端,用 free -h 观察内存和交换空间的变化
    • 等待几分钟,直到命令完成
  4. 数据安全性
    • 整个过程中,交换空间始终存在,系统不会因为突然没有交换空间而出问题
    • 内存压力不会突然增大

您现在可以按照上述步骤操作。如果在执行 sudo swapoff /swap.img 时遇到任何问题(比如提示内存不足或命令卡住),请立即停止并告诉我具体情况。


标题:linux服务器迁移swap文件地址
作者:michael
地址:https://blog.junxworks.cn/articles/2026/03/19/1773901966535.html