Arch-Linux

如何永久禁用archlinux上的交換?

  • August 18, 2020

我在筆記型電腦和台式機上安裝了 Archlinux x86_64。在安裝時,我使用 fdisk 創建了一個交換分區,並使用sudo swapon /dev/sda3.

但是即使sysctl vm.swappiness設置為0,當我的系統記憶體使用一半時,我的系統仍然會寫入交換分區,並且當時我將一個大文件複製/移動到某個地方,這使得系統非常慢。在這種情況下,我曾經用sudo swapoff /dev/sda3.

現在,我通常在啟動後關閉交換,並在我真正需要交換時啟用它(並且我有一個 ruby​​ 腳本來監控 RAM 使用情況,並在需要時打開交換)。下次啟動時會再次啟動交換。我沒有/etc/fstab關於交換的條目。

有沒有辦法在不刪除設備的情況下永久禁用交換設備?

ArchWiki提到 Archlinux 上的交換由 systemd 管理,並描述瞭如何通過屏蔽負責交換的 systemd 單元來禁用自動啟動。因此,在 Archlinux 上,以下內容應該可以實現您正在尋找的內容:

  1. #swapoff -a使用或傳遞特定交換的特定設備/文件名禁用交換。此時交換被禁用,但會在下次啟動時自動重新啟動並啟用。
  2. 為防止自動啟動交換,請使用#systemctl --type swap. 對於找到的每個*.swap單元,它使用遮罩#systemctl mask <unit_name>

這個過程可以通過systemctl unmask <unit_name>在之前屏蔽的單元上執行,然後使用打開交換來撤銷swapon

這取自以下兩篇 Archwiki 文章:

引用自:https://unix.stackexchange.com/questions/551185