当前位置: 代码网 > 服务器>服务器>Linux > Linux创建交换分区方式

Linux创建交换分区方式

2026年01月27日 Linux 我要评论
交换分区(swap partition)在 linux 系统中是一种特殊的磁盘分区。它的主要功能是作为内存(ram)的补充,当系统的物理内存(random access memory)不够用的时候,操

交换分区(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创建,如果文件不存在会自动创建

总结

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

(0)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com