下面是“CentOS技巧:减小Linux swap分区的方法”的完整攻略:
介绍
Swap分区是Linux系统中的一种特殊分区,主要用于在物理内存不足时作为虚拟内存进行使用。但是,在某些情况下,我们可能需要减小Swap分区的大小,如修改分区布局或调整系统资源分配等。本文将介绍如何减小Linux Swap分区的大小。
步骤
1. 检查Swap使用情况
在开始减小Swap分区之前,需要先检查Swap的使用情况,确保Swap分区中不包含重要的信息。可以使用以下命令来查看Swap分区的使用情况:
sudo swapon -s
例如,输出可能如下所示:
Filename Type Size Used Priority
/dev/sda5 partition 2096124 904 -2
在这种情况下,/dev/sda5是Swap分区的设备文件,大小为2096124KB,已经使用了904KB。
2. 关闭Swap分区
在减小Swap分区之前,需要先关闭Swap分区。可以使用以下命令来关闭Swap分区:
sudo swapoff -v /dev/sda5
其中,/dev/sda5是需要关闭的Swap分区的设备文件。如果你的Swap分区不是/dev/sda5,请替换为你自己的Swap分区。
3. 编辑分区表
在关闭Swap分区之后,需要编辑分区表以减小Swap分区的大小。可以使用fdisk,gdisk或parted等分区工具来进行操作。这里我们以parted为例来说明如何编辑分区表。
首先,需要使用parted命令打开磁盘分区表:
sudo parted /dev/sda
其中,/dev/sda是需要编辑的磁盘设备文件。
现在,我们可以查看分区信息:
(parted) print all
输出可能如下所示:
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 11.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 3357MB 2831MB extended
5 525MB 3357MB 2831MB logical linux-swap(v1)
这里,我们可以看到/dev/sda上的分区信息。Swap分区在/dev/sda5的位置,大小为2831MB。
现在,我们可以使用resizepart命令来减少分区大小:
(parted) resizepart 5 2000MB
这里,我们将/dev/sda5的大小减少到2000MB。请注意,这个命令只是调整分区大小,而不会修改分区中的数据。
4. 重新格式化Swap分区
在调整完分区大小之后,需要重新格式化Swap分区。可以使用以下命令来格式化Swap分区:
sudo mkswap /dev/sda5
其中,/dev/sda5是需要重新格式化的Swap分区的设备文件。
5. 启动Swap分区
在重新格式化Swap分区之后,需要启动Swap分区。可以使用以下命令来启动Swap分区:
sudo swapon -v /dev/sda5
现在,我们使用第一步中的命令来确认Swap分区已经启用:
sudo swapon -s
输出可能如下所示:
Filename Type Size Used Priority
/dev/sda5 partition 2000000 0 -2
在这种情况下,Swap分区的大小已经减少到2000000KB。
示例
示例一:减少/VAR/SWAPFILE大小
有时候使用了交换文件的 CentOS 系统,在安装时间时 /var/swapfile 空间规格就会被设定为系统规格的两倍或是四倍,这样在后续发现 swap 占用空间未到达 /var/swapfile 原始大小时,可以通过 lcationalloc 和 swapoff 命令,将文件缩小到期望大小并重新开启 swap 分区:
#验证
$ free -m
Swap: 4048 0 4048
#关闭swap
$ sudo swapoff -a
#删除swap文件
$ sudo rm /var/swapfile
#重新创建swap文件512M
$ sudo fallocate -l 512M /var/swapfile
#修改权限
$ sudo chmod 600 /var/swapfile
#格式化创建swap
$ sudo mkswap /var/swapfile
#开启swap
$ sudo swapon /var/swapfile
#验证
$ free -m
total used free shared buff/cache available
Mem: 8598 1322 4795 101 2480 6817
Swap: 511 0 511
示例二:减小分区大小
centos 系统默认是较为简单的全新安装来的,不需要过多操作,但是在使用一段时间后,已经安装的程序较多,因此难免会遇到内存不充分的情况。而这个时候,大部分人都会考虑是否可以进行 swap 扩容或者进行 Linux 分区还原。这里介绍了减小一个 Swap 分区的大小的一个详细教程。
假设你有 /dev/sda3,一个 swap 分区大小为 8G,而你希望减少它至 2G:
- 首先关闭当前的 swap:
sudo swapoff /dev/sda3
- 然后将 /dev/sda3 设定为分区类型 id 为 82(Linux swap):
sudo fdisk /dev/sda
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82
Changed system type of partition 3 to 82 (Linux swap).
- 将分区大小也加以缩减:
sudo fdisk /dev/sda
Command (m for help): d
Partition number (1-4): 3
Partition 3 has been deleted.
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (654-155061, default 654):
Using default value 654
Last cylinder, +cylinders or +size{K,M,G} (654-155061, default 155061):
Using default value 155061
注意在这里我们将开始块和结束块设置成了新的值,这样可以改变分区大小,但是确保要覆盖 Swap 的初始块。
- 确保你输入完毕以后,最后使用 p 命令查看一下分区情况:
Command (m for help): p
Disk /dev/sda: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 275 2096482+ 82 Linux swap / Solaris
/dev/sda3 276 19452 154129392+ 83 Linux
剩下的就是你已经喜欢的其他 Linux 分区流程了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS技巧:减小Linux swap分区的方法 - Python技术站