不懂博客—所知甚少因而建立此博客记录不懂知识;学习、关注、体验互联网。

无/swap交换分区分区的解决办法(用文件替代swap分区)

来源:原创 作者:fcbu.com 时间:2012-03-09 【 打印

遇到一个可能不太熟悉linux的机房技术人员装的系统。分区给我分得乱糟糟的,首先第一块硬盘和第二块硬盘搞反了,接着将swap交换分区给我分成了一个普通分区,只是名字为swap而已:

文件系统      类型    容量  已用 可用 已用% 挂载点
/dev/sdb2     ext3    7.6G  555M  6.7G   8% /
/dev/sda1     ext3    466G  453G   13G  98% /home1
/dev/sdb7     ext3    4.8G  149M  4.4G   4% /tmp
/dev/sdb6     ext3    4.8G  1.6G  3.0G  35% /var
/dev/sdb5     ext3    5.7G  140M  5.3G   3% /swap
/dev/sdb3     ext3    5.7G  2.1G  3.4G  39% /usr
/dev/sdb1     ext3     99M   18M   77M  19% /boot
/dev/sdb8     ext3    437G  175G  262G  41% /home2
tmpfs        tmpfs    2.0G  2.2M  2.0G   1% /dev/shm

swap交换分区就根本用不了,由于此服务器已经在跑业务了,不能随便停机,更不能重装系统。

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3910       3886         23          0         16       1652
-/ buffers/cache:       2217       1692
Swap:            0          0          0

解决方法:

#制作一个swapfile文件,需要root权限
su
dd if=/dev/zero of=/swap/swapfile bs=4096 count=1310720
#说明:其中bs参数制定每次读取及输入多少个字节。因为硬盘存取的最小单位为扇区,所以设置bs参数就相当于设置每个扇区的大小。我这里设置为4096即4k。参数count则主要是用来设置可以使用扇区的数量。所以这个文件所占用的空间就是以上连个参数的乘积。这里需要注意的是,如果要增加swap文件容量,一般是通过调整count参数来实现的,bs参数一般不动。看到我的/swap分区完全没被使用,有5.3G剩余空间,所有我建立了一个5G的swapfile文件。

#格式化swapfile,同样需要root权限
mkswap /swap/swapfile

#启用swap
swapon /swap/swapfile

#不想每次重启后手动启用swap就可以将挂载写入/etc/fstab中 (因为我这个分区比较特殊,分区名称相同,为保险起见,我没写入到fstab里面)
/swap/swapfile swap swap defaults 0 0

#用free -m查看一下,swap设定已经生效了:
[root@localhost ~]# free -m             
             total       used       free     shared    buffers     cached
Mem:          3910       3885         25          0         21       1639
-/ buffers/cache:       2224       1686
Swap:         5119          0       5119

顺利搞定。

当你实在不需要使用swap交换分区时 可是释放掉swapfile
swapoff /swap/swapfile
rm -f /swap/swapfile

分类目录: 电脑维修 > linux > | 标签:swap 分区 linux
上一篇:Nginx平滑升级为Tengine最新版(附header头部信息修改方法)
下一篇:Linux日志文件详解(/var/log目录下的日志文件窥探)

验证码:点击输入框获取验证码

评论列表

ali 2016-05-19 23:02 回复

管用,我在编译 ImageMagic 的时候,遇到问题了
gcc: Internal error: Killed (program cc1)
make[1]: *** [wand/wand_libMagickWand_6_Q16_la-mogrify.lo] Error 1
make: *** [imagick_class.lo] Error 1
就是用你的方法增加swapfile搞定的。
感谢。
查看全部1条评论