服务器 > 服务器 > Linux

Linux创建交换分区方式

14人参与 2026-01-27 Linux

交换分区(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)建立新的分区:

(2)改变系统标识符:

[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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

SSH高效实现批量连接服务器的最佳实践与避坑指南

01-27

Ubuntu服务器关机后继续执行命令的三种方案

01-27

Centos7误删除grub2文件进行修复实践

01-27

Centos7下的根口令重置与GRUB修复方式

01-27

Ubuntu16.04修改开机密码方式

01-27

深入理解Linux内存管理之free命令的使用

01-27

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论