日期:2014-05-16  浏览次数:20791 次

手工为Linux添加swap空间.

【转】手工为Linux添加swap空间.

运行程序时,老是提示out of memory,实在没有什么好方法,所以想通过添加swap缓冲空间,

方法一:使用swap文件,优点是操作比较简单,缺点是速度慢且容易产生磁盘碎片.

在SWAP空间不够用的情况下,如何手工添加SWAP空间

   以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如

   dd if=/dev/zero of=/home/swap bs=1024 count=512000

((注解:用dd命令创建一个swap文件(因为swap文件要求必须是连续的)
#dd if=/dev/zero of=<swap文件名> bs=1024 count=<分区大小>
分区大小=1024*n,如果大小为1000M,则n=1000)))
   这样就会创建/home/swap这麽一个分区档。档的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M.接着再把这个分区变成swap分区。

   /sbin/mkswap /home/swap

   再接着使用这个swap分区。使其成为有效状态。

   /sbin/swapon /home/swap

?? 使用swapon -a 启用swap文件,使用swap -s查看swap文件是否启用。
   现在再用free -m命令查看一下记忆体和swap分区大小,就发现增加了512M的空间了。不过当电脑重启了以后,发现swap还是原来那麽大,新的swap没有自动启动,还要手动启动。那我们需要修改/etc/fstab档,增加如下一行

   /home/swap swap swap defaults 0 0

   你就会发现你的机器自动启动以后swap空间也增大了。

?

方法二、使用swap分区。优点是速度快,缺点是需要磁盘有未分配空间且操作稍微复杂一些。
1、使用fdisk命令建立一个新的分区,分区类型为82
2、使用mkswap转化新分区对应的设备文件(如:/dev/hda6)
3、使用swapon -a 启用swap文件,使用swap -s查看swap文件是否启用。
4、最后加在/etc/fstab,使每次开机都会自动启用SWAP

?

修复休眠

1 确保安装了最新版本的initramfs-tools2 运行sudo blkid,查看swap分区的UUID (注:如果swap分区没有UUID,那么可以用gparted重新格式化swap分区,新产生的分区就会有UUID了)3 修改/etc/fstab中的swap分区的UUID与第2步中的UUID相同4 修改/etc/initramfs-tools/conf.d/resume中的UUID与第2步中的相同5 运行sudo update-initramfs -u更新 initrd.image

6 重启OK了

resume文件的内容相当简单,就一行,像这样RESUME=LABEL=swapRESUME=后面的格式和 fstab 的第一栏一样。改了后还要sudo update-initramfs -u更新 initrd。