问题描述
我在ram中有一些敏感数据,我不喜欢在磁盘上。我如何禁用交换?我有足够多的公羊。如果ram变得太高,我没有遇到进程被终止的问题。如何禁用交换?
注意:我没有交换分区,它在VM(VMWare)中运行
最佳解决方案
运用
sudo swapoff -a
是关闭交换的常用方法,使用swapon -a
命令将其重新打开。有关关闭显式设备的交换的详细信息,请参阅man swapoff
。
次佳解决方案
您可以在重启后通过在/etc/fstab
文件中注释掉(在行前面添加#)交换条目来禁用交换。它会阻止交换分区在重新启动后自动挂载。要在单个命令中执行此操作:
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
或者干脆:
sudo sed -i '/ swap / s/^/#/' /etc/fstab
现在,您在/etc/fstab
上的交换条目将类似于:
#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none swap sw 0 0
使用您自己的特定数字和小写字母而不是字母”x”。
第三种解决方案
如果您关心交换分区的内容,您可以按照常规方式使用sudo swapoff -a
将其关闭,然后使用dd用零或随机数据填充交换分区。
首先找到你的交换分区使用磁盘,磁盘工具,gparted(GUI)或fstab的内容来找到它(cat /etc/fstab
)
找到它并进行双倍和三倍检查它的位置,例如sda5或某些此类问题”disk destroyer”命令(不要轻易使用)
sudo dd if=/dev/zero of=/dev/sda5
爆炸它充满了零或
sudo dd if=/dev/random of=/dev/sda5
把它充满随机数据。
下次打开交换时
swapon -a
系统将很乐意再次使用它。如果你有足够的RAM,你可能根本不需要交换。发出命令
free
当系统负载很重时,看看有多少用于做出这个决定。