Chinaunix首页 | 论坛 | 博客
  • 博客访问: 296775
  • 博文数量: 33
  • 博客积分: 880
  • 博客等级: 准尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 22:25
文章分类

全部博文(33)

文章存档

2011年(33)

分类: LINUX

2011-06-10 23:40:46

假设你已经分好LINUX分区,所有的配置都像你想要的那样,直到当你运行一些很耗费内存的程序(比如说openoffice,多个浏览页)的时候,你就会意识到你在安装系统的时候应该给SWAP分区更大的空间。这时候该怎么办呢,重装系统?这里有一种在已存在的分区上增加你的SWAP空间的一种方法。

通常有不止一种方法来管理你的LINUX系统,除了创建SWAP文件,你还可以使用parted或者他的图形工具QtParted来调整你的分区,但是,相对于增加一个文件来说,调整分区大小是一个更危险的操作。

开始前,先使用swapon -s查看你的系统SWAP分区有多少空间。

[root@localhost ~]# swapon -s

Filename                           Type                     Size               Used      Priority

/dev/sda3                         partition          2096472              0            -1     

从中可以这个系统有2G SWAP分区,已用0。使用df -m查看系统分区情况,以确定我们的SWAP文件存放位置。

[root@localhost ~]# df -m

Filesystem           1M-blocks      Used  Available  Use%   Mounted on

/dev/sda2                  3868      3630              39     99%     /

/dev/sda5                13936        164        13053      2%     /home

/dev/sda1                      46          11              33     25%    /boot

tmpfs                           506            0            506       0%    /dev/shm

/dev/sdb                  10080      1669          7900     18%     /opt

从中可以看出/opt有还有8G可用空间。现在我们增加一个512MSWAP文件,你的需要可能或多或少,它与我们需要SWAP分区的大小、现有可用SWAP分区的大小、磁盘的剩余空间大小等有关,一般SWAP分区的大小是我们物理内存大小的2倍。如果你的系统有比/opt更大的分区,你大可以将SWAP文件建到那些分区中。

我们知道在LINUX中所有的设备(/dev/sda1)都是一种特殊的文件。我们所要做的就是为SWAP文件创建一个新的文件,然后告诉LINUX系统当内存不够用时将使用我们的SWAP文件。

一个小提示:在继续前,请备份你的重要数据。尽管你已经非常仔细的检查过下面的操作都没有问题,但是这往往是一个更加安全的操作。

我们使用dd命令来创建我们所需要的文件,这个操作需要root权限(以下操作同样需要root权限)

[root@localhost ~]# dd if=/dev/zero of=/opt/extraswap bs=1M count=512

512+0 records in

512+0 records out

536870912 bytes (537 MB) copied, 54.0151 seconds, 9.9 MB/s

512表示我们文件的大小;bs为以M为单位;ifof表示将if文件里面的信息写入到of文件中(infileoutfile的缩写)/opt/extraswap为我们创建的SWAP文件,位置你可以按照你的系统来设置。

现在我们在磁盘上有了我们所需要的文件,我们需要设置它作为一个SWAP分区来使用,使用mkswap来完成这个操作。

[root@localhost ~]# mkswap /opt/extraswap

Setting up swapspace version 1, size = 536866 kB

为了使SWAP文件起作用,我们还必须使用swapon /opt/extraswap来将我们的SWAP文件起作用。

[root@localhost ~]# swapon /opt/extraswap

这时,我们再使用swap -s来查看就会发现我们新加的swap文件

Filename                           Type              Size        Used      Priority

/dev/sda3                      partition      2096472          0            -1

/opt/extraswap                     file          524280         0            -2

但是,我们还是没有彻底的完成,当我们重启机器的时候,我们新的SWAP文件还是不会起作用,还需要我们运行swapon /opt/extraswap来使我们的SWAP文件起作用。

为了使设置永久生效,我们需要编辑/etc/fstab文件。

首先,将文件备份。

[root@localhost ~]# cp /etc/fstab /etc/fstab.back

编辑文件/etc/fstab,找到

LABEL=SWAP-sda3         swap               swap    defaults        0 0

在下面加入一行

/opt/extraswap              swap                swap    defaults        0 0

保存后,使用diff对比修改前后的文件

[root@localhost ~]# diff /etc/fstab /etc/fstab.back

9d8

< /opt/extraswap              swap                  swap      defaults 0 0

这会显示出你修改的部分,如果你修改的部分除了这里还有其他地方,请将它更正过来,否则你的系统可能会因此而损害,无法启动。

好了,现在我们已经多了一个SWAP文件可以使用了。

 

 

补充:在使用已建立的SWAP文件的时候LINUX内核工作会比只使用现有的SWAP分区要耗费资源。这是因为为了使用SWAP文件,在文件系统从SWAP文件自身得到它所需要的信息前Linux内核必须要先告诉它SWAP文件已经起作用。当直接使用SWAP分区的时候,内核不必进行这个额外的步骤。

 

原文档:

 
阅读(2015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~