Linux创建交换分区方式

 更新时间:2026年01月27日 09:06:12   作者:杨了个杨8982  
交换分区(SwapPartition)在Linux系统中作为内存的补充,当物理内存不够用时,将部分不使用的内存数据移动到交换分区中,交换分区大小应依据系统内存大小确定,通常为内存大小的1-2倍,创建交换分区的方法有两种:使用物理分区创建和使用文件创建内存交换文件

交换分区(Swap Partition)在 Linux 系统中是一种特殊的磁盘分区。它的主要功能是作为内存(RAM)的补充,当系统的物理内存(Random Access Memory)不够用的时候,操作系统会将一部分暂时不使用的内存数据移动到交换分区中,从而为当前正在运行的程序腾出物理内存空间。

这就好比是一个备用的 “仓库”,当主仓库(物理内存)装满时,可以把一些暂时不用的 “货物”(数据)存放到备用仓库(交换分区)里。

交换分区大小的选择:交换分区的大小一般依据系统的内存大小来确定。

系统内存(G)交换分区大小(G)说明
<42-4如果系统内存小于 4GB,交换分区大小通常建议设置为内存大小的 1 - 2 倍
4-1612对于内存大小在 4GB - 16GB 之间的系统,交换分区可以设置为内存大小的 1.5 倍左右
>1616-32当系统内存大于 16GB 时,交换分区大小可以设置为内存大小的 0.5 - 1 倍

方法一:使用物理分区创建Swap分区

1.检查磁盘空间

使用命令lsblk来查看磁盘的分区情况和可用空间

[root@centos7-171 ~]# lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                            8:0    0   50G  0 disk
├─sda1                         8:1    0    1G  0 part /boot
└─sda2                         8:2    0   49G  0 part
  ├─centos_centos7--171-root 253:0    0 45.1G  0 lvm  /
  └─centos_centos7--171-swap 253:1    0  3.9G  0 lvm  [SWAP]
sdb                            8:16   0    5G  0 disk
sr0                           11:0    1  4.4G  0 rom
[root@centos7-171 ~]#

由上可以看出,sdb盘共5G容量,剩余5G可用,下面就使用该盘创建4G的交换分区。

2.创建分区

命令:fdisk /dev/sdb

(1)建立新的分区:

  • 输入 p 打印现有分区情况(还没有分区)
  • 输入 n 新建分区
  • 输入 p 为建立主分区(此时的p是在n后的,不是打印)
  • 分区号选择可以直接回车,选择默认
  • 分区起始位置可以直接回车,选择默认
  • 分区结束位置输入 +4G(创建4G大小的分区)
  • 输入 p 打印分区情况,发现已建立一个分区/dev/sdb1,但是此分区为 Linux 格式

(2)改变系统标识符:

  • 输入 t 改变分区1的属性
  • 输入 L 查看有个属性对应的命令
  • 输入 82改变分区1为 Linux swap标识
  • 输入 p 打印分区情况,发现建立的分区 /dev/sdb1 为 Linux swap
  • 输入 w 保存并退出分区
[root@centos7-171 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x3975c095 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3975c095

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+4G
分区 1 已设置为 Linux 类型,大小设为 4 GiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT
1e  隐藏的 W95 FAT1 80  旧 Minix
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x3975c095

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8390655     4194304   82  Linux swap / Solaris

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@centos7-171 ~]#

3.格式化分区

创建分区后,需要将其格式化为交换分区格式,使用mkswap命令。

[root@centos7-171 ~]# mkswap /dev/sdb1
正在设置交换空间版本 1,大小 = 4194300 KiB
无标签,UUID=89d90739-5def-44aa-9273-d3dea6310714
[root@centos7-171 ~]#

4.永久挂载(/etc/fstab)

blkid    #查询分区的UUID
 
#将挂载内容配置到/etc/fatab文件下,实现永久挂载
echo 'UUID=89d90739-5def-44aa-9273-d3dea6310714 swap swap defaults 0 0' >> /etc/fstab

5.启用交换分区

使用swapon命令来启用新创建的交换分区。

swapon -a    //刷新swap分区,测试 fstab 挂载是否正常
swapon -s	//列出正在使用的Swap分区设备

方法二:使用文件创建内存交换文件

dd if=/dev/zero of=/var/swapd bs=1G count=4    #创建交换文件
mkswap /var/swapd        #格式化为交换空间
chmod 0644 /var/swapd        #设置文件权限
echo '/var/swapd swap swap default 0 0' >> /etc/fstab    #配置永久挂载
swapon -a    #刷新swap分区,测试 fstab 挂载是否正常

dd命令的用法:

dd if=/dev/zero of=/var/swapd bs=1G count=4
  • if 是input file的意思(输入文件),/dev/zero是一直输入0的设备
  • of 是output file的意思(输出文件),一般指定到目标文件
  • bs 是每个block 的大小,就像文件系统那样的block意义
  • count 则是总共几个bs的意思,故bs*count就是文件容量
  • of 的目标文件不需要提前touch创建,如果文件不存在会自动创建

总结

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

相关文章

  • linux解决Tomcat内存溢出的问题

    linux解决Tomcat内存溢出的问题

    下面小编就为大家带来一篇linux解决Tomcat内存溢出的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • linux下vsftpd的安装及配置使用详细步骤(推荐)

    linux下vsftpd的安装及配置使用详细步骤(推荐)

    这篇文章主要介绍了linux下vsftpd的安装及配置使用详细步骤 ,需要的朋友可以参考下
    2018-01-01
  • 详解搭建ubuntu版hadoop集群

    详解搭建ubuntu版hadoop集群

    本篇文章主要介绍了详解搭建ubuntu版hadoop集群,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Ubuntu20.04防火墙设置简易教程(小白)

    Ubuntu20.04防火墙设置简易教程(小白)

    这篇文章主要介绍了Ubuntu20.04防火墙设置简易教程(小白),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 在Linux中配置SMB共享的完整指南

    在Linux中配置SMB共享的完整指南

    SMB是一种网络文件共享协议,广泛用于 Windows、Linux 等系统间的文件共享,在渗透测试(pentest)场景中,配置 SMB 共享可以方便地在测试环境中传输工具、Payload 或测试数据,本文将详细介绍如何在 Linux 系统中配置 SMB 共享,需要的朋友可以参考下
    2025-11-11
  • linux ssh 使用深度解析(key登录详解)

    linux ssh 使用深度解析(key登录详解)

    这篇文章主要介绍了linux ssh 使用深度解析(key登录详解),需要的朋友可以参考下
    2015-07-07
  • linux系统sudo命令详解

    linux系统sudo命令详解

    Sudo是Unix/Linux平台上的一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的“权利”,让他们执行一些只有超级用户或其他 特许用户才能完成的任务
    2014-03-03
  • 如何修改linux操作系统下文件颜色提示

    如何修改linux操作系统下文件颜色提示

    修改Linux下文件颜色提示的方法:拷贝`DIR_COLORS`文件到home目录,编辑并修改颜色代码,保存后使用`eval dircolors ~/.dircolors`使更改生效,如果`ls`命令没有变化,可以使用`ls --color=auto`,在`~/.cshrc`中添加别名alias ls='ls --color=auto'
    2025-01-01
  • Linux 配置静态IP的方法

    Linux 配置静态IP的方法

    这篇文章主要介绍了Linux 配置静态IP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • centOS7 下利用iptables配置IP地址白名单的方法

    centOS7 下利用iptables配置IP地址白名单的方法

    下面小编就为大家带来一篇centOS7 下利用iptables配置IP地址白名单的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论