Linux操作系统安装以后,swap分区太小,两种解决方法:增加swap分区、重新建立swap分区;首先要有root权限,其次在操作过程中一定要很小心,一不小心可能就破坏了整个硬盘的数据,一定要三思而行。
一、增加swap分区(推荐)
1. 检查内存和swap大小
这里有2种方法查看
(1) free –m
[root@linux ~]# free -m
total used free shared buffers cached
Mem: 1010 247 762 0 14 145
-/+buffers/cache: 87 922
Swap: 2201 0 2201
当前系统的swap分区尺寸是物理内存的2倍
(2) cat /proc/meminfo | grep SwapTotal
[root@linux~]# cat /proc/meminfo | grep SwapTotal
SwapTotal: 2254084 kB
[root@linux ~]# cat /proc/meminfo | grep MemTotal
MemTotal: 1034564 kB
注意:此处需要说明一下,下表显示了swap和ram之间的大小关系
RAM | Swap Space |
Between 1024 MB and 2048 MB | 1.5 times the size of RAM |
Between 2049 MB and 8192 MB | Equal to the size of RAM |
More than 8192 MB | 0.75 times the size of RAM |
2. 决定修改swap分区大小,在空间合适处创建用于分区的swap文件
(注意,此处是添加swap分区,swap尺寸=原有swap+新添加swap)
[root@linux ~]# dd if=/dev/zero of=/tmp/tempswap bs=1k count=5000
5000+0 records in
5000+0 records out
(注意,if表示infile,of表示outfile,bs=1k表示每个写入的块的大小为1k)
3. 查看创建的文件大小是否符合要求(可忽略)
[root@linux ~]# du -h /tmp/tempswap
4.9M /tmp/tempswap
4. 格式化目标文件(可忽略)
[root@linux ~]# mke2fs /tmp/tempswap
mke2fs 1.35 (28-Feb-2004)
/tmp/tempswap is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1256 inodes, 5000 blocks
250 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=5242880
1 block group
8192 blocks per group, 8192 fragments per group
1256 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days,whichever comes first. Use tune2fs -c or-i to override.
5. 将目标文件设置为swap分区文件
[root@linux~]# mkswap /tmp/tempswap
Setting up swapspace version 1, size= 5115 kB
6. 激活swap,立即启用该swap分区文件
[root@linux ~]# swapon /tmp/tempswap
7. 再次验证内存和swap分区
[root@linux~]# free -m
total used free shared buffers cached
Mem: 1010 684 325 0 36 523
-/+buffers/cache: 123 886
Swap: 2206 0 2206
8. 设置新swap文件开机自动挂载
[root@linux ~]# vi/etc/fstab
LABEL=SWAP-hda2 swap swap defaults 0 0
/tmp/tempswap swap swap defaults 0 0
以下操作为回收swap方法:
a. 收回 swap 空间
swapoff /var/swap
b. 从文件系统中回收
rm /var/swap
二、重新建立swap分区
此实验因为当前系统磁盘没有空闲空间,所以就没有做,下面把主要操作步骤记录如下
1. 停止所有swap分区(root身份执行)
#swapoff –a --停止所有swap分区
2. 修改swap分区
用fdisk命令加swap分区的盘符,(例:#fdisk /dev/sdb)剔除swap分区,输入d删除swap分区,然后再n添加分区(添加时硬盘必须要有可用空间,然后再用t将新添的分区id改为82(linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)
3. 格式化swap分区
#mkswap /dev/sdb2 --格式化swap分区,这里的sdb2要看你加完swap分区后p命令显示的实际分区设备名
4. 启动新的swap分区
#swapon /dev/sdb2
5. 设置开机启动该swap分区
#/dev/sdb2 swap swap defaults 0 0