增加Ubuntu Swap分区/文件大小的步骤
在调整前,先确认系统当前的Swap使用情况,包括Swap类型(分区/文件)、大小及剩余空间:
sudo swapon --show # 查看已启用的Swap设备及大小
free -h # 查看内存与Swap的总使用情况(人类可读格式)
若系统未使用LVM或不想调整现有分区,创建新的Swap文件是最便捷的方式。
使用fallocate(快速,推荐)或dd(兼容性好)命令创建文件(以新增4GB为例):
sudo fallocate -l 4G /swapfile # 创建4GB的Swap文件(需足够磁盘空间)
# 若fallocate不可用,用dd命令:
# sudo dd if=/dev/zero of=/swapfile bs=1G count=4 # 1G×4=4GB
Swap文件仅能被root读写,防止未经授权的访问:
sudo chmod 600 /swapfile
将普通文件转换为Swap可识别的文件系统:
sudo mkswap /swapfile
立即激活新增的Swap空间:
sudo swapon /swapfile
/etc/fstab编辑系统启动配置文件,确保重启后自动启用:
sudo nano /etc/fstab
在文件末尾添加以下行(若已有Swap文件条目,需修改大小或合并):
/swapfile none swap sw 0 0
按Ctrl+X→Y→Enter保存并退出。
若系统使用传统MBR/GPT分区表且存在独立的Swap分区(如/dev/sdaX),可通过以下步骤扩展:
sudo swapoff /dev/sdXn # 替换为你的Swap分区(如/dev/sda2)
使用图形化工具(如GParted)或命令行工具(如parted)扩展分区:
sudo gparted
找到Swap分区(通常标记为“swap”),右键选择“Resize/Move”,拖动分区边缘或输入新大小,点击“Apply”确认。sudo parted /dev/sdX
(parted) resizepart X # X为分区号(如2)
新结束位置(如+4G)或直接输入新大小
(parted) quit
sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn
sudo swapon --show
free -h
若系统使用LVM(逻辑卷管理),扩展Swap更灵活,无需调整物理分区:
sudo swapoff /dev/mapper/vgname-swaplv # 替换为你的Swap逻辑卷(如/dev/mapper/ubuntu--vg-swap_1)
假设需要增加2GB,先确保卷组(VG)有足够空闲空间:
sudo lvextend -L +2G /dev/mapper/vgname-swaplv # 增加2GB
# 或扩展至指定大小(如20GB):
# sudo lvextend -L 20G /dev/mapper/vgname-swaplv
sudo mkswap /dev/mapper/vgname-swaplv # 重新格式化(会清除原有数据,但Swap无数据丢失风险)
sudo swapon /dev/mapper/vgname-swaplv
sudo swapon --show
free -h
600权限,防止恶意访问。swappiness参数(默认60,值越低越少用Swap):sudo sysctl vm.swappiness=30 # 临时设置(重启失效)
echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf # 永久设置
通过以上方法,可根据系统需求灵活增加Ubuntu的Swap空间,提升系统在内存不足时的稳定性。