作者 | Shusain
譯者 | lujun9972
交換分割槽在物理記憶體(RAM)被填滿時用來保持記憶體中的內容。當 RAM 被耗盡,Linux 會將記憶體中不活動的頁移動到交換空間中,從而空出記憶體給系統使用。雖然如此,但交換空間不應被認為是物理記憶體的替代品。
大多數情況下,建議交換記憶體的大小為物理記憶體的 1 到 2 倍。也就是說如果你有 8GB 記憶體, 那麼交換空間大小應該介於8-16 GB。
若系統中沒有配置交換分割槽,當記憶體耗盡後,系統可能會殺掉正在執行中的行程/應用,從而導致系統崩潰。在本文中,我們將學會如何為 Linux 系統新增交換分割槽,我們有兩個辦法:
第一個方法(使用 fdisk 命令)
通常,系統的第一塊硬碟會被命名為 /dev/sda
,而其中的分割槽會命名為 /dev/sda1
、 /dev/sda2
。 本文我們使用的是一塊有兩個主分割槽的硬碟,兩個分割槽分別為 /dev/sda1
、 /dev/sda2
,而我們使用 /dev/sda3
來做交換分割槽。
首先建立一個新分割槽,
$ fdisk /dev/sda
按 n
來建立新分割槽。系統會詢問你從哪個柱面開始,直接按回車鍵使用預設值即可。然後系統詢問你到哪個柱面結束, 這裡我們輸入交換分割槽的大小(比如 1000MB)。這裡我們輸入 +1000M
。
swap
現在我們建立了一個大小為 1000MB 的磁碟了。但是我們並沒有設定該分割槽的型別,我們按下 t
然後回車,來設定分割槽型別。
現在我們要輸入分割槽編號,這裡我們輸入 3
,然後輸入磁碟分類號,交換分割槽的分割槽型別為 82
(要顯示所有可用的分割槽型別,按下 l
) ,然後再按下 w
儲存磁碟分割槽表。
swap
再下一步使用 mkswap
命令來格式化交換分割槽:
$ mkswap /dev/sda3
然後啟用新建的交換分割槽:
$ swapon /dev/sda3
然而我們的交換分割槽在重啟後並不會自動掛載。要做到永久掛載,我們需要新增內容到 /etc/fstab
檔案中。開啟 /etc/fstab
檔案並輸入下麵行:
$ vi /etc/fstab
/dev/sda3 swap swap default 0 0
儲存並關閉檔案。現在每次重啟後都能使用我們的交換分割槽了。
第二種方法(使用 fallocate 命令)
我推薦用這種方法因為這個是最簡單、最快速的建立交換空間的方法了。fallocate
是最被低估和使用最少的命令之一了。 fallocate
命令用於為檔案預分配塊/大小。
使用 fallocate
建立交換空間,我們首先在 /
目錄下建立一個名為 swap_space
的檔案。然後分配 2GB 到 swap_space
檔案:
$ fallocate -l 2G /swap_space
我們執行下麵命令來驗證檔案大小:
$ ls -lh /swap_space
然後更改檔案許可權,讓 /swap_space
更安全:
$ chmod 600 /swap_space
這樣只有 root 可以讀寫該檔案了。我們再來格式化交換分割槽(LCTT 譯註:雖然這個 swap_space
是個檔案,但是我們把它當成是分割槽來掛載):
$ mkswap /swap_space
然後啟用交換空間:
$ swapon -s
每次重啟後都要重新掛載磁碟分割槽。因此為了使之持久化,就像上面一樣,我們編輯 /etc/fstab
並輸入下麵行:
/swap_space swap swap sw 0 0
儲存並退出檔案。現在我們的交換分割槽會一直被掛載了。我們重啟後可以在終端執行 free -m
來檢查交換分割槽是否生效。
我們的教程至此就結束了,希望本文足夠容易理解和學習,如果有任何疑問歡迎提出。
via: http://linuxtechlab.com/create-swap-using-fdisk-fallocate/
作者:Shusain[2] 譯者:lujun9972 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出