以下為在 Ubuntu 24.04 主機上新增 4GB swap 的完整操作流程與解說,包含你實際執行的指令整理後的教學。

📌 1. 查看磁碟使用狀況

在新增 swap 前,先確認磁碟空間是否足夠:

1
df -h
1
df -h

範例輸出:

1
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda 25G 13G 11G 56% /
1
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda 25G 13G 11G 56% /

可見有 11GB 可用空間,足以建立新的 4GB swapfile。

📌 2. 建立 4GB Swap File

使用 fallocate 建立一個大小為 4GB 的 swap 檔案:

1
sudo fallocate -l 4G /swapfile2
1
sudo fallocate -l 4G /swapfile2

📌 3. 設定 Swap 檔案權限

Swap file 必須設定成只有 root 能讀寫,否則系統會拒絕使用:

1
sudo chmod 600 /swapfile2
1
sudo chmod 600 /swapfile2

📘 額外補充:Linux 權限教學(給完全不懂的人)

為了更容易理解,我用超白話方式說明:

🔹 什麼是 Linux 權限?

Linux 裡每個檔案與資料夾都有三種「身分」能對它做事:

  • User(u):檔案的擁有者

  • Group(g):與該檔案同群組的人

  • Others(o):所有其他人(包含陌生人)

每個身分都可以有三種權限:

  • r = read(讀)

  • w = write(寫)

  • x = execute(執行)

🔹 數字是怎麼來的?

Linux 會用一個「三位數」表示權限,例如:

chmod 600 file

代表:

  • 第一個數字(6)→ user 的權限

  • 第二個數字(0)→ group 的權限

  • 第三個數字(0)→ others 的權限

那 6、0、0 是什麼意思?

權限對應如下:

  • r = 4

  • w = 2

  • x = 1

所以:

  • 6 = 4 + 2 = rw-(讀寫可)

  • 0 = —(完全沒權限)

🔹 用表格讓你秒懂

數字權限意思
7rwx讀寫執行全部可
6rw-讀 + 寫
5r-x讀 + 執行
4r–只有讀
0-–什麼都不行

🔹 swapfile 為什麼不能設 644 或 777?

  • 644 = 其他人能讀 → 完全不行

  • 666 = 其他人能寫 → 大爆炸級資安問題

  • 777 = 人人可讀寫執行 → 不要命了

因為 swapfile 裡可能包含:

  • 密碼明文

  • MySQL 的資料

  • 後台 session

  • 記憶體裡任何曾存在過的資料

所以必須限制成:

600(rw——-)

這樣才能確保:

  • root 可以使用

  • 其他任何人都不能讀寫

  • 系統才能安全掛載 swapfile

📌 4. 將檔案格式化成 Swap 空間

將剛建立的檔案轉成 swap 格式:

1
sudo mkswap /swapfile2
1
sudo mkswap /swapfile2

執行後會看到類似:

1
Setting up swapspace version 1, size = 4 GiB<br>UUID=xxxxx-xxxxx
1
Setting up swapspace version 1, size = 4 GiB<br>UUID=xxxxx-xxxxx

📌 5. 啟用 Swap File

讓 swapfile 立即生效:

1
sudo swapon /swapfile2
1
sudo swapon /swapfile2

📌 6. 設定開機自動啟用 Swap

把設定寫入 /etc/fstab

1
echo '/swapfile2 none swap sw 0 0' | sudo tee -a /etc/fstab
1
echo '/swapfile2 none swap sw 0 0' | sudo tee -a /etc/fstab

📌 7. 確認 Swap 是否成功新增

使用 free -h 查看目前的記憶體與 swap 狀態:

1
free -h
1
free -h

範例輸出:

           
1
2
3
               total        used        free      shared  buff/cache   available
Mem: 961Mi 873Mi 79Mi 71Mi 221Mi 88Mi
Swap: 4.5Gi 520Mi 4.0Gi
1
2
3
               total        used        free      shared  buff/cache   available
Mem: 961Mi 873Mi 79Mi 71Mi 221Mi 88Mi
Swap: 4.5Gi 520Mi 4.0Gi

可以看到:

  • 原本的 512MB swap + 新增的 4GB → 總共 4.5GB swap

  • 系統已成功使用新的 swap。