良许Linux教程网 干货合集 Linux 上创建或扩展交换分区的方法!

Linux 上创建或扩展交换分区的方法!

用户可以在安装Linux操作系统时或其他必要时创建交换空间。如果在安装Linux时忘记创建交换空间,或者想要增加交换分区的空间,随时都可以再创建或增加。

有时候,在升级RAM的过程中,需要增加一些交换分区空间。例如,如果将系统的RAM从1GB升级到2GB,就需要将交换分区空间从2GB增加到4GB,因为它的容量应是物理RAM容量的两倍。

交换空间用作虚拟内存,在物理内存(RAM)使用满时保留在磁盘上。如果系统在RAM已满时需要更多内存资源,非活动页面将被移到交换空间,从而帮助系统执行应用程序更长时间,但不应将其作为RAM的扩展。

建议创建一个专用的交换分区,但如果没有可用的分区,则可以使用交换文件或交换分区与交换文件的组合。通常建议交换空间至少为4GB,用户可以根据自己的需求和环境创建交换空间。

我注意到大多数虚拟机和云服务器都没有交换分区,因此在这种情况下,我们可以使用以下三种方法来创建、扩展或增加交换空间。

如何检测当前交换分区大小

通过 free & swapon 命令来检测当前的交换分区空间的大小。

$ free -h
total used free shared buff/cache available
Mem: 2.0G 1.3G 139M 45M 483M 426M
Swap: 2.0G 655M 1.4G
$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda5 partition 2G 655.2M -1

上面的输出显示了当前的交换分区空间是 2GB 。

方法 1 : 通过 fallocate 命令创建交换文件

fallocate 程序是立即创建预分配大小的文件的最佳方法。

下面这个命令会创建一个 1GB 大小 的 /swapfile。

$ sudo fallocate -l 1G /swapfile

检查一下创建的文件的大小是否正确。

$ ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Jun 7 09:49 /swapfile

将该文件的权限设置为 600 这样只有 root 用户可以访问这个文件。

$ sudo chmod 600 /swapfile

通过运行以下的命令来将此文件转换为交换文件。

$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=cda50e0e-41f3-49c7-af61-b8cb4a33a464

通过运行以下的命令来使交换文件生效。

$ sudo swapon /swapfile

将新创建的交换文件添加到 fstab 文件中,这样交换分区空间的修改即使在重启后也可以生效。

$ vi /etc/fstab
/swapfile swap swap defaults 0 0

检查一下新创建的交换文件。

$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda5 partition 2G 657.8M -1
/swapfile file 1024M 0B -2

现在我可以看到一个新的 1GB 的 /swapfile1 文件了。重启系统以使新的交换文件生效。

方法 2 : 通过 dd 命令来创建交换文件

dd 命令是另一个实用程序,可以帮助我们立即创建预分配大小的文件。

以下 dd 命令将创建 1GB 的 /swapfile1。

$ sudo dd if=/dev/zero of=/swapfile1 bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 16.6154 s, 64.6 MB/s

详解:

  • if=/dev/zero 是输入文件,/dev/zero 是类 Unix 操作系统中的一个特殊文件,它提供从它读取的尽可能多的空字符(ASCII NUL,0x00)。
  • of=/swapfile1 设置输出文件。
  • bs=1G 一次性读写的大小为 1GB
  • count=1 仅复制一个输入块

检查一下创建的文件的大小是否正确。

$ ls -lh /swapfile1
-rw-r--r-- 1 root root 1.0G Jun 7 09:58 /swapfile1

将该文件的权限设置为 600 这样只有 root 用户可以访问这个文件。

$ sudo chmod 600 /swapfile1

通过运行以下的命令来将此文件转换为交换文件。

$ sudo mkswap /swapfile1
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=96def6d7-b2da-4954-aa72-aa32316ec993

通过运行以下的命令来使交换文件生效。

$ sudo swapon /swapfile1

将新创建的交换文件添加到 fstab 文件中,这样交换分区空间的修改即使在重启后也可以生效。

$ vi /etc/fstab
/swapfile1 swap swap defaults 0 0

检查新创建的交换文件。

$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda5 partition 2G 1.3G -1
/swapfile file 1024M 0B -2
/swapfile1 file 1024M 0B -3

现在我可以看到一个新的 1GB 的 /swapfile1 了。重启系统以使新的交换文件生效。

方法 3 : 通过硬盘分区来创建交换文件

我们也推荐使用通过硬盘分区的方式来创建交换分区。

如果你已经在你的另一个硬盘上通过 fdisk 命令创建了一个新的分区,假设我们已经创建了一个叫做 /dev/sda4 的分区。

使用 mkswap 命令来将这个分区转换成交换分区。

$ sudo mkswap /dev/sda4

通过运行以下命令来使交换文件生效。

$ sudo swapon /dev/sda4

把新增的交换文件添加到 fstab 文件中,这样即使是重启了系统交换分区的修改也能生效。

$ vi /etc/fstab
/dev/sda4 swap swap defaults 0 0
检查新创建的交换文件。
$ swapon --show
NAME TYPE SIZE USED PRIO
/dev/sda5 partition 2G 1.3G -1
/swapfile file 1024M 0B -2
/swapfile1 file 1024M 0B -3
/dev/sda4 partition 1G 0B -4

我可以看到新的交换分区 1GB 的 /dev/sda4。重启系统就可以使用新的交换分区了。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部