Tag Archives: swap

(译文)如何设置Ubuntu的swap区

接着上一篇文章,来讲一讲如何设置Ubuntu的swap区。在ubuntu社区里找到这样一篇文章,点击此处,这里只节选一段翻译供大家学习。


如何添加swap?

swap一般都在一个专有的swap区里,这可能是因为在安装的时候系统会提示你创建一个swap区。但实际上任何文件都可以被用作swap(交换设备),无论是一个分区或是一个简单的文件。尽管如此,为了更好的体验效果和感应速度,还是建议使用大容量的内存,而不是依赖swap。可以通过添加一个swap文件来增加swap。

共分四步
  1. 创建一个你预设好大小的文件。
  2. 将该文件格式化成swap(交换设备)。
  3. 将swap添加到现有系统中。
  4. 在系统里作一个永久性变更。

要添加一个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每个人都不一样,这取决于你是如何给自己的扩展分区命名的。