首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何永久禁用archlinux上的交换?

如何永久禁用archlinux上的交换?
EN

Unix & Linux用户
提问于 2019-11-08 19:09:59
回答 2查看 6.6K关注 0票数 3

我在笔记本电脑和台式机上安装了Archlinux x86_64。在安装时,我已经用fdisk创建了一个交换分区,并使用sudo swapon /dev/sda3启用了该分区。

但是,即使sysctl vm.swappiness设置为0,当系统内存被一半使用时,我的系统仍然会写入交换分区,并且在复制/移动一个大文件到某个地方时,这使得系统非常慢。在这种情况下,我过去常常用sudo swapoff /dev/sda3关闭交换。

现在,我通常在引导后关闭交换,并在真正需要交换时启用它(我有一个用于监视RAM使用情况的ruby脚本,并在需要时打开交换)。在下一次引导中,交换再次被激活。我在/etc/fstab中没有关于交换的条目。

是否有一种方法可以永久禁用交换设备而不删除该设备?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-08-18 17:41:12

ArchWiki提到Archlinux上的交换是由systemd管理的,并描述了如何通过掩蔽负责交换的systemd单元来禁用自动激活。因此,在Archlinux上,以下内容应该能够实现您想要的目标:

  1. 使用#swapoff -a禁用交换,或者为特定的交换传递特定的设备/文件名。此时,交换将被禁用,但将在下一次引导期间自动重新激活并启用。
  2. 若要防止交换的自动激活,请使用#systemctl --type swap查找交换系统单元。对于每个*.swap单元,使用#systemctl mask <unit_name>找到掩码。

这个过程可以取消,只需在先前屏蔽的单元上运行systemctl unmask <unit_name>,然后使用swapon打开交换。

这摘自以下两篇Archwiki文章:

票数 4
EN

Unix & Linux用户

发布于 2019-11-08 19:31:10

您可以通过创建包含以下内容的文件/lib/systemd/system/turnswapoff.service来让systemd做到这一点:

代码语言:javascript
复制
[Unit]
Description=Turn swap off 

[Service]
ExecStart=/sbin/swapoff -a

[Install]
WantedBy=multi-user.target

并确保它在引导sudo systemctl enable turnswapoff时运行。

swapoff的位置可能不是/sbin/swapoff。您可以使用which swapoff进行检查,并在必要时对其进行更改。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/551185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档