Arch-Linux
如何永久禁用archlinux上的交換?
我在筆記型電腦和台式機上安裝了 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 上,以下內容應該可以實現您正在尋找的內容:
#swapoff -a
使用或傳遞特定交換的特定設備/文件名禁用交換。此時交換被禁用,但會在下次啟動時自動重新啟動並啟用。- 為防止自動啟動交換,請使用
#systemctl --type swap
. 對於找到的每個*.swap
單元,它使用遮罩#systemctl mask <unit_name>
。這個過程可以通過
systemctl unmask <unit_name>
在之前屏蔽的單元上執行,然後使用打開交換來撤銷swapon
。這取自以下兩篇 Archwiki 文章:
- ArchWiki:交換:禁用交換
- ArchWiki:Systemd:使用單位(參見屏蔽和取消屏蔽部分)