一,一般情况下swap分区管理
1,在磁盘上创建swap分区
使用fdisk工具
fdisk /dev/sdb
在fdisk工具中输入m可获取帮助,其中几个常用命令及其功能是:
d delete a partition,删除分区
l list known partition types,列出文件系统及其对应ID(ID在前)
m print this menu,获取帮助信息
n add a new partition,创建新分区
p print the partition table,列出分区信息
q quit without saving changes,放弃修改并退出
t change a partition's system id,修改分区系统ID,不同ID对应不同文件系统
w write table to disk and exit,保存修改并退出
在fdisk中输入命令n
,新建一个分区,
p表示创建的是主分区,括号内有现有分区情况说明
e表示创建的是扩展分区
输入p
,说明创建的是一个主分区
fdisk只能有4个分区(主分区或扩展分区),通过在扩展分区上创建逻辑分区,最多可以管理不超过15个分区。
例如我们可以创建3个主分区+1个扩展分区,再在扩展分区上创建多个逻辑分区
分区号,起始扇区通常使用默认值,尾部扇区直接通过+#[K|M|G]
的格式来指定分区大小,比如这里我就指定了分区大小为1G
方便起见剩余磁盘都划分到一个分区:
输入p
可以看到目前分区信息:
输入t
修改1号分区ID,标明这个分区将用作swap分区
输入w
将修改写入磁盘并退出fdisk。
2,在分区1上创建swap文件系统
查看磁盘分区信息:fdisk -l /dev/sdb
创建swap文件系统:mkswap /dev/sdb1
3,挂载swap分区
先查看现有swap分区大小:free -h
挂载swap分区,再查看swap分区大小可见swap分区已经扩大到3G:
swapon /dev/sdb1
#挂载
free -h
4,如果是暂时增加swap,到这里就可以了。但如果希望增加的swap下次重启系统还能自动挂载,就需要修改配置文件vi /etc/fstab
。
查看新增加swap分区的UUID:blkid -o list
,该命令可以看到所有系统能识别的块设备信息,不管有没有挂载。
或者,使用命令lsblk -f
也可以看到所有块设备的信息,如果挂载点为空说明该设备还没有挂载。
获得了/dev/sdb1
的UUID后,使用vi /etc/fstab
编辑配置文件,加上一行UUID=df6a3aca-6a34-4e9a-adb7-e8bcabff9639 swap swap defaults 0 0
,注意UUID的值是通过上面命令获取的。
5,卸载swap分区
通过fdisk -l
命令,可以看到所有磁盘分区的大小,或者通过fdisk -l |grep swap
命令只看swap分区的大小
使用swapoff命令卸载不要的swap分区,例如swapoff /dev/sdb1
,另外记得删除/etc/fstab
中对应的自动挂载记录。
二,临时扩大swap空间
1,在现有文件系统中模拟一个磁盘文件
通过命令dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024
创建一个文件,模拟磁盘
dd命令,用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换;
命令的选项说明:
if:in file,从哪个文件读取
/dev/zero:伪设备,每次读取获得一个二进制0。更多内容请看CentOS磁盘和分区简介中的介绍,或通过man手册查看其介绍
of:out file,输出到哪个文件
bs:block size,块大小
count:创建的文件包含多少个块
2,在模拟磁盘文件上创建swap文件系统
通过命令mkswap /tmp/newdisk
创建swap文件系统,系统提示权限不安全,建议使用0600,按照提示修改权限chmod 0600 /tmp/newdisk
3,挂载刚刚创建的swap分区,swapon /tmp/newdisk
4,其他
如果想自动挂载就修改/etc/fstab
,创建swap文件系统时已知UUID。
如果不再需要该swap分区,先swapoff
卸载,再删除文件/tmp/newdisk
即可。