当前位置: 首页>>技术问答>>正文


如何永久关闭交换?

,

问题描述

交换使我的系统都缓慢而关闭它使一切更顺畅。我有3.5 GB的RAM。

我知道如何通过在终端中输入sudo swapoff -a来关闭交换,但这仅适用于当前会话,因为在重新启动交换后重新开启。有没有办法永久关掉掉掉?

最佳解决思路

我可以建议一个更安全的方法吗?你永远不知道什么时候交换可以让你免于崩溃。虽然交换确实会降低您的计算机速度,但如果您使用的程序占用了所有RAM,那么具备交换功能可以帮助您避免硬重启。当计算机开始交换时,您会注意到并能够杀死有问题的应用程序。

因此,不要完全禁用交换,只需确保您的操作系统很少交换。这由/etc/sysctl.conf中的vm.swappiness设置控制。 Ubuntu的默认设置是60,如果我没记错的话,这对大多数情况来说太多了,即使RAM仍然可用,也会导致你开始交换。如果减少此值,您将能够保持交换安全线,同时仅在紧急情况下使用它。所以,打开文件:

sudo nano /etc/sysctl.conf

并添加此行:

vm.swappiness=10

如果仍然太多,请将10更改为1.现在,重新启动后,只有在绝对必要时才会进行交换,您可以完全忘掉它。

次佳解决思路

在/etc /fstab中找到指向swap的行,并对其进行注释。我是这样的:

UUID=6880a28d-a9dc-4bfb-ba47-0876b50e96b3 /               ext4    errors=remount-ro 0       1
UUID=7350e6f2-e3a7-4d80-9a95-8741c7db118f /home           ext4    defaults        0       2
UUID=E2E26AD1E26AAA0D /media/windows  ntfs    defaults,umask=007,gid=46 0       0

# Swap a usb extern (3.7 GB):
#/dev/sdb1 none swap sw 0 0

您可以使用gedit编辑此文件。先备份它,以防万一:

sudo cp /etc/fstab /etc/fstab_backup
gksu gedit /etc/fstab

只需将#添加到swap所在行的开头,然后重新启动计算机。

要么

尝试在/etc/fstab文件中注释掉交换条目的命令行方式,

sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

第三种解决思路

只需从fstab删除条目(或使用#行前面的注释)并重新启动。在其中查找带有”swap”字样的行。

sudo nano /etc/fstab

第四种思路

错误..如果systemd在任何驱动器上找到SWAP分区,它无论如何都会自动挂载它。很奇怪没有人提到过systemd。无论如何,解决方案非常简单;要永久禁用交换,您必须:

  1. swapoff -a

  2. 编辑/etc /fstab并注释任何交换条目(如果存在)。

  3. 运行:sudo systemctl mask dev-sdXX.swap(其中XX是交换分区。对所有可能的分区也很有用,这样如果在任何其他驱动器上有交换分区,它将不会被挂载)

和平了。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1213.html,未经允许,请勿转载。