Linux中國

使用 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

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 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國