在 Ubuntu 系統中,創建並掛載交換分區(Swap)是擴展內存的有效方式。交換分區通過使用硬盤空間來替代物理內存,當 RAM 使用完時,系統會自動切換到交換分區來繼續存儲數據。以下是創建和掛載交換分區的詳細步驟與解釋。
一、檢查可用磁盤空間
在開始創建交換分區之前,需要確保系統中有足夠的磁盤空間。使用 df -h 命令可以查看硬盤的使用情況:
df -h
解釋:
df -h:該命令以人類可讀的形式(單位為 KB、MB、GB 等)顯示每個文件系統的可用空間。
在查看可用磁盤空間後,可以根據系統的實際情況來決定交換分區的大小。一般建議交換分區的大小為物理內存(RAM)的兩倍,但當系統的 RAM 大於 2GB 時,交換分區的大小可以與 RAM 相同。
二、創建交換分區文件
2.1 使用 fallocate 創建交換文件
fallocate 是創建交換文件的最簡單方式。以下命令會在 /swapfile 路徑下創建一個 2GB 大小的交換文件:
sudo fallocate -l 2G /swapfile
解釋:
sudo:使用超級用户權限執行命令。fallocate -l 2G /swapfile:創建一個大小為 2GB 的文件/swapfile,該文件將作為交換分區使用。
2.2 使用 dd 命令創建交換文件
如果你的系統不支持 fallocate 命令,可以使用 dd 命令來創建交換文件:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
解釋:
dd:用於低級數據複製的命令。if=/dev/zero:輸入文件為/dev/zero,它會產生連續的零。of=/swapfile:輸出文件為/swapfile。bs=1M count=2048:創建塊大小為 1MB 的文件,共計 2048 個塊,因此文件大小為 2048MB(即 2GB)。
三、設置文件權限
為了安全性,必須確保只有 root 用户可以訪問並修改交換文件。使用 chmod 命令來設置正確的文件權限:
sudo chmod 600 /swapfile
解釋:
chmod 600:設置文件權限為只有文件擁有者(root)可以讀寫。/swapfile:指定要設置權限的文件。
四、將文件標記為交換分區
接下來,使用 mkswap 命令將創建的文件設置為交換分區:
sudo mkswap /swapfile
解釋:
mkswap /swapfile:將/swapfile文件標記為一個有效的交換分區。
五、啓用交換分區
使用 swapon 命令立即啓用交換分區,使系統開始使用該分區:
sudo swapon /swapfile
解釋:
swapon /swapfile:啓用指定的交換分區,使其開始生效。
六、讓交換分區在系統啓動時自動掛載
為了在系統重啓時自動加載交換分區,需將交換分區的信息添加到 /etc/fstab 文件中。首先,編輯該文件:
sudo nano /etc/fstab
在文件末尾添加以下內容:
/swapfile swap swap defaults 0 0
解釋:
/swapfile:指定交換文件路徑。swap swap defaults 0 0:表示該文件作為交換分區,系統默認掛載它。
保存並關閉文件,之後每次系統啓動時,交換分區都會自動掛載。
七、驗證交換分區
創建和啓用交換分區後,可以使用 free -h 命令檢查交換分區是否成功掛載:
free -h
解釋:
free -h:該命令以人類可讀的格式顯示系統的內存使用情況,包括物理內存和交換分區。
如果輸出中有類似於以下的內容,説明交換分區已經成功啓用:
total used free shared buff/cache available
Mem: 8.0G 1.5G 5.0G 50M 1.5G 6.2G
Swap: 2.0G 0B 2.0G
這裏的 Swap 行顯示了交換分區的大小和使用情況,表示系統已經正確地啓用了交換分區。
八、調整交換分區的優先級(可選)
默認情況下,交換分區的優先級較低,系統只有在物理內存不足時才會使用它。如果你希望調整交換分區的優先級,可以通過修改 sysctl.conf 文件來實現:
sudo nano /etc/sysctl.conf
在文件中添加以下內容:
vm.swappiness=10
解釋:
vm.swappiness:該參數控制系統在多大程度上使用交換分區,值範圍是 0 到 100,值越高,系統越傾向於使用交換分區。默認值通常為 60,建議將其設置為 10,以便在物理內存不足時才使用交換分區。
保存文件後,執行以下命令使修改生效:
sudo sysctl -p
解釋:
sysctl -p:重新加載內核參數設置,使新配置生效。
九、總結
創建交換分區可以有效地提高系統的內存管理能力,特別是在物理內存不足時。通過遵循上述步驟,你可以成功地在 Ubuntu 系統中創建、啓用並自動掛載交換分區。以下是本次操作的關鍵步驟總結:
| 步驟 | 命令或操作 | 原理與説明 |
|---|---|---|
| 檢查硬盤空間 | df -h |
查看當前硬盤的使用情況,確保有足夠的空間來創建交換分區。 |
| 創建交換文件 | sudo fallocate -l 2G /swapfile |
使用 fallocate 命令創建一個 2GB 大小的交換文件。 |
| 設置文件權限 | sudo chmod 600 /swapfile |
設置文件權限為只有 root 用户可以讀寫,確保文件安全性。 |
| 設置為交換分區 | sudo mkswap /swapfile |
將創建的文件標記為交換分區,使其能夠用於系統內存管理。 |
| 啓用交換分區 | sudo swapon /swapfile |
啓用交換分區,讓系統可以開始使用該分區作為額外的內存資源。 |
| 添加自動掛載 | 編輯 /etc/fstab 文件,添加 /swapfile swap swap defaults 0 0 |
使交換分區在系統啓動時自動掛載,避免重啓後交換分區失效。 |
| 查看交換分區狀態 | free -h |
檢查系統內存和交換分區的使用情況,確認交換分區已經成功啓用。 |
| 調整優先級(可選) | 編輯 /etc/sysctl.conf,添加 vm.swappiness=10 |
設置系統的 swappiness 參數,使系統在物理內存用盡時才使用交換分區。 |
至此,你已經成功在 Ubuntu 系統中創建了一個 2GB 的交換分區,並且通過配置文件確保它在系統啓動時自動加載。這些操作有助於提高系統在高負荷下的穩定性和性能。