如何添加swap?
swap 一般都在一个专有的swap区里,这可能是因为在安装的时候系统会提示你创建一个swap区。但实际上任何文件都可以被用作swap(交换设备),无论是一个分区或是一个简单的文件。尽管如此,为了更好的体验效果和感应速度,还是建议使用大容量的内存,而不是依赖swap。可以通过添加一个swap文件来增加swap。
共分四步
- 创建一个你预设好大小的文件。
要添加一个512M的swap
- 创建一个512M的文件:
我们会在 /mnt/512Mb.swap 上创建一个swap文件。
sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512
代码中的? count=512 的意思是我们要创建文件,其中包含了512个? bs=1M (bs = block size 区块大小; 1M=1mebibyte 一兆 =1048576 bytes 字节)?的区块。 请注意 *不要* 使用? dd of=/mnt/512Mb.swap bs=1M seek=512 count=0 这条命令。虽然文件会马上增长到512Mb,但是这是有漏洞的,可能会造成无法使用。
- 格式化文件,使之成为swap(交换设备)
sudo mkswap /mnt/512Mb.swap将swap加入到现有系统中:
sudo swapon /mnt/512Mb.swap
现在新增的swap可以通过” cat /proc/meminfo “命令看到。
- 做永久性变更:
编辑 /etc/fstab 文件:
gksudo gedit /etc/fstab
在文件末尾加上如下一行:
/mnt/512Mb.swap none swap sw 0 0
保存并重启。
一个swap文件的示例
如下的例子展现了在一台没有swap分区的电脑上创建和使用swap。
user@computer:~$ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512 Password: 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 35.3802 seconds, 15.2 MB/s user@computer:~$ sudo mkswap /mnt/512Mb.swap Setting up swapspace version 1, size = 536866 kB no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b user@computer:~$ sudo swapon /mnt/512Mb.swap user@computer:~$ cat /proc/meminfo MemTotal: 499496 kB MemFree: 9156 kB Buffers: 4748 kB Cached: 233140 kB SwapCached: 724 kB Active: 254432 kB Inactive: 157920 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 499496 kB LowFree: 9156 kB SwapTotal: 524280 kB SwapFree: 523556 kB Dirty: 128 kB Writeback: 0 kB Mapped: 243420 kB Slab: 20672 kB CommitLimit: 774028 kB Committed_AS: 648680 kB PageTables: 2224 kB VmallocTotal: 524280 kB VmallocUsed: 5708 kB VmallocChunk: 518176 kB user@computer:~$ gksudo gedit /etc/fstab user@computer:~$ free total used free shared buffers cached Mem: 499496 479488 20008 0 8256 215892 -/+ buffers/cache: 255340 244156 Swap: 524280 3856 520424 #####Then, after running a few more programs... user@computer:~$ free total used free shared buffers cached Mem: 499496 492768 6728 0 1240 142336 -/+ buffers/cache: 349192 150304 Swap: 524280 53384 470896 #####Next, reboot to make sure it will work consistently. user@computer:~$ free total used free shared buffers cached Mem: 499496 493136 6360 0 7528 174700 -/+ buffers/cache: 310908 188588 Swap: 524280 17148 507132
撤销你的变更 :
基本上只要将刚才所做的再反过来做一遍就好了。
gksudo gedit /etc/fstab
删除刚才添加的最末一行
/mnt/512Mb.swap none swap sw 0 0
在现有系统中删除swap并删除创建的swap文件。
sudo swapoff /mnt/512Mb.swap && sudo rm /mnt/512Mb.swap
无需重启。
当然,所有例子都不能生搬硬套。 如果安装双系统,我们就可以把swap区设置在扩展分区里,就是我们说的ubuntu和windows共用的storage区, 相应的目录也应该从刚才提到的/mnt/512Mb.swap 改成 /media/xxx/512Mb.swap,xxx每个人都不一样,这取决于你是如何给自己的扩展分区命名的。