Linux:使用 dd、mkswap 和 swapon 添加交换分区的方法

举报
Tiamo_T 发表于 2022/03/22 11:07:48 2022/03/22
【摘要】 我想为我的 Linux 系统添加更多交换分区。你能用清晰的例子解释如何增加交换分区吗? 您可以使用专用硬盘分区来添加新的交换分区,也可以在现有文件系统上创建交换文件并将其用作交换分区。

我想为我的 Linux 系统添加更多交换分区。你能用清晰的例子解释如何增加交换分区吗?

您可以使用专用硬盘分区来添加新的交换分区,也可以在现有文件系统上创建交换文件并将其用作交换分区。

系统当前使用了多少交换分区?

Free 命令显示交换分区。free -k 以 KB 显示输出。

# free -k 
             total used free shared buffers cached 
Mem: 3082356 2043700 1038656 0 50976 1646268 
-/+ buffers/cache: 346456 2735900 
Swap:       4192956           0 4192956

带有选项 -s 的 Swapon 命令以 KB 显示当前交换分区。

# swapon -s 
Filename Type Size Used Priority 
/dev/sda2 partition 4192956 0 -1

Swapon -s,与以下相同。

# cat /proc/swaps
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1

方法 1:使用硬盘分区获得额外的交换分区

如果您有额外的硬盘(或现有磁盘中的可用空间),请使用 fdisk 命令创建一个分区。让我们假设这个分区被称为 /dev/sdc1

现在使用 mkswap 命令将这个新创建的分区设置为交换区,如下所示。

# mkswap /dev/sdc1

使用 swapon 命令启用交换分区以供使用,如下所示。

# swapon /dev/sdc1

要使此交换空间分区即使在重新启动后也可用,请将以下行添加到 /etc/fstab 文件中。

# cat /etc/fstab
/dev/sdc1               swap                    swap    defaults        0 0

验证新创建的交换区是否可供您使用。

# swapon -s
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1
/dev/sdc1                       partition       1048568 0       -2

# free -k
             total       used       free     shared    buffers     cached
Mem:       3082356    3022364      59992          0      52056    2646472
-/+ buffers/cache:     323836    2758520
Swap:      5241524          0    5241524

注意:在 swapon -s 命令的输出中,如果交换空间是从磁盘分区创建的,则 Type 列将显示“partition”。

方法 2:使用文件获取额外的交换分区

如果您没有任何额外的磁盘,您可以在文件系统的某处创建一个文件,并将该文件用作交换空间。

以下 dd 命令示例在 /root 目录下创建一个名为“myswapfile”的交换文件,大小为 1024MB (1GB)。

# dd if=/dev/zero of=/root/myswapfile bs=1M count=1024
1024+0 records in
1024+0 records out

# ls -l /root/myswapfile
-rw-r--r--    1 root     root     1073741824 Aug 14 23:47 /root/myswapfile

更改交换文件的权限,以便只有 root 可以访问它。

# chmod 600 /root/myswapfile

使用 mkswap 命令将此文件作为交换文件。

# mkswap /root/myswapfile
Setting up swapspace version 1, size = 1073737 kB

启用新创建的交换文件。

# swapon /root/myswapfile

要使此交换文件即使在重新启动后也可用作交换区域,请将以下行添加到 /etc/fstab 文件中。

# cat /etc/fstab
/root/myswapfile               swap                    swap    defaults        0 0

验证新创建的交换区是否可供您使用。

# swapon -s
Filename                        Type            Size    Used    Priority
/dev/sda2                       partition       4192956 0       -1
/root/myswapfile                file            1048568 0       -2

# free -k
             total       used       free     shared    buffers     cached
Mem:       3082356    3022364      59992          0      52056    2646472
-/+ buffers/cache:     323836    2758520
Swap:      5241524          0    5241524

注意:在 swapon -s 命令的输出中,如果交换空间是从交换文件创建的,则类型列将显示“文件”。

如果您不想重新启动来验证系统是否占用了 /etc/fstab 中提到的所有交换空间,您可以执行以下操作,这将禁用和启用 /etc/fstab 中提到的所有交换分区

# swapoff -a

# swapon -a
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。