当前位置: 首页 > backend >正文

如何创建交换空间

在 Linux 系统中,交换空间(Swap Space)扮演着至关重要的角色,它相当于系统的 “备用内存”。当物理内存(RAM)不足以满足程序运行需求时,系统会将部分暂时不用的数据转移到交换空间中,从而保证系统的稳定运行。本文将详细介绍交换空间的概念,并分步骤讲解如何在 Linux 系统中创建和管理交换空间。

一、交换空间基础:概念与作用

1. 什么是交换空间?

交换空间是 Linux 系统中专门用于临时存储数据的磁盘空间,它可以是一个独立的分区(Swap Partition),也可以是一个普通文件(Swap File)。与物理内存相比,交换空间的读写速度较慢,但它能有效缓解物理内存不足的问题。

二、创建交换空间前的准备工作

在创建交换空间前,需要完成以下准备工作,确保操作的安全性和准确性。

1. 检查当前系统交换空间状态

首先,通过命令查看系统是否已存在交换空间,以及交换空间的大小和类型。

# 查看交换空间详细信息(推荐)
swapon --show# 或查看简洁的交换空间统计
free -h
  • swapon --show 会显示交换空间的路径(如/dev/sda5/swapfile)、类型(partitionfile)和大小。
  • free -h 中的Swap列会显示总交换空间、已使用和可用空间(单位为 GB 或 MB)。

2. 确定交换空间大小


3. 选择交换空间类型

三、创建交换分区

1. 检查磁盘分区状态

首先通过fdisklsblk命令查看磁盘分区情况,确认是否有未分配空间:

# 查看磁盘分区详细信息(推荐,需安装lsblk:sudo apt install util-linux 或 sudo yum install util-linux)
lsblk# 或使用fdisk(传统命令)
sudo fdisk -l

例如,若磁盘/dev/sda有未分配空间(标记为free),则可直接在未分配空间上创建交换分区;若没有未分配空间,需先缩小现有分区(如/dev/sda5)腾出空间。

2. 创建交换分区

使用fdisk命令对磁盘进行分区操作,示例:在/dev/sda磁盘上创建 8GB 的交换分区:

# 进入fdisk分区工具(指定目标磁盘,如/dev/sda)
sudo fdisk /dev/sda

进入fdisk交互模式后,按以下步骤操作:

  1. 输入n(新建分区),选择分区类型(p为 primary 主分区,e为 extended 扩展分区,根据磁盘分区表类型选择,MBR 磁盘最多 4 个主分区,GPT 磁盘无限制)。
  2. 输入分区编号(如5,根据现有分区编号顺延)。
  3. 输入起始扇区(默认即可,直接按回车)。
  4. 输入结束扇区(指定分区大小,如+8G表示分区大小为 8GB,按回车确认)。
  5. 输入t(修改分区类型),选择刚创建的分区编号(如5)。
  6. 输入13(Linux 交换分区的类型代码,fdisk会自动识别为Linux swap)。
  7. 输入w(保存分区表并退出)。

退出fdisk后,重启系统或重新加载磁盘分区表,让系统识别新分区:

# 重新加载磁盘分区表(无需重启,推荐)
sudo partprobe /dev/sda# 或重启系统(若partprobe无效)
sudo reboot

3. 格式化交换分区

使用mkswap命令将新创建的分区格式化为交换文件系统(示例中交换分区为/dev/sda5,需替换为实际分区路径):

sudo mkswap /dev/sda5

执行后会输出类似以下信息,表示格式化成功:

Setting up swapspace version 1, size = 8 GiB (8589934592 bytes)
no label, UUID=yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy

4. 启用交换分区

使用swapon命令启用交换分区,让系统立即使用:

sudo swapon /dev/sda5

启用后,通过swapon --showfree -h验证:

swapon --show
# 输出示例:NAME      TYPE       SIZE USED PRIO
#          /dev/sda5  partition  8G   0B   -2

5. 设置开机自动挂载交换分区

将交换分区添加到/etc/fstab文件中,实现开机自动挂载:

# 查看交换分区的UUID(推荐使用UUID,避免分区路径变化导致挂载失败)
sudo blkid /dev/sda5
# 输出示例:/dev/sda5: UUID="yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" TYPE="swap"# 将交换分区信息添加到/etc/fstab
sudo echo "UUID=yyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy swap swap defaults 0 0" >> /etc/fstab

重启系统后,通过swapon --show验证是否自动挂载成功。

http://www.xdnf.cn/news/19736.html

相关文章:

  • Elasticsearch(高性能分布式搜索引擎)01
  • Day20_【机器学习—逻辑回归 (2)—分类评估方法】
  • 硬件基础与c51基础
  • 深入剖析Spring Boot中Spring MVC的请求处理流程
  • Linux(2)|入门的开始:Linux基本指令(2)
  • FPGA实现流水式排序算法
  • 开源 C++ QT Widget 开发(十二)图表--环境监测表盘
  • CouponHub项目开发记录-基于责任链来进行创建优惠券模板的参数验证
  • Django get_or_create 方法详解
  • centos9 docker启动不起来,docker启动发生堵塞问题!
  • 少儿舞蹈小程序(6)打造您的“活”名片:动态展示机构实力
  • MySQL的utf8 、utf8mb3 和 utf8mb4 的区别和排序规则
  • Python 工具: Windows 带宽监控工具
  • JavaScript考核
  • Tomcat 全面指南:从目录结构到应用部署与高级配置
  • mit6.031 2023spring 软件构造 笔记 Specification
  • 【LeetCode 热题 100】1143. 最长公共子序列——(解法二)递推
  • 2025 大学生职业准备清单:从数据到财会,这些核心证书值得考
  • 【IO】多进程编程课后练习
  • 单多行文本溢出
  • Selenium核心技巧:元素定位与等待策略
  • ArkUI核心功能组件使用
  • 【线段树】3525. 求出数组的 X 值 II|2645
  • Spring 事务原理解析:AOP 的一次完美落地
  • 深度学习——基于卷积神经网络实现食物图像分类【4】(使用最优模型)
  • 广度优先搜索(BFS, Breadth-First Search)
  • 数字化转型的六大天问:你的项目为何失败
  • 数据开发工作了一年,准备跳槽,回顾一些面试常见问题,大数据面试题汇总与答案分享
  • 【3D打印】3D打印机首次使用心得
  • 2025最新“Java 面试八股文 + 各大厂的面试真题”限时开源