Stories

Detail Return Return

ubuntu擴展內存掛載 - Stories Detail

在 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 的交換分區,並且通過配置文件確保它在系統啓動時自動加載。這些操作有助於提高系統在高負荷下的穩定性和性能。

user avatar itxiaoma Avatar chaoqiezi Avatar edonsoft Avatar junction_640ae1a257911 Avatar waylau521 Avatar zhaoyun_blog Avatar tongkudezicai_c7db2r Avatar
Favorites 7 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.