如何禁用交换?
我在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或某些此类问题的“磁盘驱逐舰”命令(不要轻易使用)
sudo dd if=/dev/zero of=/dev/sda5
爆炸它充满了零或
sudo dd if=/dev/random of=/dev/sda5
把它充满随机数据。
下次打开交换时
swapon -a
系统将很乐意再次使用它。 如果你有足够的RAM,你可能根本不需要交换。 发出命令
当系统处于高负荷时free
,并看看有多少用于做出这个决定。
sudo swapoff -a
以上命令仅禁用当前会话的交换 ,您需要注释掉/ etc / fstab文件中的交换分区。 要做到这一点,您只需要在交换行的开头添加“#”(注释行)。 步骤如下:
- 打开fstab文件,在终端输入
sudo gedit /etc/fstab
。
文件的内容如下所示:
proc /proc proc nodev,noexec,nosuid 0 0 /host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0 #/dev/sda10 /media/ASD vfat defaults 0 0 #/dev/sda1 /media/98 vfat defaults 0 0
- 只需将hash(#)添加到交换分区行的开头,该行看起来像:
#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0
- 重新启动电脑
进入终端并执行以下命令: gnome-disks
。 它未安装在所有发行版中。 如果是这样,请按照打印的说明进行安装,然后重试。 在左窗格中查找带有“swap”字样的设备。 它的大小通常与物理内存相同。 单击方形按钮以禁用它。 使用root密码validation此更改。
截图: http : //imgur.com/Og6igqb
在系统监视器应用程序(gnome-system-monitor)中,您将看到它将交换区域报告为“不可用”。 交换区域已禁用但未删除。 您可以在将来再次轻松启用它。 删除交换空间已经导致我的系统没有任何损害,但如果您确定将来希望它恢复(hibernate),您将为自己创建更多工作。
编辑:为防止它在启动时挂载,您应该进入gnome-disks中的“编辑挂载选项…”并取消选中“启动时挂载”。
用包含文件/etc/fstab
中的交换条目的行中的sw,noauto
替换defaults
:
/dev/mapper/centos-swap swap swap sw,noauto 0 0
( /dev/mapper/centos-swap
路径可能与您不同)。
现在在重启后检查输出,你的交换永远不会被挂载:
$ free -m total used free shared buff/cache available Mem: 3791 100 3408 8 282 3483 **Swap: 0 0 0**
它可能是蹩脚的解决方案,但我经常使用它。 你可以简单地输入
sudo -s crontab -e
并添加
@reboot sudo swapoff -a
因此,它将在启动时自动禁用。