使用 fdisk 和 fallocate 命令建立交換分割槽

Shusain發表於2018-01-14
作者: Shusain 譯者: LCTT DarkSun

| 2018-01-14 22:37   收藏: 1    

交換分割槽在實體記憶體(RAM)被填滿時用來保持記憶體中的內容。當 RAM 被耗盡,Linux 會將記憶體中不活動的頁移動到交換空間中,從而空出記憶體給系統使用。雖然如此,但交換空間不應被認為是實體記憶體的替代品。

大多數情況下,建議交換記憶體的大小為實體記憶體的 1 到 2 倍。也就是說如果你有 8GB 記憶體, 那麼交換空間大小應該介於8-16 GB。

若系統中沒有配置交換分割槽,當記憶體耗盡後,系統可能會殺掉正在執行中的程式/應用,從而導致系統崩潰。在本文中,我們將學會如何為 Linux 系統新增交換分割槽,我們有兩個辦法:

  • 使用 fdisk 命令
  • 使用 fallocate 命令

第一個方法(使用 fdisk 命令)

通常,系統的第一塊硬碟會被命名為 /dev/sda,而其中的分割槽會命名為 /dev/sda1/dev/sda2。 本文我們使用的是一塊有兩個主分割槽的硬碟,兩個分割槽分別為 /dev/sda1/dev/sda2,而我們使用 /dev/sda3 來做交換分割槽。

首先建立一個新分割槽,

$ fdisk /dev/sda

n 來建立新分割槽。系統會詢問你從哪個柱面開始,直接按Enter鍵使用預設值即可。然後系統詢問你到哪個柱面結束, 這裡我們輸入交換分割槽的大小(比如 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中國 榮譽推出

使用 fdisk 和 fallocate 命令建立交換分割槽

相關文章