灌好 Ubuntu Linux 才發現原來 swap 沒有啟用。但是看 /etc/fstab 明明就說了 "# swap was on /dev/sda1 during installation"
好吧,Open Source 就是這樣,有些東西你得自己來,這是可以想見的。
所以接下來先檢查一下,系統有沒有啟用 swap 呢,可以使用下面的指令:
$ sudo swapon -s
呃,什麼都沒有,也對,這本來沒有東西,我才會現在來加 swap 啊 ...
Okay,正式來了。因為我在安裝 linux 的時候,已經給了 /dev/sda1 當 swap ,所以現在我只需要先 mkswap partition,理論上就可以開始用了。但是看了一下 /etc/fstab 才知道,原來已經有 cryptswap 可以用了。(應該是加密的 swap 格式吧,我沒摸過,所以就別獻醜了 ..)
mkswap 的指令是:
$ sudo mkswap /dev/sda1
然後執行
$ sudo ecryptfs-setup-swap
做完之後,它會到 /etc/fstab 裡面把你的 UUID 填上去,然後再去 /etc/crypttab 裡面把 swap 的部份也填上去。
這樣, swapon -s 的時候就應該有看到你的 swap 已經生效了。
更新 (20160315):
在 /etc/rc.local 裡面加上這幾行就好
sed -ie '/cryptswap1 UUID=/d' /etc/crypttab
mkswap /dev/sdb1
swapon /dev/sdb1
ecryptfs-setup-swap -f
swapon -s
--
參考文件:
- http://fonger.logdown.com/posts/2015/02/01/setting-swap-for-ubuntu-to-solve-out-of-memory
- http://askubuntu.com/questions/341979/what-to-do-about-the-disk-drive-for-dev-mapper-cryptswap1-is-not-ready-yet-or
--
更新[20150804]:
要確定現在有沒有用 cryptswap ,就打
$ sudo blkid | grep swap
應該要看到類似下面的結果:
/dev/sda1: UUID="b04fa6e3-4880-4b44-8aa6-c40157096595" TYPE="swap"
/dev/mapper/cryptswap1: UUID="34b3a33b-9b85-4fc3-b725-ded9e2c28295" TYPE="swap"