# 关闭当前分区文件
sudo swapoff /var/swapfile
# 重新创建并格式化
sudo rm /var/swapfile
sudo fallocate -l 4G /data/swapfile # 例如创建 4G swap 文件
sudo chmod 600 /data/swapfile # 确保 swap 文件仅 root 可读写
sudo mkswap /data/swapfile # 格式化为交换文件格式
# 启用新的文件
sudo swapon /data/swapfile
# 验证可用
swapon --show
# 输出示例
NAME TYPE SIZE USED PRIO
/data/swapfile file 4G 0B -2
# 更新/etc/fstab持久化
sudo vi /etc/fstab
# 找到旧行 /var/swapfile none swap sw 0 0 修改为
/data/swapfile none swap sw 0 0 # 保存退出
一键执行脚本
# 交互式
curl -fsSL https://ishere.cn/swap-migrate.sh | sudo bash
# 非交互式(直接 8G 到 /data/swapfile,保留 discard,删除旧文件)
curl -fsSL https://ishere.cn/swap-migrate.sh | sudo bash -s -- \
--path /data/swapfile --size 8G --keep-old=false --no-discard=false --yes
# dry-run 预演(不改动系统,只显示动作)
curl -fsSL https://ishere.cn/swap-migrate.sh | sudo bash -s -- --path /data/swapfile --size 8G --dry-run
