一、O、前言

下文介绍Centos7如何扩展swap分区以及扩展后如何还原的两种方式,一种通过mkswap方式格式化磁盘来扩展swap分区,另一种通过mkswap方式格式化文件来扩展swap分区。同时介绍了以上临时扩展和永久扩展两种方法介绍。

二、mkswap方式增加交换分区大小-临时扩容

2.1 添加磁盘

1、依次点击【硬盘】-【添加】-【下一步】。

img

2、选择虚拟磁盘类型为SCSI,点击【下一步】。

img

3、选择【创建新虚拟磁盘】,点击【下一步】。

img

4、指定磁盘大小为5G,点击【下一步】。

img

5、指定磁盘文件,默认即可,点击【完成】。

img

2.2 开始分区

具体可参考Centos7如何磁盘分区

1、执行ll /dev/sd*命令查看新加的磁盘/dev/sdc。

[root@test ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 Oct 14 12:00 /dev/sda
brw-rw---- 1 root disk 8,  1 Oct 14 12:00 /dev/sda1
brw-rw---- 1 root disk 8,  2 Oct 14 12:00 /dev/sda2
brw-rw---- 1 root disk 8, 16 Oct 14 12:00 /dev/sdb
brw-rw---- 1 root disk 8, 17 Oct 14 12:00 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Oct 14 12:00 /dev/sdb2
brw-rw---- 1 root disk 8, 21 Oct 14 12:00 /dev/sdb5
brw-rw---- 1 root disk 8, 22 Oct 14 12:00 /dev/sdb6
brw-rw---- 1 root disk 8, 32 Oct 14 12:00 /dev/sdc
brw-rw---- 1 root disk 8, 48 Oct 14 12:00 /dev/sdd

2、执行fdisk /dev/sdc命令开始磁盘分区。

[root@test ~]# fdisk /dev/sdc

3、输入【n】,新增一个磁盘分区。

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

4、输入【p】,输入分区号【1】,起始扇区位置为【2048】,因为只建一个主分区,分配大小为默认即可。

Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-10485759, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): 
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set

5、输入【p】查看分区是否成功。

Command (m for help): p

Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xce411376

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    10485759     5241856   83  Linu

6、输入【w】进行分区配置保存。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disk

2.3 格式化分区

1、执行mkswap /dev/sdc命令格式化/dev/sdc磁盘。

[root@test ~]# mkswap /dev/sdc
mkswap: /dev/sdc: warning: don't erase bootbits sectors
        (dos partition table detected). Use -f to force.
Setting up swapspace version 1, size = 5242876 KiB
no label, UUID=0da6696e-d586-46b1-90b7-bfb294721478

2.4 扩展swap分区

1、执行free -m命令查看Swap分区大小,方便等下对比看。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         414        1073          12         331        1249
Swap:          2047           0        204

2、执行swapon /dev/sdc命令扩展swap分区

[root@test ~]# swapon /dev/sdc

3、再次执行free -m命令查看Swap分区大小,观察到已扩充。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         422        1065          12         331        1241
Swap:          7167           0        7167

2.5 缩容swap分区

1、当以上面的扩容后想还原,可执行swapoff /dev/sdc命令还原swap分区。

[root@test ~]# swapoff /dev/sdc

2、再次执行free -m命令查看Swap分区大小,观察到已还原。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         424        1063          12         331        1238
Swap:          2047           0        2047

三、mkswap方式增加交换分区大小-永久扩容

1、执行vim /etc/fstab命令打开文件,文件末尾添加以下内容。

[root@test ~]# vim /etc/fstab

填写内容如下:
/dev/sdc swap swap defaults 0 0
#第一个0代表要不要备份
#第二个0代表开机自检

2、修改完成后,执行cat /etc/fstab命令查看/etc/fstab文件内容。

[root@test ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sun Oct  9 10:12:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=65631159-9da0-4215-a496-43c02f846e16 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdc swap swap defaults 0 0

四、使用文件制作扩展交换分区-临时扩容

4.1 添加磁盘

1、依次点击【硬盘】-【添加】-【下一步】。

img

2、选择虚拟磁盘类型为SCSI,点击【下一步】。

img

3、选择【创建新虚拟磁盘】,点击【下一步】。

img

4、指定磁盘大小为5G,点击【下一步】。

img

5、指定磁盘文件,默认即可,点击【完成】。

img

4.2 开始分区

具体可参考Centos7如何磁盘分区

1、执行ll /dev/sd*命令查看新加的磁盘/dev/sdd。

[root@test ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 Oct 14 12:00 /dev/sda
brw-rw---- 1 root disk 8,  1 Oct 14 12:00 /dev/sda1
brw-rw---- 1 root disk 8,  2 Oct 14 12:00 /dev/sda2
brw-rw---- 1 root disk 8, 16 Oct 14 12:00 /dev/sdb
brw-rw---- 1 root disk 8, 17 Oct 14 12:00 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Oct 14 12:00 /dev/sdb2
brw-rw---- 1 root disk 8, 21 Oct 14 12:00 /dev/sdb5
brw-rw---- 1 root disk 8, 22 Oct 14 12:00 /dev/sdb6
brw-rw---- 1 root disk 8, 32 Oct 14 12:00 /dev/sdc
brw-rw---- 1 root disk 8, 48 Oct 14 12:00 /dev/sdd

2、执行fdisk /dev/sdd命令开始磁盘分区。

[root@test ~]# fdisk /dev/sdd

3、输入【n】,新增一个磁盘分区。

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

4、输入【p】,输入分区号【1】,起始扇区位置为【2048】,因为只建一个主分区,分配大小为默认即可。

Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-10485759, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): 
Using default value 10485759
Partition 1 of type Linux and of size 5 GiB is set

5、输入【p】查看分区是否成功。

Command (m for help): p

Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9c3487a3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    10485759     5241856   83  Linux

6、输入【w】进行分区配置保存。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disk

4.3 创建文件

1、执行dd if=/dev/zero bs=1024m count=4 of=/swapfile命令创建一个名为swapfile且大小为4G的文件,其中bs代表一个多少m,count代表数量。

[root@test ~]# dd if=/dev/zero bs=1024M count=4 of=/swapfile
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB) copied, 3.00933 s, 1.4 GB/s

4.4 格式化分区

1、执行mkswap /swapfile命令格式化/dev/sdd磁盘。

[root@test ~]# swapon /swapfile
swapon: /swapfile: read swap header failed: Invalid argument
[root@test ~]# mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB

4.5 修改Swapfile权限

1、执行chmod 600 /swapfile命令将/swapfile权限设置为600

[root@test ~]# chmod 600 /swapfile 
[root@test ~]# ll /swapfile 
-rw------- 1 root root 4294967296 Oct 15 10:04 /swapfile

4.6 扩展swap分区

1、执行free -m命令查看Swap分区大小,方便等下对比看。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         414        1073          12         331        1249
Swap:          2047           0        204

2、执行swapon /swapfile命令扩展swap分区

[root@test ~]# swapon /swapfile

3、再次执行free -m命令查看Swap分区大小,观察到已扩充。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         457        1003          12         358        1190
Swap:          6143           0        6143

4.7 缩容swap分区

1、当以上面的扩容后想还原,可执行swapoff /swapfile命令还原swap分区。

[root@test ~]# swapoff /swapfile

2、再次执行free -m命令查看Swap分区大小,观察到已还原。

[root@test ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         424        1063          12         331        1238
Swap:          2047           0        2047

五、使用文件制作扩展交换分区-永久扩容

1、执行vim /etc/fstab命令打开文件,文件末尾添加以下内容。

[root@test ~]# vim /etc/fstab

填写内容如下:
/swapfile swap swap defaults 0 0
#第一个0代表要不要备份
#第二个0代表开机自检

2、修改完成后,执行cat /etc/fstab命令查看/etc/fstab文件内容。

[root@test ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Sun Oct  9 10:12:41 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=65631159-9da0-4215-a496-43c02f846e16 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/swapfile swap swap defaults 0 0