Ubuntu交换区(Swap)扩容实现方式

 更新时间:2026年02月09日 09:14:29   作者:饭来_  
本文介绍了如何在Linux系统中调整Swap分区和Swap文件的大小,包括关闭当前Swap、删除旧的Swap、创建新的Swap(文件或分区)、格式化新Swap、启用新Swap、验证新Swap状态以及编辑fstab文件以确保新Swap在开机时自动挂载

一、简介 Swap 分区

Swap 分区是 Linux 操作系统中用于临时存储数据的一种特殊分区类型。它可以用来辅助物理内存RAM)工作,尤其是在内存不足时,系统会将一些数据从内存移动到 Swap 空间,从而释放内存供其他任务使用。Swap 的本质是磁盘上的一块区域(分区或文件),充当虚拟内存,一般我们可以分为两种类型:

  • Swap 分区:专门划分磁盘空间并设置为 swap 类型的分区。
  • Swap 文件:在文件系统中创建的一个普通文件,功能与 Swap 分区相同
sudo swapon --show
----------------------------------
# swap 文件
NAME      TYPE      SIZE USED PRIO
/swapfile file      4G   0B   -2

# swap 分区
NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition 4G   0B   -2

# /dev/sda2 是具体的硬盘类型,HDD/SSD 

Swap 分区是传统的虚拟内存实现方式,为操作系统提供内存不足时的备用空间。而在现代系统中(Ubuntu 18.04 开始,默认使用 Swap 文件),Swap 文件更常用,因为它灵活易调整,但对于特定场景(如系统休眠),Swap 分区仍然不可或缺。因此,在 Ubuntu 中调整 swap 交换分区的大小,具体取决于使用的是分区(Swap Partition) 还是交换文件(Swap File) 作为交换空间。

二、调整 Swap 文件大小

关闭(禁用)当前 Swap 文件

sudo swapoff /swapfile

删除当前的 Swap 文件

sudo rm /swapfile

创建新的 Swap 文件并指定大小,以4G为例

sudo dd if=/dev/zero of=/swapfile bs=1G count=4   # count=4表示创建4个1GB的块

权限设置

sudo chmod 600 /swapfile

格式化新的 Swap 文件

sudo mkswap /swapfile

启用新的 Swap 文件

sudo swapon /swapfile

验证是否启用了新的 Swap

sudo swapon --show

编辑 fstab 文件,确保 /swapfile 开机自动挂载

sudo vim /etc/fstab

在 fstab 文件中插入(已有可忽略这步)

/swapfile none swap sw 0 0

查看当前的 Swap 状态

free -h

三、调整 Swap 分区大小

关闭(禁用)当前 Swap 文件

sudo swapoff -a  

使用命令行找到 Swap 分区

fdisk -l 或者 lsblk -f   # 后续会频繁使用,请关注工具的显示格式

删除旧的 Swap 分区(磁盘分区另见文章),这里为了展示,没有删除旧的交换分区只是停用,可以根据自己情况酌情选择删除与否。

创建新分区并指定大小

将新分区格式化为 Swap 类型

sudo mkswap /dev/nvme0n1p12  # 换成自己的分区名

启用新的 Swap 分区

sudo swapon /dev/nvme0n1p12

验证是否启用了新的 Swap 分区

sudo swapon --show

编辑 fstab 文件,确保 Swap 分区开机自动挂载

sudo vim /etc/fstab

在 fstab 文件中插入(注意将原交换区注释掉)

/dev/nvme0n1p12 none swap sw 0 0

查看当前的 Swap 状态

free -h

总结

从 Ubuntu 18.04 开始,Swap 文件已成为默认设置,手动创建 Swap 分区已不是必要步骤。

在安装系统的时候,可以只指定 根目录(/)Home 目录(/home) 的分区大小,而不专门为 Swap 创建分区,安装程序会自动创建一个 Swap 文件。

安装程序会根据物理内存大小自动计算(通常是内存大小的等量或两倍,具体取决于内存和硬盘空间的实际情况)。以上是两种交换区扩容的方法。

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux下进程的CPU配置与线程绑定过程

    Linux下进程的CPU配置与线程绑定过程

    本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配,提升系统性能与实时任务响应效率,同时强调操作验证及注意事项
    2025-07-07
  • 如何解决win10与Ubuntu16.04时间不同步的问题的方法

    如何解决win10与Ubuntu16.04时间不同步的问题的方法

    本篇文章主要介绍了如何解决win10与Ubuntu16.04时间不同步的问题的方法,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • Linux下查看压缩文件内容的10种方法(小结)

    Linux下查看压缩文件内容的10种方法(小结)

    这篇文章主要介绍了Linux下查看压缩文件内容的10种方法(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Linux中如何查询运行文件的全路径的方法

    Linux中如何查询运行文件的全路径的方法

    这篇文章主要介绍了Linux中如何查询运行文件的全路径的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • ubuntu16.04搭建nfs服务的方法

    ubuntu16.04搭建nfs服务的方法

    今天小编就为大家分享一篇关于ubuntu16.04搭建nfs服务的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Linux seq命令的使用方法

    Linux seq命令的使用方法

    这篇文章主要介绍了Linux seq命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Linux服务器磁盘空间不足的排查与处理方法

    Linux服务器磁盘空间不足的排查与处理方法

    在日常维护 Linux 服务器时,我们经常会遇到这样的场景:系统报错提示磁盘空间不足,今天就以一次真实的排查过程为例,分享如何科学地处理大文件与日志,需要的朋友可以参考下
    2025-12-12
  • 详解linux 关机命令总结

    详解linux 关机命令总结

    本篇文章主要介绍了linux 关机命令总结,linux下常用的关机命令有:shutdown、halt、poweroff、init,有兴趣的可以了解一下。
    2016-12-12
  • 详解Linux用户态与内核态通信的几种方式

    详解Linux用户态与内核态通信的几种方式

    这篇文章主要介绍了详解Linux用户态与内核态通信的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Ubuntu系统下USB无线网卡无法识别的解决方案

    Ubuntu系统下USB无线网卡无法识别的解决方案

    当无线网卡插入Ubuntu系统后,lsusb显示设备已识别,但网络管理工具无反应,iwconfig找不到无线接口,核心问题是系统识别了USB设备,却未正确加载无线网卡驱动,本文给大家介绍了Ubuntu系统下USB无线网卡无法识别的解决方案,需要的朋友可以参考下
    2025-08-08

最新评论