我想在几个正在运行的 ubuntu 16.04 服务器上禁用交换。如果可能的话,我希望不要重新启动它们。从我的研究来看,似乎
- 运行
swapoff -a
以禁用交换,直到下次重新启动 - 并注释交换行
/etc/fstab
以在下次重新启动后保留
应该做这项工作。然而,内核似乎正在重新启用交换:在不同的时间后swapoff
,我在日志中看到类似的内容/var/log/kern.log
:
Nov 28 12:00:51 srv07 kernel: [ 8049.183480] Adding 62498812k swap on /dev/sda3. Priority:-1 extents:1 across:62498812k FS
有一次是在 4 小时后发生的swapoff
,另一次是 5 分钟后发生的。
这是什么原因造成的?
这是在 Ubuntu 16.04 服务器上,内核版本 4.4.0。
答案1
磁盘使用 GPT,这是由于GPT分区自动挂载:
在 GPT 分区磁盘上,systemd-gpt-auto-generator(8) 将按照可发现分区规范挂载分区,因此可以从 fstab 中省略它们。
另一页同一文档解释了如何禁用此功能:
启动gdisk,例如:
$ gdisk /dev/sda
按 p 打印分区表并记下要禁用自动挂载的分区号。
按 x 额外功能(仅限专家)。
按设定属性。输入分区号并设置属性 63。在设置字段下:它现在应该显示 63(不自动挂载)。按 Enter 键结束属性更改。对您想要阻止自动挂载的所有分区重复此操作。
完成后将表写入磁盘并通过 w 命令退出。
或者使用 sgdisk,可以使用 -A/--attributes= 选项设置属性;使用方法请参见 sgdisk(8)。例如,要在 /dev/sda2 上设置分区属性 63“不自动挂载”,请运行:
$ sgdisk -A 2:set:63 /dev/sda