“挂载选项”列的 fstab 交换条目中的“sw”是什么意思

VaT*_*aTo 16 swap fstab

在我的 /etc/fstab 文件中,我有一个交换条目,如下所示:

/root/swap swap swap sw 0 0
Run Code Online (Sandbox Code Playgroud)

我有其他机器,而且我在网上看到有时他们会放置默认或 xfs 或其他选项。然后,我对“sw”的含义和用途以及哪个是最好的选择以及原因感到有些困惑。

Kus*_*nda 15

fstab我的系统上手动

第四个字段,fs_mntops描述与文件系统关联的挂载选项。它被格式化为逗号分隔的选项列表。它至少包含挂载类型(见fs_type下文)以及适合文件系统类型的任何其他选项。[...]

如果fs_type是“rw”、“rq”或“ro”,则在该fs_file字段中给出名称的文件系统通常以读写方式或只读方式安装在指定的特殊文件上。 如果 fs_type是“sw”,则swapon(8)在系统重新启动过程结束时,该特殊文件可通过命令作为一块交换空间使用。

所以基本上,sw用于告诉swapon(或swapctl在我的系统上)这是用作交换空间的有效候选者,它将作为系统启动例程的一部分添加。

手册描述swapctl -A

此选项导致swapctl读取/etc/fstab设备和具有“sw”类型的文件的文件,并将所有这些条目添加为交换设备。如果未配置交换设备,swapctl将退出并显示错误代码。

那是在 OpenBSD 上。在我可以访问的Ubuntu Linux系统上,sw由于某种原因,这两个手册都没有提到作为交换的挂载选项。

  • 从 Linux 上的可用文档中,有两件事之一是可能的(a)`sw` 选项不做任何事情,只是一个占位符(b)告诉 `swapon` 激活交换空间。但是为什么这应该是必要的,我不知道,因为文件系统类型已经将空间指定为交换空间。在任何情况下,鉴于 `sw` 在 Linux 上的广泛使用,这可能代表文档中的一个空白,可能应该报告。 (2认同)

Fah*_*tha 5

至少对于 Linux,基于对网络的观察,这似乎是“货物崇拜”的一个例子。我所看到的证据表明,这个选项实际上并不是必需的或没有意义的,但是您需要在那里放一些东西,因为fstab文件语法需要它。您可以轻松找到人们使用defaults和 甚至只是pri=1或其他的示例,而忽略了defaultssw

并且swapon需要查看挂载选项来检查它是否是交换是没有意义的,因为swapon通过查看文件系统类型已经可以看到它的交换。确实有用于交换的挂载选项可以修改行为,如 中所述man swapon,但sw不是其中之一。所以证据是它是一个占位符,并且和占位符foobar一样好

当然,如果不查看源代码,我无法完全确定这一点。

相关的,一个 Debian 错误报告抱怨这个确切的问题: mount: swapon(8)缺乏对 sw 和默认选项的解释