我的 RAM 中有一些敏感数据,我不希望它们存储在磁盘上。如何禁用交换?
我的 RAM 绰绰有余。如果 RAM 消耗过高,进程被终止也不会有什么问题。如何禁用交换?
注意:我没有交换分区,并且这是在虚拟机中运行的(VMware)
答案1
使用
sudo swapoff -a
是关闭交换的常用方法,使用swapon -a
命令将其重新打开。man swapoff
有关关闭显式设备交换的更多信息,请参阅。
答案2
您可以通过注释掉(在行首添加 #)文件中的交换条目来禁用重启后的交换/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”。
答案3
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
- 只需在交换分区行的开头添加井号(#),因此该行如下所示:
#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0
- 重新启动电脑
答案4
如果你担心交换的内容,你可以按照通常的方式将其关闭sudo swapoff -a
,然后使用零或随机数据填充交换设备日。
首先使用 fstab 的内容来找到您的交换文件或设备(less /etc/fstab
)。
找到它并反复检查其位置(例如 sda5 或/swapfile
(Ubuntu 17.04(Zesty Zapus)及更高版本中,交换分区默认被交换文件替换)。
对于交换分区或驱动器(以 /dev 开头):发出“磁盘销毁器”命令(不可轻易使用),
sudo dd if=/dev/zero of=swap
,替换单词交换使用您位于的交换设备或文件/etc/fstab
把它炸成满是零或
sudo dd if=/dev/random of=swap
再次替换单词交换使用您位于的交换设备或文件/etc/fstab
用随机数据轰炸它。
对于交换文件(仅以路径开头):, 你能只需使用 删除文件即可sudo rm /path/to/swapfile
,但最好按照上述方法用垃圾填充它,以便下次打开交换时使用
swapon -a
系统会很乐意再次使用它。如果你有足够的 RAM,你可能根本不需要交换。发出命令
free
当系统负载很重时,查看使用了多少资源来做出这一决定。
如果你确定你永远不需要交换(用于休眠或其他任何用途),你可以按照建议在 fstab 中注释掉该行这里。