Linux 如何更改 swapfile 大小
或許你覺得預設的 swapfile
太小,想要加大,沒問題!
什麼是 swapfile
?
如果你跟我一樣,安裝的時候都選 Use Entire Disk
的話,你可能會注意到,大約 Ubuntu 18.04 開始,預設使用 swapfile 而不是原本的 SWAP 分割區。
$ cat /proc/swaps
Filename Type Size Used Priority
/swap.img file 2097148 0 -2
相對應的 fstab
也變得不一樣:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=1b734262-e44d-45c3-ace0-48e6ff23e407 / ext4 defaults 0 0
/swap.img none swap sw 0 0
根據這篇文章所述,多數現在的電腦都搭載相當大量的系統記憶體,所以分配一個專用的空間給 SWAP 來使用,實在是有點過於浪費。而且需要變動 SWAP 大小的時候也必須移動分割區,實在是個大工程(風險先不提的話)。
動工吧!
在開始之前,先下個 free
指定,檢查一下現在的 記憶體 和 SWAP 大小(使用 -h
自動轉換成容易閱讀的單位)
$ free -h
total used free shared buff/cache available
Mem: 1.9G 98M 1.6G 944K 242M 1.7G
Swap: 2.0G 0B 2.0G
接下來,先把 swapfile
關掉
$ swapoff /swap.img
然後建立新的 swapfile
$ rm /swap.img # 刪掉舊的
$ sudo fallocate -l 1G /swap.img # 建立新的
$ ls -lh /swap.img # 顯示資訊
-rw-r--r-- 1 root root 1.0G Jun 9 16:06 /swap.img
改權限
$ sudo chmod 600 /swap.img # 更改權限
$ ls -lh /swap.img # 顯示資訊
-rw------- 1 root root 1.0G Jun 9 16:06 /swap.img
格式化
sudo mkswap /swap.img
啟用 swap.img
sudo swapon /swap.img
檢查一下
$ cat /proc/swaps
Filename Type Size Used Priority
/swap.img file 1048572 0 -2
設定 /etc/fstab
(如果本來沒有的話),請新增下面那一行
/swap.img none swap sw 0 0