使用 fdisk 和 fallocate 命令創建交換分區
交換分區在物理內存(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
。
現在我們創建了一個大小為 1000MB 的磁碟了。但是我們並沒有設置該分區的類型,我們按下 t
然後回車,來設置分區類型。
現在我們要輸入分區編號,這裡我們輸入 3
,然後輸入磁碟分類號,交換分區的分區類型為 82
(要顯示所有可用的分區類型,按下 l
) ,然後再按下 w
保存磁碟分區表。
再下一步使用 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 譯者:lujun9972 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive